Add CfgConsistency defaults to application level parsing
src/lib/dhcpsrv/cfg_consistency.h
Changed constructor default mode to LEASE_CHECK_NONE
src/lib/dhcpsrv/lease_file_loader.h
LeaseFileLoader::load() - modified to create and use a
sanity_checker only if checking is enabled. This avoids
senselessly making the same decisions for every lease loaded.
src/lib/dhcpsrv/parsers/simple_parser4.*
src/lib/dhcpsrv/parsers/simple_parser6.*
Added sanity checks defaults so they can be properly set at
the application level.
src/lib/dhcpsrv/sanity_checker.h
SanityChecker::leaseCheckingEnabled() - new static function
to test if sanity checking for leases is enabled
src/lib/dhcpsrv/tests/sanity_checks_unittest.cc
src/lib/dhcpsrv/tests/srv_config_unittest.cc
updated tests for new constructor default value
doc/guide/dhcp4-srv.xml
Updated user guide with new parameters and details on rules
src/lib/cc/data.cc
DoubleElement::toJSON(std::ostream& ss) - modified to ensure whole number
values are suffixed with ".0"
src/lib/utils/doubles.h - new file
provides a function for equating doubles within a given tolerance
src/lib/cc/simple_parser.*
SimpleParser::getDouble() - new method for fetching real number
parameters as DoulbeElements
src/lib/dhcpsrv/network.*
Added members and support for new paramters to Network4:
calculate_tee_times_, t1_percent_, t2_percent_
src/lib/dhcpsrv/parsers/dhcp_parsers.cc
src/lib/dhcpsrv/parsers/simple_parser4.cc
Added support for new parameters to Subnet4ConfigParser
src/bin/dhcp4/dhcp4_lexer.ll
src/bin/dhcp4/dhcp4_parser.yy
src/bin/dhcp4/json_config_parser.cc
Added parser support for calculate-tee-times, t1-percent, and t2-percent
src/bin/dhcp4/dhcp4_srv.*
Dhcpv4Srv::setTeeTimes(lease, subnet, resp) - new method for
determining T1 adn T2 values
v4 Parsing now allows renew/rebind timers to be unspecified,
and kea-dhcp4 logic now matchs ISC DHCP:
1. Send T2 only if it is specified and is less than lease lifetime
2. Send T1 only if it is specified and is less than either T2
if specified, or lease lifetime in the absence of T2
doc/guide/dhcp4-srv.xml
Updated discussion of rebind/renew-timers
src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::assignLease() - modified to sanity check
T1 and T2
src/bin/dhcp4/tests/config_parser_unittest.cc
src/bin/dhcp4/tests/get_config_unittest.cc
src/bin/dhcp4/tests/simple_parser4_unittest.cc
src/bin/dhcp6/tests/get_config_unittest.cc
src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc
src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc
updated numerous tests
src/lib/dhcpsrv/network.cc
Network::toElement() - only outputs T1, T2, and
valid lifetime if they are specified
src/lib/dhcpsrv/network.h
Network() - inits t1_, t2_, and valid_ to unspecified
Triplet value
src/lib/dhcpsrv/parsers/dhcp_parsers.cc
Subnet4ConfigParser::initSubnet() - allow renew-timer and
rebind-timer to be optional
src/lib/dhcpsrv/parsers/simple_parser4.cc
SimpleDefaults SimpleParser4::GLOBAL4_DEFAULTS - removed
entries for renew-timer and rebind-timer
- many more parameters are now inherited from shared-network to subnet4
- parameters now passed as const reference
- it is no longer possible to specify echo-client-id on shared-network
level (because it's a global parameter)
- example config commented properly