]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dhcp-protocol: introduce more sub-options for DHCP Relay Agent Information option
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 2 May 2026 13:40:22 +0000 (22:40 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 12 May 2026 15:46:09 +0000 (00:46 +0900)
These new values will be used later.

src/libsystemd-network/dhcp-protocol.h
src/systemd/sd-dhcp-protocol.h

index c2df5a574a89e5bf646f85a9f77d1e3766ebad44..49f0125b20ce52ea584ba9fd235de50b9f2b7873 100644 (file)
@@ -124,4 +124,9 @@ enum {
         DHCP_FQDN_FLAG_N = (1 << 3),
 };
 
+/* For SD_DHCP_RELAY_AGENT_FLAGS sub-option. */
+enum {
+        DHCP_RELAY_AGENT_FLAG_UNICAST = 1 << 0,
+};
+
 DECLARE_STRING_TABLE_LOOKUP_TO_STRING(dhcp_option_code, int);
index 55ce189cf4979c73c6ea71a2be88ab1645373e28..8ba28777a3c4f9ff7d85cb5c6d71b2c7cabfdc48 100644 (file)
@@ -193,10 +193,31 @@ enum {
         SD_DHCP_OPTION_END                                            = 255  /* [RFC2132] */
 };
 
-/* Suboptions for SD_DHCP_OPTION_RELAY_AGENT_INFORMATION option */
+/* Suboptions for SD_DHCP_OPTION_RELAY_AGENT_INFORMATION option. See
+ * https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml#relay-agent-sub-options */
 enum {
-        SD_DHCP_RELAY_AGENT_CIRCUIT_ID             = 1,
-        SD_DHCP_RELAY_AGENT_REMOTE_ID              = 2
+        SD_DHCP_RELAY_AGENT_CIRCUIT_ID                       = 1,
+        SD_DHCP_RELAY_AGENT_REMOTE_ID                        = 2,
+        /* suboption code 3 is reserved */
+        SD_DHCP_RELAY_AGENT_DOCSIS_DEVICE_CLASS              = 4,
+        SD_DHCP_RELAY_AGENT_LINK_SELECTION                   = 5,
+        SD_DHCP_RELAY_AGENT_SUBSCRIBER_ID                    = 6,
+        SD_DHCP_RELAY_AGENT_RADIUS_ATTRIBUTE                 = 7,
+        SD_DHCP_RELAY_AGENT_AUTHENTICATION                   = 8,
+        SD_DHCP_RELAY_AGENT_VENDOR_SPECIFIC_INFORMATION      = 9,
+        SD_DHCP_RELAY_AGENT_FLAGS                            = 10,
+        SD_DHCP_RELAY_AGENT_SERVER_IDENTIFIER_OVERRIDE       = 11,
+        SD_DHCP_RELAY_AGENT_IDENTIFIER                       = 12,
+        SD_DHCP_RELAY_AGENT_ACCESS_TECHNOLOGY_TYPE           = 13,
+        SD_DHCP_RELAY_AGENT_ACCESS_NETWORK_NAME              = 14,
+        SD_DHCP_RELAY_AGENT_ACCESS_POINT_NAME                = 15,
+        SD_DHCP_RELAY_AGENT_ACCESS_POINT_BSSID               = 16,
+        SD_DHCP_RELAY_AGENT_OPERATOR_IDENTIFIER              = 17,
+        SD_DHCP_RELAY_AGENT_OPERATOR_REALM                   = 18,
+        SD_DHCP_RELAY_AGENT_SOURCE_PORT                      = 19,
+        /* suboption code 20-150 are unassigned */
+        SD_DHCP_RELAY_AGENT_VIRTUAL_SUBNET_SELECTION         = 151,
+        SD_DHCP_RELAY_AGENT_VIRTUAL_SUBNET_SELECTION_CONTROL = 152
 };
 
 _SD_END_DECLARATIONS;