2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-21 17:37:56 +00:00

[#226] Addressed comments

This commit is contained in:
Francis Dupont 2025-08-20 18:14:43 +02:00
parent b0b3b78d4a
commit 1b6681bb39
9 changed files with 36 additions and 27 deletions

View File

@ -1,7 +1,7 @@
[func] fdupont [func] fdupont
Added the new "adaptive-lease-time-threshold" parameter Added the new "adaptive-lease-time-threshold" parameter
for the FLQ (Free Lease Queue) allocator which reduces for the FLQ (Free Lease Queue) allocator which reduces
lifetime of leases when pools of a subnet have an the lifetime of leases when pools of a subnet have an
occupancy rate above a configured threshold (new feature occupancy rate above a configured threshold (new feature
from ISC DHCP). from ISC DHCP).
(Gitlab #226) (Gitlab #226)

View File

@ -989,8 +989,8 @@
// lease is returned as it was "cached". // lease is returned as it was "cached".
"cache-max-age": 1000, "cache-max-age": 1000,
// Adaptive lease time threshold = 1. (disabled). // Adaptive lease time threshold (1.0 is disabled).
"adaptive-lease-time-threshold": 1., "adaptive-lease-time-threshold": 0.8,
// Specify whether the server should look up global reservations. // Specify whether the server should look up global reservations.
"reservations-global": false, "reservations-global": false,
@ -1280,8 +1280,8 @@
// Subnet-level cache maximum. // Subnet-level cache maximum.
"cache-max-age": 1000, "cache-max-age": 1000,
// Adaptive lease time threshold = 1. (disabled). // Adaptive lease time threshold (1.0 is disabled).
"adaptive-lease-time-threshold": 1., "adaptive-lease-time-threshold": 0.8,
// List of static IPv4 reservations assigned to clients belonging // List of static IPv4 reservations assigned to clients belonging
// to this subnet. For a detailed example, see reservations.json. // to this subnet. For a detailed example, see reservations.json.
@ -1425,8 +1425,8 @@
// Global cache maximum. // Global cache maximum.
"cache-max-age": 1000, "cache-max-age": 1000,
// Adaptive lease time threshold = 1. (disabled). // Adaptive lease time threshold (1.0 is disabled).
"adaptive-lease-time-threshold": 1., "adaptive-lease-time-threshold": 0.8,
// String of zero or more characters with which to replace each // String of zero or more characters with which to replace each
// invalid character in the hostname or Client FQDN. The default // invalid character in the hostname or Client FQDN. The default

View File

@ -939,8 +939,8 @@
// lease is returned as it was "cached". // lease is returned as it was "cached".
"cache-max-age": 1000, "cache-max-age": 1000,
// Adaptive lease time threshold = 1. (disabled). // Adaptive lease time threshold (1.0 is disabled).
"adaptive-lease-time-threshold": 1., "adaptive-lease-time-threshold": 0.8,
// Specify whether the server should look up global reservations. // Specify whether the server should look up global reservations.
"reservations-global": false, "reservations-global": false,
@ -1273,8 +1273,8 @@
// Subnet-level cache maximum. // Subnet-level cache maximum.
"cache-max-age": 1000, "cache-max-age": 1000,
// Adaptive lease time threshold = 1. (disabled). // Adaptive lease time threshold (1.0 is disabled).
"adaptive-lease-time-threshold": 1., "adaptive-lease-time-threshold": 0.8,
// List of static IPv6 reservations assigned to clients belonging // List of static IPv6 reservations assigned to clients belonging
// to this subnet. For a detailed example, see reservations.json. // to this subnet. For a detailed example, see reservations.json.
@ -1414,8 +1414,8 @@
// Global cache maximum. // Global cache maximum.
"cache-max-age": 1000, "cache-max-age": 1000,
// Adaptive lease time threshold = 1.0 (disabled) // Adaptive lease time threshold (1.0 is disabled)
"adaptive-lease-time-threshold": 1.0, "adaptive-lease-time-threshold": 0.8,
// String of zero or more characters with which to replace each // String of zero or more characters with which to replace each
// invalid character in the Client FQDN. The default // invalid character in the Client FQDN. The default

View File

@ -8988,9 +8988,9 @@ avoiding unnecessary impact on the server's startup time.
In Kea 3.1.1 a new parameter ``adaptive-lease-time-threshold`` was added. In Kea 3.1.1 a new parameter ``adaptive-lease-time-threshold`` was added.
It can be specified at global, shared network and subnet levels and It can be specified at global, shared network and subnet levels and
takes a floating point value between ``0.`` (excluded) and ``1.``. takes a floating point value between ``0.0`` (excluded) and ``1.0``.
It is disabled by default or when set to ``1.``. It is active only with It is disabled by default or when set to ``1.0``. It is only supported
he FLQ allocator and when the occupancy rate of pools of subnet is by the FLQ allocator. When the occupancy rate of pools in a subnet is
above the specified value the server decreases the lease valid lifetime above the specified value the server decreases the lease valid lifetime
to the applicable ``min-valid-lifetime`` for new clients. Clients to the applicable ``min-valid-lifetime`` for new clients. Clients
renewing an already existing lease get at least the remaining lifetime renewing an already existing lease get at least the remaining lifetime

View File

@ -8733,9 +8733,9 @@ avoiding unnecessary impact on the server's startup time.
In Kea 3.1.1 a new parameter ``adaptive-lease-time-threshold`` was added. In Kea 3.1.1 a new parameter ``adaptive-lease-time-threshold`` was added.
It can be specified at global, shared network and subnet levels and It can be specified at global, shared network and subnet levels and
takes a floating point value between ``0.`` (excluded) and ``1.``. takes a floating point value between ``0.0`` (excluded) and ``1.0``.
It is disabled by default or when set to ``1.``. It is active only with It is disabled by default or when set to ``1.0``. It is only supported
he FLQ allocator and when the occupancy rate of pools of subnet is by the FLQ allocator. When the occupancy rate of pools in a subnet is
above the specified value the server decreases the lease valid lifetime above the specified value the server decreases the lease valid lifetime
to the applicable ``min-valid-lifetime`` for new clients. Clients to the applicable ``min-valid-lifetime`` for new clients. Clients
renewing an already existing lease get at least the remaining lifetime renewing an already existing lease get at least the remaining lifetime

View File

@ -78,5 +78,18 @@ Allocator::initAfterConfigure() {
inited_ = true; inited_ = true;
} }
double
Allocator::getOccupancyRate(const asiolink::IOAddress&ddr,
const ClientClasses&) const {
return (0.);
}
double
Allocator::getOccupancyRate(const asiolink::IOAddress&,
const uint8_t,
const ClientClasses&) const {
return (0.);
}
} }
} }

View File

@ -152,9 +152,7 @@ public:
/// @param client_classes list of classes client belongs to. /// @param client_classes list of classes client belongs to.
virtual double virtual double
getOccupancyRate(const asiolink::IOAddress& addr, getOccupancyRate(const asiolink::IOAddress& addr,
const ClientClasses& client_classes) const { const ClientClasses& client_classes) const;
return (0.);
}
/// @brief Returns the occupancy rate (v6 prefixes). /// @brief Returns the occupancy rate (v6 prefixes).
/// ///
@ -170,9 +168,7 @@ public:
virtual double virtual double
getOccupancyRate(const asiolink::IOAddress& pref, getOccupancyRate(const asiolink::IOAddress& pref,
const uint8_t plen, const uint8_t plen,
const ClientClasses& client_classes) const { const ClientClasses& client_classes) const;
return (0.);
}
/// @brief Check if the pool matches the selection criteria relative to the /// @brief Check if the pool matches the selection criteria relative to the
/// provided hint prefix length. /// provided hint prefix length.

View File

@ -1894,7 +1894,7 @@ TEST(CfgSubnets4Test, cacheParamValidation) {
// This test verifies the Subnet4 parser's validation logic for // This test verifies the Subnet4 parser's validation logic for
// adaptive lease time parameter. // adaptive lease time parameter.
TEST(CfgSubnets4Test, AdaptiveLeaseTimeParamValidation) { TEST(CfgSubnets4Test, adaptiveLeaseTimeParamValidation) {
// Describes a single test scenario. // Describes a single test scenario.
struct Scenario { struct Scenario {

View File

@ -1675,7 +1675,7 @@ TEST(CfgSubnets6Test, cacheParamValidation) {
// This test verifies the Subnet6 parser's validation logic for // This test verifies the Subnet6 parser's validation logic for
// adaptive lease time parameter. // adaptive lease time parameter.
TEST(CfgSubnets6Test, AdaptiveLeaseTimeParamValidation) { TEST(CfgSubnets6Test, adaptiveLeaseTimeParamValidation) {
// Describes a single test scenario. // Describes a single test scenario.
struct Scenario { struct Scenario {