|  | Kea 3.1.0
    | 
| 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().