![]() |
Kea 3.1.1
|
Classes | |
struct | AddressLimitConfiguration |
the configuration manager for address limiting More... | |
struct | Configuration |
a datastore used for configuring functionally dedicated parts of the limits library More... | |
struct | LimitManager |
Provides the capability to limit the number of leases or the response rate. More... | |
struct | PrefixLimitConfiguration |
the configuration manager for prefix limiting More... | |
struct | ProtectedTimeSeries |
Holds a number of time points, used in limiting by a single criterion, and a mutex to protect concurrent reads and writes. More... | |
struct | RateLimit |
a single rate-limiting entry configured as "rate-limit": "<n> packet[s] per <time-unit>" More... | |
struct | RateLimitConfiguration |
the configuration manager for rate limiting More... | |
Typedefs | |
typedef boost::shared_ptr< const Element > | ConstElementPtr |
using | LeaseLimit = uint32_t |
a single lease-limiting entry configured as an integer | |
typedef std::shared_ptr< ProtectedTimeSeries > | ProtectedTimeSeriesPtr |
Defines a smart pointer to a ProtectedTimeSeries. | |
using | TimePoint = std::chrono::time_point<std::chrono::system_clock> |
a point in time | |
using | TimeSeries = boost::circular_buffer<TimePoint> |
Holds a number of time points, used in limiting by a single criterion. | |
Functions | |
int | cb4_updated (CalloutHandle &handle) |
Callout at the cb4_updated hook point. | |
int | cb6_updated (CalloutHandle &handle) |
Callout at the cb6_updated hook point. | |
int | dhcp4_srv_configured (CalloutHandle &handle) |
dhcp4_srv_configured callout implementation | |
int | dhcp6_srv_configured (CalloutHandle &handle) |
dhcp6_srv_configured callout implementation | |
int | lease4_renew (CalloutHandle &handle) |
Callout at the leases4_renew hook point. | |
int | lease4_select (CalloutHandle &handle) |
Callout at the leases4_select hook point. | |
int | lease6_rebind (CalloutHandle &handle) |
Callout at the lease6_rebind hook point. | |
int | lease6_renew (CalloutHandle &handle) |
Callout at the lease6_renew hook point. | |
int | lease6_select (CalloutHandle &handle) |
Callout at the lease6_select hook point. | |
int | load (isc::hooks::LibraryHandle &handle) |
Called by the hooks library manager when the library is loaded. | |
int | multi_threading_compatible () |
Return multi-threading compatibility. | |
int | pkt4_receive (CalloutHandle &handle) |
Callout at the pkt4_receive hook point. | |
int | pkt6_receive (CalloutHandle &handle) |
Callout at the pkt6_receive hook point. | |
int | subnet4_select (CalloutHandle &handle) |
Callout at the subnet4_select hook point. | |
int | subnet6_select (CalloutHandle &handle) |
Callout at the subnet6_select hook point. | |
int | unload () |
Called by the hooks library manager when the library is unloaded. | |
int | version () |
Version function required by Hooks API for compatibility checks. | |
typedef boost::shared_ptr<const Element> isc::data::ConstElementPtr |
using isc::limits::LeaseLimit = uint32_t |
a single lease-limiting entry configured as an integer
Definition at line 41 of file configuration.h.
typedef std::shared_ptr<ProtectedTimeSeries> isc::limits::ProtectedTimeSeriesPtr |
Defines a smart pointer to a ProtectedTimeSeries.
Definition at line 52 of file limit_manager.h.
using isc::limits::TimePoint = std::chrono::time_point<std::chrono::system_clock> |
a point in time
Definition at line 35 of file limit_manager.h.
using isc::limits::TimeSeries = boost::circular_buffer<TimePoint> |
Holds a number of time points, used in limiting by a single criterion.
It is important to use a data structure that ensures O(1) deletion.
Definition at line 39 of file limit_manager.h.
int isc::limits::cb4_updated | ( | CalloutHandle & | handle | ) |
Callout at the cb4_updated hook point.
handle | CalloutHandle which provides access to context |
Definition at line 35 of file dhcpv4_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::cb6_updated | ( | CalloutHandle & | handle | ) |
Callout at the cb6_updated hook point.
handle | CalloutHandle which provides access to context |
Definition at line 35 of file dhcpv6_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::dhcp4_srv_configured | ( | CalloutHandle & | handle | ) |
dhcp4_srv_configured callout implementation
handle | CalloutHandle |
Definition at line 45 of file dhcpv4_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::dhcp6_srv_configured | ( | CalloutHandle & | handle | ) |
dhcp6_srv_configured callout implementation
handle | CalloutHandle |
Definition at line 45 of file dhcpv6_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::lease4_renew | ( | CalloutHandle & | handle | ) |
Callout at the leases4_renew hook point.
handle | CalloutHandle which provides access to context |
Definition at line 85 of file dhcpv4_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::lease4_select | ( | CalloutHandle & | handle | ) |
Callout at the leases4_select hook point.
handle | CalloutHandle which provides access to context |
Definition at line 75 of file dhcpv4_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::lease6_rebind | ( | CalloutHandle & | handle | ) |
Callout at the lease6_rebind hook point.
handle | CalloutHandle which provides access to context |
Definition at line 95 of file dhcpv6_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::lease6_renew | ( | CalloutHandle & | handle | ) |
Callout at the lease6_renew hook point.
handle | CalloutHandle which provides access to context |
Definition at line 85 of file dhcpv6_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::lease6_select | ( | CalloutHandle & | handle | ) |
Callout at the lease6_select hook point.
handle | CalloutHandle which provides access to context |
Definition at line 75 of file dhcpv6_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::load | ( | isc::hooks::LibraryHandle & | handle | ) |
Called by the hooks library manager when the library is loaded.
handle | LibraryHandle |
Definition at line 35 of file limits/load_unload.cc.
References isc::dhcp::CfgMgr::getFamily(), isc::hooks::LibraryHandle::getParameters(), isc::process::Daemon::getProcName(), isc::limits::LimitManager::initialize(), isc::dhcp::CfgMgr::instance(), isc::limits::LimitManager::instance(), and isc_throw.
int isc::limits::multi_threading_compatible | ( | ) |
Return multi-threading compatibility.
Definition at line 84 of file limits/load_unload.cc.
int isc::limits::pkt4_receive | ( | CalloutHandle & | handle | ) |
Callout at the pkt4_receive hook point.
handle | CalloutHandle which provides access to context |
Definition at line 55 of file dhcpv4_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::pkt6_receive | ( | CalloutHandle & | handle | ) |
Callout at the pkt6_receive hook point.
handle | CalloutHandle which provides access to context |
Definition at line 55 of file dhcpv6_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::subnet4_select | ( | CalloutHandle & | handle | ) |
Callout at the subnet4_select hook point.
handle | CalloutHandle which provides access to context |
Definition at line 65 of file dhcpv4_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::subnet6_select | ( | CalloutHandle & | handle | ) |
Callout at the subnet6_select hook point.
handle | CalloutHandle which provides access to context |
Definition at line 65 of file dhcpv6_callouts.cc.
References isc::limits::LimitManager::instance().
int isc::limits::unload | ( | ) |
Called by the hooks library manager when the library is unloaded.
Definition at line 67 of file limits/load_unload.cc.
References isc::dhcp::LeaseMgr::clearClassLeaseCounts(), isc::dhcp::LeaseMgrFactory::haveInstance(), isc::limits::LimitManager::initialize(), isc::dhcp::LeaseMgrFactory::instance(), and isc::limits::LimitManager::instance().
int isc::limits::version | ( | ) |
Version function required by Hooks API for compatibility checks.
Definition at line 18 of file dhcp/limits/version.cc.
const int isc::log::DBGLVL_TRACE_BASIC |
Trace basic operations.
Definition at line 19 of file log_dbglevels.h.
Referenced by isc::limits::AddressLimitConfiguration::logClientClassLimit(), isc::limits::PrefixLimitConfiguration::logClientClassLimit(), isc::limits::RateLimitConfiguration::logClientClassLimit(), isc::limits::AddressLimitConfiguration::logSubnetLimit(), isc::limits::PrefixLimitConfiguration::logSubnetLimit(), and isc::limits::RateLimitConfiguration::logSubnetLimit().
|
extern |
Definition at line 11 of file limits_messages.h.
Referenced by isc::limits::LimitManager::dhcp_srv_configured().
|
extern |
Definition at line 12 of file limits_messages.h.
Referenced by isc::limits::LimitManager::dhcp_srv_configured().
|
extern |
Definition at line 13 of file limits_messages.h.
Referenced by isc::limits::AddressLimitConfiguration::logClientClassLimit().
|
extern |
Definition at line 14 of file limits_messages.h.
Referenced by isc::limits::AddressLimitConfiguration::logSubnetLimit().
|
extern |
Definition at line 15 of file limits_messages.h.
Referenced by isc::limits::PrefixLimitConfiguration::logClientClassLimit().
|
extern |
Definition at line 16 of file limits_messages.h.
Referenced by isc::limits::PrefixLimitConfiguration::logSubnetLimit().
|
extern |
Definition at line 17 of file limits_messages.h.
Referenced by isc::limits::RateLimitConfiguration::logClientClassLimit().
|
extern |
Definition at line 18 of file limits_messages.h.
Referenced by isc::limits::RateLimitConfiguration::logSubnetLimit().
|
extern |
Definition at line 19 of file limits_messages.h.
Referenced by isc::limits::LimitManager::lease_callout().
|
extern |
Definition at line 20 of file limits_messages.h.
Referenced by isc::limits::LimitManager::lease_callout().
isc::log::Logger isc::limits::limits_logger | ( | "limits-hooks" | ) |
Definition at line 18 of file limits_logger.h.
Referenced by isc::limits::LimitManager::dhcp_srv_configured(), isc::limits::LimitManager::lease_callout(), isc::limits::AddressLimitConfiguration::logClientClassLimit(), isc::limits::PrefixLimitConfiguration::logClientClassLimit(), isc::limits::RateLimitConfiguration::logClientClassLimit(), isc::limits::AddressLimitConfiguration::logSubnetLimit(), isc::limits::PrefixLimitConfiguration::logSubnetLimit(), isc::limits::RateLimitConfiguration::logSubnetLimit(), isc::limits::LimitManager::pkt_receive(), and isc::limits::LimitManager::subnet_select().
|
extern |
Definition at line 21 of file limits_messages.h.
Referenced by isc::limits::LimitManager::subnet_select().
|
extern |
Definition at line 22 of file limits_messages.h.
Referenced by isc::limits::LimitManager::pkt_receive().
|
extern |
Definition at line 23 of file limits_messages.h.
Referenced by isc::limits::LimitManager::pkt_receive().
|
extern |
Definition at line 24 of file limits_messages.h.
Referenced by isc::limits::LimitManager::subnet_select().
|
extern |
Definition at line 25 of file limits_messages.h.
Referenced by isc::limits::LimitManager::subnet_select().