Kea version 2.7.7 introduces the support of self-generated address registration
as defined in `RFC 9686 <https://tools.ietf.org/html/rfc9686>`__ i.e.
-when a valid ADDR-REG-INFORM (36) message in received a registered lease is
+when a valid ADDR-REG-INFORM (36) message is received a registered lease is
added or updated and a ADDR-REG-REPLY (37) is sent back to the client.
.. note::
Even if they share a common lease database with leases in other states,
registered leases are independent: when a lease in another state already
exists for an address this address in considered as in use and can't be
- registered. In the other way a registered lease can't change to another
+ registered. Similarly a registered lease can't change to another
state, e.g. reclaimation of expired registered leases removes them.
.. note::
| subnet[id].cumulative-registered | integer | Cumulative number of NA addresses |
| | | in a given subnet that were |
| | | registered. It increases every |
- | | | a new address is registered (as a |
- | | | result of receiving an |
+ | | | time a new address is registered |
+ | | | (as a result of receiving an |
| | | ADDR-REG-INFORM message) and is |
| | | never decreased. The *id* is the |
| | | subnet ID of a given subnet. This |
NEW_LEASE6_PREFIX_LEN
NEW_LEASE6_TYPE
-The OLD_LEASE6 do not always exists.
+The OLD_LEASE6 does not always exist.
The leases4_committed hook point needs for loops to handle the list of addresses.
This can be achived in the following way:
transaction identification information. The second argument specifies
the IAID. The third argument includes the details of the status code.
-% DHCP6_ADDR_REG_INFORM_FAIL error on addr-reg-inform from client %1: %2
-This information message is issued when the processing of an addr-reg-inform
+% DHCP6_ADDR_REG_INFORM_FAIL error on ADDR-REG-INFORM from client %1: %2
+This information message is issued when the processing of an ADDR-REG-INFORM
message failed. The address of the client, usually also the address to
register, and the description of the problem are printed.
-% DHCP6_ADDR_REG_INFORM_CLIENT_CHANGE received an addr-reg-inform for %1 from client '%2' but the address was registered by another client '%3'
+% DHCP6_ADDR_REG_INFORM_CLIENT_CHANGE received an ADDR-REG-INFORM for %1 from client '%2' but the address was registered by another client '%3'
This information message is issued when a lease for another client already
exists for an address being registered. The address, the new client and
previous client identifiers are printed.
an identifier for incoming packet. This debug message is mainly intended as a
debugging assistance for flexible identifier.
-% DHCP6_HOOK_ADDR6_REGISTER_SKIP %1: addr-reg-inform for %2 is dropped, because a callout set the next step to SKIP
+% DHCP6_HOOK_ADDR6_REGISTER_SKIP %1: ADDR-REG-INFORM for %2 is dropped, because a callout set the next step to SKIP
Logged at debug log level 40.
This debug message is printed when a callout installed on the addr6_register
hook point sets the next step to SKIP. For this particular hook point, the
/// and receiving server's response.
void doRelease();
- /// @brief This function generates Addr-reg-inform message, sends it
+ /// @brief This function generates an Addr-reg-inform message, sends it
/// to the server and then receives the Addr-reg-reply.
/// This method does not process the response in any specific way,
/// just stores it.
.deregisterAllCallouts("pkt6_receive");
isc::hooks::HooksManager::preCalloutsLibraryHandle()
.deregisterAllCallouts("pkt6_send");
+ isc::hooks::HooksManager::preCalloutsLibraryHandle()
+ .deregisterAllCallouts("subnet6_select");
isc::hooks::HooksManager::preCalloutsLibraryHandle()
.deregisterAllCallouts("addr6_register");
}
///
/// @param addr_reg_inf a message received from client
/// @return Addr-reg-reply message or null
- Pkt6Ptr processAddrRegInform(const Pkt6Ptr& decline) {
+ Pkt6Ptr processAddrRegInform(const Pkt6Ptr& addr_reg_inf) {
AllocEngine::ClientContext6 ctx;
- bool drop = !earlyGHRLookup(decline, ctx);
+ bool drop = !earlyGHRLookup(addr_reg_inf, ctx);
if (drop) {
return (Pkt6Ptr());
}
- ctx.subnet_ = selectSubnet(decline, drop);
+ ctx.subnet_ = selectSubnet(addr_reg_inf, drop);
if (drop) {
return (Pkt6Ptr());
}