From 1e55da38aab0a7e7d5ba4de3243512fa70401df9 Mon Sep 17 00:00:00 2001 From: ssoss Date: Wed, 30 Jul 2025 10:42:45 -0500 Subject: [PATCH] network: add new DHCPv6 message types and options Gives enum definitions for the DHCPv6 options from RFC9527 and RFC 9686 and the new message types defined in RFC 9686. --- src/libsystemd-network/dhcp6-option.c | 4 ++++ src/libsystemd-network/dhcp6-protocol.h | 2 ++ src/systemd/sd-dhcp6-protocol.h | 10 +++++++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/libsystemd-network/dhcp6-option.c b/src/libsystemd-network/dhcp6-option.c index 1de4bacd1b4..4eef68fa3b3 100644 --- a/src/libsystemd-network/dhcp6-option.c +++ b/src/libsystemd-network/dhcp6-option.c @@ -210,6 +210,10 @@ bool dhcp6_option_can_request(uint16_t option) { case SD_DHCP6_OPTION_V6_DOTS_ADDRESS: case SD_DHCP6_OPTION_IPV6_ADDRESS_ANDSF: case SD_DHCP6_OPTION_V6_DNR: + case SD_DHCP6_OPTION_REGISTERED_DOMAIN: + case SD_DHCP6_OPTION_FORWARD_DIST_MANAGER: + case SD_DHCP6_OPTION_REVERSE_DIST_MANAGER: + case SD_DHCP6_OPTION_ADDR_REG_ENABLE: return true; default: return false; diff --git a/src/libsystemd-network/dhcp6-protocol.h b/src/libsystemd-network/dhcp6-protocol.h index 75608348cdd..794b0032484 100644 --- a/src/libsystemd-network/dhcp6-protocol.h +++ b/src/libsystemd-network/dhcp6-protocol.h @@ -98,6 +98,8 @@ typedef enum DHCP6MessageType { DHCP6_MESSAGE_DISCONNECT = 33, /* RFC 8156 */ DHCP6_MESSAGE_STATE = 34, /* RFC 8156 */ DHCP6_MESSAGE_CONTACT = 35, /* RFC 8156 */ + DHCP6_MESSAGE_ADDR_REG_INFORM = 36, /* RFC 9686 */ + DHCP6_MESSAGE_ADDR_REG_REPLY = 37, /* RFC 9686 */ _DHCP6_MESSAGE_TYPE_MAX, _DHCP6_MESSAGE_TYPE_INVALID = -EINVAL, } DHCP6MessageType; diff --git a/src/systemd/sd-dhcp6-protocol.h b/src/systemd/sd-dhcp6-protocol.h index b1d9ca1ffab..6c1cf536795 100644 --- a/src/systemd/sd-dhcp6-protocol.h +++ b/src/systemd/sd-dhcp6-protocol.h @@ -165,9 +165,13 @@ enum { SD_DHCP6_OPTION_SLAP_QUAD = 140, /* RFC 8948 */ SD_DHCP6_OPTION_V6_DOTS_RI = 141, /* RFC 8973 */ SD_DHCP6_OPTION_V6_DOTS_ADDRESS = 142, /* RFC 8973 */ - SD_DHCP6_OPTION_IPV6_ADDRESS_ANDSF = 143, /* RFC 6153 */ - SD_DHCP6_OPTION_V6_DNR = 144 /* RFC 9463 */ - /* option codes 145-65535 are unassigned */ + SD_DHCP6_OPTION_IPV6_ADDRESS_ANDSF = 143, /* RFC 6153 */ + SD_DHCP6_OPTION_V6_DNR = 144, /* RFC 9463 */ + SD_DHCP6_OPTION_REGISTERED_DOMAIN = 145, /* RFC 9527 */ + SD_DHCP6_OPTION_FORWARD_DIST_MANAGER = 146, /* RFC 9527 */ + SD_DHCP6_OPTION_REVERSE_DIST_MANAGER = 147, /* RFC 9527 */ + SD_DHCP6_OPTION_ADDR_REG_ENABLE = 148 /* RFC 9686 */ + /* option codes 149-65535 are unassigned */ }; _SD_END_DECLARATIONS; -- 2.47.3