Moved responsibility from hook lib to servers. This makes the hook
point more uniformly usable to custom hook developers
src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::processClientName() - update the FQDN option
in response as part of ddns4_update hook point logic
src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::processClientFqdn() - update the FQDN option
in response as part of ddns6_update hook point logic
kea-dhcp6 now correctly determines DNS update flags when
the allocation engine dynamically re-selects the lease's
network
Added ChangeLog entry
src/bin/dhcp6/dhcp6_srv.*
Dhcpv6Srv::assignLeases() removed response parameter from calls that no
longer need it
Dhcpv6Srv::processClientFqdn() - now sets the context DNS direction flags
Dhcpv6Srv::assignIA_NA()
Dhcpv6Srv::extendIA_NA() - no longer set context DNS direction flags, removed
now unused response parameter
Dhcpv6Srv::assignIA_PD() - removed unused response parameter
src/bin/dhcp6/tests/fqdn_unittest.cc
TEST_F(FqdnDhcpv6SrvTest, ddnsSharedNetworkTest) - now verifies lease DNS flags
TEST_F(FqdnDhcpv6SrvTest, ddnsSharedNetworkTest2) - new test to cover broken
scenario
src/bin/dhcp6/dhcp6_lexer.ll
src/bin/dhcp6/dhcp6_parser.yy
src/bin/dhcp6/json_config_parser.cc
src/lib/dhcpsrv/parsers/simple_parser6.cc
doc/examples/kea6/all-keys.json
Added parked-packet-limit
src/bin/dhcp6/dhcp6_messages.*
DHCP6_HOOK_LEASES6_PARKING_LOT_FULL
src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::processDhcp6Query() - drops the packet if the parking
lot is full
src/bin/dhcp6/tests/get_config_unittest.cc
updated
src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::run() - added CS prior to MultiThreadingMgr:apply()
prior to exit
src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::run() - added CS prior to MultiThreadingMgr:apply()
prior to exit
src/hooks/dhcp/high_availability/ha_service.*
HAService::startClientAndListener() - added call to register
CS callbacks
HAService::stopClientAndListener() - added call to remove CS
callbacks
src/hooks/dhcp/high_availability/tests/ha_mt_unittest.cc
Revamped to test CS callbacks rather than pause/resume directly.
src/lib/util/Makefile.am
Added named_callbacks.h/cc
src/lib/util/named_callback.cc
src/lib/util/named_callback.h
- new files that implement an ordered list of named callbacks
src/lib/util/multi_threading_mgr.*
MultiThreadingMgr::apply() - removes all CS callbacks when entering
single-threaded mode
MultiThreadingMgr::stopProcessing() - formerly stopPktProcessing, added
call to invoke CS exit callbacks
MultiThreadingMgr::startProcessing() - formerly startPktProcessing,
added call to invoke CS entry callbacks.
MultiThreadingMgr::addCriticalSectionCallbacks() - new method for
adding CS callbacks
MultiThreadingMgr::removeCriticalSectionCallbacks() - new method for
removing CS callbacks
MultiThreadingMgr::removeAllCriticalSectionCallbacks() - new method for
all CS callbacks
src/lib/util/tests/Makefile.am
Added named_callback_unittest.cc
src/lib/util/tests/named_callback_unittest.cc - tests for NamedCallback
classes
src/lib/util/tests/multi_threading_mgr_unittest.cc
CriticalSectionCallbackTest - new test fixture
TEST_F(CriticalSectionCallbackTest, basics) - new test
Minor clean-up and typos.
src/hooks/dhcp/high_availability/ha_impl.cc
HAImpl::leases4Committed()
HAImpl::leases6Committed() - added try-catch to ensure
we call dereference on error
src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::processDhcp6Query() - modified to proactively
park packets.
src/hooks/dhcp/high_availability/ha_impl.cc
HAImpl::leases4Committed()
HAImpl::leases6Committed() - revised to reference before the
call to asynSendLeases() and dereference if it returns 0.
src/hooks/dhcp/high_availability/libloadtests/close_unittests.cc
src/hooks/dhcp/high_availability/tests/ha_impl_unittest.cc
src/hooks/dhcp/high_availability/tests/ha_service_unittest.cc
Revised tests to park first as needed.
src/lib/hooks/parking_lots.h
Fixed a typo in throw messages.
DDNS TTL is now calculated based on RFC 4702 Sec 5 guidelines.
src/lib/dhcpsrv/ncr_generator.*
calculateDdnsTtl() - new function to calculate DNS RR TTL from a lease
life time
queueNCRCommon() - modified to use calculateDdnsTtl()
src/lib/dhcpsrv/tests/ncr_generator_unittest.cc
Updated unit tests
src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::createNameChangeRequests() - modified to use calculateDdnsTtl()
src/bin/dhcp4/tests/fqdn_unittest.cc
src/bin/dhcp6/tests/fqdn_unittest.cc
Updated unit tests
kea-dhcp<4/6> now populate NameChangeRequest::conflict_resolution_
with the appropriate value.
src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::createNameChangeRequests() - set use conflict resolution
in explictly created NameChangeRequest
src/lib/dhcpsrv/ncr_generator.cc
queueNCRCommon() - added use_conflict_resolution parameter
queueNCR(const NameChangeType& chg_type, const Lease4Ptr& lease)
queueNCR(const NameChangeType& chg_type, const Lease6Ptr& lease)
- set conflict resolution flag from lease's subnet
src/bin/dhcp4/tests/fqdn_unittest.cc
TEST_F(NameDhcpv4SrvTest, noConflictResolution)
src/bin/dhcp6/tests/fqdn_unittest.cc
TEST_F(FqdnDhcpv6SrvTest, noConflictResolution)
src/lib/dhcpsrv/tests/ncr_generator_unittest.cc
udpated to create subnets and attach them to leases
TEST_F(NCRGenerator6Test, useConflictResolution)
TEST_F(NCRGenerator4Test, useConflictResolution)
- new tests
(Parsers need to be regenerated)
src/bin/dhcp6/dhcp6_lexer.ll
src/bin/dhcp6/dhcp6_parser.yy
src/bin/dhcp6/json_config_parser.cc
added ddns-update-on-renew parameter
src/bin/dhcp6/dhcp6_srv.*
Dhcpv4Srv::createNameChangeRequests() - modified to
use ddns-update-on-renew in logic
src/bin/dhcp6/tests/fqdn_unittest.cc
TEST_F(FqdnDhcpv6SrvTest, processRequestRenew) - new test
src/bin/dhcp6/tests/get_config_unittest.cc
Updated
doc/examples/kea4/all-keys.json
doc/examples/kea6/all-keys.json
added ddns-update-on-renew parameter
src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::checkDynamicSubnetChange() - new method to detect
and account for dynamic subnet changes.
Dhcpv6Srv::assignLeases() - replaced logic to log dynamic
subnet change with call to checkDynamicSubnetChange()
Dhcpv6Srv::extendLeases() - added call to checkDynamicSubnetChange()
src/bin/dhcp6/tests/dhcp6_client.cc
src/bin/dhcp6/tests/dhcp6_client.cc
Dhcp6Client::doRenew() - relocated appendFQDN() so it
actually has an effect.
src/bin/dhcp6/tests/fqdn_unittest.cc
TEST_F(FqdnDhcpv6SrvTest, ddnsSharedNetworkTest) new test