2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-31 22:15:23 +00:00

[#2022] Added PARK status handle

This commit is contained in:
Francis Dupont
2024-01-19 14:44:26 +01:00
parent 89a34eef90
commit 02e7cb272b
4 changed files with 17 additions and 0 deletions

View File

@@ -84,6 +84,7 @@ extern const isc::log::MessageID DHCP6_HOOK_PACKET_RCVD_SKIP = "DHCP6_HOOK_PACKE
extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_DROP = "DHCP6_HOOK_PACKET_SEND_DROP"; extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_DROP = "DHCP6_HOOK_PACKET_SEND_DROP";
extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_SKIP = "DHCP6_HOOK_PACKET_SEND_SKIP"; extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_SKIP = "DHCP6_HOOK_PACKET_SEND_SKIP";
extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_DROP = "DHCP6_HOOK_SUBNET6_SELECT_DROP"; extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_DROP = "DHCP6_HOOK_SUBNET6_SELECT_DROP";
extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_PARK = "DHCP6_HOOK_SUBNET6_SELECT_PARK";
extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_SKIP = "DHCP6_HOOK_SUBNET6_SELECT_SKIP"; extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_SKIP = "DHCP6_HOOK_SUBNET6_SELECT_SKIP";
extern const isc::log::MessageID DHCP6_INIT_FAIL = "DHCP6_INIT_FAIL"; extern const isc::log::MessageID DHCP6_INIT_FAIL = "DHCP6_INIT_FAIL";
extern const isc::log::MessageID DHCP6_LEASE_ADVERT = "DHCP6_LEASE_ADVERT"; extern const isc::log::MessageID DHCP6_LEASE_ADVERT = "DHCP6_LEASE_ADVERT";
@@ -258,6 +259,7 @@ const char* values[] = {
"DHCP6_HOOK_PACKET_SEND_DROP", "%1: prepared DHCPv6 response was not sent because a callout set the next ste to DROP", "DHCP6_HOOK_PACKET_SEND_DROP", "%1: prepared DHCPv6 response was not sent because a callout set the next ste to DROP",
"DHCP6_HOOK_PACKET_SEND_SKIP", "%1: prepared DHCPv6 response is not built because a callout set the next step to SKIP", "DHCP6_HOOK_PACKET_SEND_SKIP", "%1: prepared DHCPv6 response is not built because a callout set the next step to SKIP",
"DHCP6_HOOK_SUBNET6_SELECT_DROP", "%1: packet was dropped because a callout set the drop flag", "DHCP6_HOOK_SUBNET6_SELECT_DROP", "%1: packet was dropped because a callout set the drop flag",
"DHCP6_HOOK_SUBNET6_SELECT_PARK", "%1: packet was parked",
"DHCP6_HOOK_SUBNET6_SELECT_SKIP", "%1: no subnet was selected because a callout set the next step to SKIP", "DHCP6_HOOK_SUBNET6_SELECT_SKIP", "%1: no subnet was selected because a callout set the next step to SKIP",
"DHCP6_INIT_FAIL", "failed to initialize Kea server: %1", "DHCP6_INIT_FAIL", "failed to initialize Kea server: %1",
"DHCP6_LEASE_ADVERT", "%1: lease for address %2 and iaid=%3 will be advertised", "DHCP6_LEASE_ADVERT", "%1: lease for address %2 and iaid=%3 will be advertised",

View File

@@ -85,6 +85,7 @@ extern const isc::log::MessageID DHCP6_HOOK_PACKET_RCVD_SKIP;
extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_DROP; extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_DROP;
extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_SKIP; extern const isc::log::MessageID DHCP6_HOOK_PACKET_SEND_SKIP;
extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_DROP; extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_DROP;
extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_PARK;
extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_SKIP; extern const isc::log::MessageID DHCP6_HOOK_SUBNET6_SELECT_SKIP;
extern const isc::log::MessageID DHCP6_INIT_FAIL; extern const isc::log::MessageID DHCP6_INIT_FAIL;
extern const isc::log::MessageID DHCP6_LEASE_ADVERT; extern const isc::log::MessageID DHCP6_LEASE_ADVERT;

View File

@@ -472,6 +472,11 @@ point, the setting of the flag instructs the server to drop the
received packet. The argument holds the client and transaction received packet. The argument holds the client and transaction
identification information. identification information.
% DHCP6_HOOK_SUBNET6_SELECT_PARK %1: packet was parked
This debug message is printed when a callout installed on the
subnet6_select hook point set the park flag. The argument holds the
client and transaction identification information.
% DHCP6_HOOK_SUBNET6_SELECT_SKIP %1: no subnet was selected because a callout set the next step to SKIP % DHCP6_HOOK_SUBNET6_SELECT_SKIP %1: no subnet was selected because a callout set the next step to SKIP
This debug message is printed when a callout installed on the This debug message is printed when a callout installed on the
subnet6_select hook point set the next step to SKIP value. For this particular hook subnet6_select hook point set the next step to SKIP value. For this particular hook

View File

@@ -2013,6 +2013,15 @@ Dhcpv6Srv::selectSubnet(const Pkt6Ptr& question, bool& drop) {
return (Subnet6Ptr()); return (Subnet6Ptr());
} }
// Callouts parked the packet. Same as drop but callouts will resume
// processing or drop the packet later.
if (callout_handle->getStatus() == CalloutHandle::NEXT_STEP_PARK) {
LOG_DEBUG(hooks_logger, DBG_DHCP6_HOOKS, DHCP6_HOOK_SUBNET6_SELECT_PARK)
.arg(question->getLabel());
drop = true;
return (Subnet6Ptr());
}
// Use whatever subnet was specified by the callout // Use whatever subnet was specified by the callout
callout_handle->getArgument("subnet6", subnet); callout_handle->getArgument("subnet6", subnet);
} }