kea-dhcp4 no longer NAKs when the client DHCPREQUESTs
an address that the server does not know.
Added ChangeLog entry
src/bin/dhcp4/dhcp4_messages.*
DHCP4_UNKNOWN_ADDRESS_REQUESTED - new log message
src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::assignLease() - added logic to drop NAKs when
the address is not managed the server.
src/bin/dhcp4/tests/dora_unittest.cc
src/bin/dhcp4/tests/hooks_unittest.cc
src/bin/dhcp4/tests/out_of_range_unittest.cc
updated tests
src/lib/dhcpsrv/alloc_engine.*
AllocEngine::ClientContext4 - added unknown_requested_addr_ flag
AllocEngine::requestLease4(AllocEngine::ClientContext4& ctx) - sets
unknown_requested_addr_ flag
src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::processDhcp4Query() - now drops packet and response
if parking lot size reaches parked-packet-limit
src/bin/dhcp4/dhcp4_messages.*
DHCP4_HOOK_LEASES4_PARKING_LOT_FULL - new message
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
Reversed parking rules: now an object must be parked before
it can be referenced instead of the other way around.
src/bin/dhcp4/dhcp4_srv.cc
Commentary clean up
src/hooks/dhcp/high_availability/ha_impl.cc
HAImpl::leases4Committed() - modified to create the parking
lot reference before calling asyncSendLeaseUpdates(), and
remove it if the function returns 0 indicating no updates to
wait upon.
src/lib/hooks/hooks_manager.h
HooskManager::park() - revert addition of require_reference_ parameter.
src/lib/hooks/parking_lots.h
A parked object can only be parked once.
A reference may only be created (or removed) if the object has been parked.
reference() and dereference() return the new reference count.
src/lib/hooks/tests/hooks_manager_unittest.cc
Updated to tests to park first, reference, and then call callouts.
src/lib/hooks/tests/parking_lots_unittest.cc
Modified tests to reflect new behavior.
Initial working implementation.
src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::processDhcp4Query() - reworked to
proactively park the packet if lease4_commited callouts
are installed.
src/lib/hooks/hooks_manager.h
HooksManager::park() - added require_reference parameter
src/lib/hooks/parking_lots.h
ParkingLot::park() - set refcount to zero, when added
without pre-existing reference
src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::setFixedFields - modified to use the value for a field
from the first class in query's list of classes that specifies
the field.
src/bin/dhcp4/tests/dhcp4_srv_unittest.cc
TEST_F(Dhcpv4SrvTest, fixedFieldsInClassOrder) - new unit test
(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
Initial commit. Need to add unit tests.
src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::processClientName - added logic to populate the
context with hostname and dns flags. Formerly this was in assignLeases.
Dhcpv4Srv::assignLease - now calls processClientName() before allocating
the lease, and after IF the selected subnet changes. Removed logic to
update name from reservation.
Dhcpv4Srv::processDiscover
Dhcpv4Srv::processRequest - no longer calls processClientName
Dhcpv4Srv::processHostnameOption - now it always uses hostname supplied
by a reservation. Eliminates need for post-allocation update.
Dhcpv4Srv::postAllocateNameUpdate - contains logic extracted from assignLeases
src/lib/dhcpsrv/alloc_engine.cc
AllocEngine::ClientContext6::getDdnsParams
AllocEngine::ClientContext4::getDdnsParams -
recreates DdnsParameter instance if it is stale.