Kea  2.3.8
std_option_defs.h
Go to the documentation of this file.
1 // Copyright (C) 2012-2023 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef STD_OPTION_DEFS_H
8 #define STD_OPTION_DEFS_H
9 
10 #include <dhcp/option_data_types.h>
11 #include <dhcp/dhcp4.h>
12 #include <dhcp/dhcp6.h>
13 #include <dhcp/option_space.h>
14 
16 #define DHCP4_OPTION_SPACE "dhcp4"
17 #define DHCP6_OPTION_SPACE "dhcp6"
18 #define ISC_V6_OPTION_SPACE "4o6"
19 #define MAPE_V6_OPTION_SPACE "s46-cont-mape-options"
20 #define MAPT_V6_OPTION_SPACE "s46-cont-mapt-options"
21 #define LW_V6_OPTION_SPACE "s46-cont-lw-options"
22 #define V4V6_RULE_OPTION_SPACE "s46-rule-options"
23 #define V4V6_BIND_OPTION_SPACE "s46-v4v6bind-options"
24 #define LAST_RESORT_V4_OPTION_SPACE "last-resort-v4"
25 
27 #define DHCP_AGENT_OPTION_SPACE "dhcp-agent-options-space"
28 #define VENDOR_ENCAPSULATED_OPTION_SPACE "vendor-encapsulated-options-space"
29 
30 // NOTE:
31 // When adding a new space, make sure you also update
32 // src/lib/yang/adaptor_option.cc
33 
34 namespace isc {
35 namespace dhcp {
36 
37 namespace {
38 
43 #ifndef RECORD_DECL
44 #define RECORD_DECL(name, ...) const OptionDataType name[] = { __VA_ARGS__ }
45 #endif
46 
51 #ifndef RECORD_DEF
52 #define RECORD_DEF(name) name, sizeof(name) / sizeof(name[0])
53 #endif
54 
55 #ifndef NO_RECORD_DEF
56 #define NO_RECORD_DEF 0, 0
57 #endif
58 
59 // SLP Directory Agent option.
60 RECORD_DECL(DIRECTORY_AGENT_RECORDS, OPT_BOOLEAN_TYPE, OPT_IPV4_ADDRESS_TYPE);
61 
62 // SLP Service Scope option.
63 //
64 // The scope list is optional.
65 RECORD_DECL(SERVICE_SCOPE_RECORDS, OPT_BOOLEAN_TYPE, OPT_STRING_TYPE);
66 
67 // fqdn option record fields.
68 //
69 // Note that the flags field indicates the type of domain
70 // name encoding. There is a choice between deprecated
71 // ASCII encoding and compressed encoding described in
72 // RFC 1035, section 3.1. The latter could be handled
73 // by OPT_FQDN_TYPE but we can't use it here because
74 // clients may request ASCII encoding.
77 
78 // V-I Vendor Class record fields.
79 //
80 // Opaque data is represented here by the binary data field.
82 
83 // RFC4578 (PXE) record fields
84 //
85 // Three 1 byte fields to describe a network interface: type, major and minor
87 // A client identifier: a 1 byte type field followed by opaque data depending on the type
88 RECORD_DECL(UUID_GUID_RECORDS, OPT_UINT8_TYPE, OPT_BINARY_TYPE);
89 
90 // RFC6731 DHCPv4 Recursive DNS Server Selection option.
91 //
92 // Flag, two addresses and domain list
93 RECORD_DECL(V4_RDNSS_SELECT_RECORDS, OPT_UINT8_TYPE, OPT_IPV4_ADDRESS_TYPE,
95 
96 // RFC6926 DHCPv4 Bulk Leasequery Status Code option.
97 RECORD_DECL(V4_STATUS_CODE_RECORDS, OPT_UINT8_TYPE, OPT_STRING_TYPE);
98 
99 // RFC7618 DHCPv4 Port Parameter option.
100 //
101 // PSID offset, PSID-len and PSID
102 RECORD_DECL(V4_PORTPARAMS_RECORDS, OPT_UINT8_TYPE, OPT_PSID_TYPE);
103 
104 // RFC5969 DHCPv6 6RD option.
105 //
106 // two 8 bit lengthes, an IPv6 address and one or more IPv4 addresses
107 RECORD_DECL(OPT_6RD_RECORDS, OPT_UINT8_TYPE, OPT_UINT8_TYPE,
109 
110 // RFC-draft-ietf-add-dnr DHCPv4 DNR option.
111 //
112 // DNR Instance Data Length (2 octets), Service Priority (2 octets),
113 // ADN Length (1 octet), ADN FQDN.
114 // Opaque data is represented here by the binary data field.
115 // It may contain Addr Length (1 octet), IPv4 address(es), SvcParams,
116 // and next DNR instances as binary data.
119 
121 const OptionDefParams STANDARD_V4_OPTION_DEFINITIONS[] = {
122  { "subnet-mask", DHO_SUBNET_MASK, DHCP4_OPTION_SPACE,
123  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
125  false, NO_RECORD_DEF, "" },
127  NO_RECORD_DEF, "" },
128  { "time-servers", DHO_TIME_SERVERS, DHCP4_OPTION_SPACE,
130  { "name-servers", DHO_NAME_SERVERS, DHCP4_OPTION_SPACE,
132  { "domain-name-servers", DHO_DOMAIN_NAME_SERVERS, DHCP4_OPTION_SPACE,
134  { "log-servers", DHO_LOG_SERVERS, DHCP4_OPTION_SPACE,
136  { "cookie-servers", DHO_COOKIE_SERVERS, DHCP4_OPTION_SPACE,
138  { "lpr-servers", DHO_LPR_SERVERS, DHCP4_OPTION_SPACE,
140  { "impress-servers", DHO_IMPRESS_SERVERS, DHCP4_OPTION_SPACE,
142  { "resource-location-servers", DHO_RESOURCE_LOCATION_SERVERS,
144  { "host-name", DHO_HOST_NAME, DHCP4_OPTION_SPACE, OPT_STRING_TYPE, false,
145  NO_RECORD_DEF, "" },
146  { "boot-size", DHO_BOOT_SIZE, DHCP4_OPTION_SPACE, OPT_UINT16_TYPE, false,
147  NO_RECORD_DEF, "" },
149  false, NO_RECORD_DEF, "" },
151  false, NO_RECORD_DEF, "" },
152  { "swap-server", DHO_SWAP_SERVER, DHCP4_OPTION_SPACE,
153  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
154  { "root-path", DHO_ROOT_PATH, DHCP4_OPTION_SPACE, OPT_STRING_TYPE, false,
155  NO_RECORD_DEF, "" },
156  { "extensions-path", DHO_EXTENSIONS_PATH, DHCP4_OPTION_SPACE,
157  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
159  false, NO_RECORD_DEF, "" },
160  { "non-local-source-routing", DHO_NON_LOCAL_SOURCE_ROUTING,
162  { "policy-filter", DHO_POLICY_FILTER, DHCP4_OPTION_SPACE,
164  { "max-dgram-reassembly", DHO_MAX_DGRAM_REASSEMBLY, DHCP4_OPTION_SPACE,
165  OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" },
167  false, NO_RECORD_DEF, "" },
168  { "path-mtu-aging-timeout", DHO_PATH_MTU_AGING_TIMEOUT, DHCP4_OPTION_SPACE,
169  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
170  { "path-mtu-plateau-table", DHO_PATH_MTU_PLATEAU_TABLE, DHCP4_OPTION_SPACE,
171  OPT_UINT16_TYPE, true, NO_RECORD_DEF, "" },
173  false, NO_RECORD_DEF, "" },
174  { "all-subnets-local", DHO_ALL_SUBNETS_LOCAL, DHCP4_OPTION_SPACE,
175  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
176  { "broadcast-address", DHO_BROADCAST_ADDRESS, DHCP4_OPTION_SPACE,
177  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
178  { "perform-mask-discovery", DHO_PERFORM_MASK_DISCOVERY, DHCP4_OPTION_SPACE,
179  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
181  false, NO_RECORD_DEF, "" },
182  { "router-discovery", DHO_ROUTER_DISCOVERY, DHCP4_OPTION_SPACE,
183  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
184  { "router-solicitation-address", DHO_ROUTER_SOLICITATION_ADDRESS,
186  { "static-routes", DHO_STATIC_ROUTES, DHCP4_OPTION_SPACE,
188  { "trailer-encapsulation", DHO_TRAILER_ENCAPSULATION, DHCP4_OPTION_SPACE,
189  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
190  { "arp-cache-timeout", DHO_ARP_CACHE_TIMEOUT, DHCP4_OPTION_SPACE,
191  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
192  { "ieee802-3-encapsulation", DHO_IEEE802_3_ENCAPSULATION,
194  { "default-tcp-ttl", DHO_DEFAULT_TCP_TTL, DHCP4_OPTION_SPACE,
195  OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
196  { "tcp-keepalive-interval", DHO_TCP_KEEPALIVE_INTERVAL, DHCP4_OPTION_SPACE,
197  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
198  { "tcp-keepalive-garbage", DHO_TCP_KEEPALIVE_GARBAGE, DHCP4_OPTION_SPACE,
199  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
200  { "nis-domain", DHO_NIS_DOMAIN, DHCP4_OPTION_SPACE, OPT_STRING_TYPE, false,
201  NO_RECORD_DEF, "" },
202  { "nis-servers", DHO_NIS_SERVERS, DHCP4_OPTION_SPACE,
204  { "ntp-servers", DHO_NTP_SERVERS, DHCP4_OPTION_SPACE,
207  { "netbios-name-servers", DHO_NETBIOS_NAME_SERVERS, DHCP4_OPTION_SPACE,
209  { "netbios-dd-server", DHO_NETBIOS_DD_SERVER, DHCP4_OPTION_SPACE,
211  { "netbios-node-type", DHO_NETBIOS_NODE_TYPE, DHCP4_OPTION_SPACE,
212  OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
214  false, NO_RECORD_DEF, "" },
215  { "font-servers", DHO_FONT_SERVERS, DHCP4_OPTION_SPACE,
217  { "x-display-manager", DHO_X_DISPLAY_MANAGER, DHCP4_OPTION_SPACE,
219  { "dhcp-requested-address", DHO_DHCP_REQUESTED_ADDRESS, DHCP4_OPTION_SPACE,
220  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
221  { "dhcp-lease-time", DHO_DHCP_LEASE_TIME, DHCP4_OPTION_SPACE,
222  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
223  { "dhcp-option-overload", DHO_DHCP_OPTION_OVERLOAD, DHCP4_OPTION_SPACE,
224  OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
225  { "dhcp-message-type", DHO_DHCP_MESSAGE_TYPE, DHCP4_OPTION_SPACE,
226  OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
227  { "dhcp-server-identifier", DHO_DHCP_SERVER_IDENTIFIER, DHCP4_OPTION_SPACE,
228  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
229  { "dhcp-parameter-request-list", DHO_DHCP_PARAMETER_REQUEST_LIST,
232  false, NO_RECORD_DEF, "" },
233  { "dhcp-max-message-size", DHO_DHCP_MAX_MESSAGE_SIZE, DHCP4_OPTION_SPACE,
234  OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" },
235  { "dhcp-renewal-time", DHO_DHCP_RENEWAL_TIME, DHCP4_OPTION_SPACE,
236  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
237  { "dhcp-rebinding-time", DHO_DHCP_REBINDING_TIME, DHCP4_OPTION_SPACE,
238  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
239  { "vendor-class-identifier", DHO_VENDOR_CLASS_IDENTIFIER,
241  { "dhcp-client-identifier", DHO_DHCP_CLIENT_IDENTIFIER, DHCP4_OPTION_SPACE,
242  OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
243  { "nwip-domain-name", DHO_NWIP_DOMAIN_NAME, DHCP4_OPTION_SPACE,
244  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
245  { "nwip-suboptions", DHO_NWIP_SUBOPTIONS, DHCP4_OPTION_SPACE,
246  OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
247  { "nisplus-domain-name", DHO_NISP_DOMAIN_NAME, DHCP4_OPTION_SPACE,
248  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
249  { "nisplus-servers", DHO_NISP_SERVER_ADDR, DHCP4_OPTION_SPACE,
251  { "tftp-server-name", DHO_TFTP_SERVER_NAME, DHCP4_OPTION_SPACE,
252  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
253  { "boot-file-name", DHO_BOOT_FILE_NAME, DHCP4_OPTION_SPACE,
254  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
255  { "mobile-ip-home-agent", DHO_HOME_AGENT_ADDRS, DHCP4_OPTION_SPACE,
257  { "smtp-server", DHO_SMTP_SERVER, DHCP4_OPTION_SPACE,
260  true, NO_RECORD_DEF, "" },
261  { "nntp-server", DHO_NNTP_SERVER, DHCP4_OPTION_SPACE,
264  true, NO_RECORD_DEF, "" },
265  { "finger-server", DHO_FINGER_SERVER, DHCP4_OPTION_SPACE,
268  true, NO_RECORD_DEF, "" },
269  { "streettalk-server", DHO_STREETTALK_SERVER, DHCP4_OPTION_SPACE,
271  { "streettalk-directory-assistance-server", DHO_STDASERVER,
273  { "user-class", DHO_USER_CLASS, DHCP4_OPTION_SPACE, OPT_BINARY_TYPE, false,
274  NO_RECORD_DEF, "" },
275  { "slp-directory-agent", DHO_DIRECTORY_AGENT, DHCP4_OPTION_SPACE,
276  OPT_RECORD_TYPE, true, RECORD_DEF(DIRECTORY_AGENT_RECORDS), "" },
277  { "slp-service-scope", DHO_SERVICE_SCOPE, DHCP4_OPTION_SPACE,
278  OPT_RECORD_TYPE, false, RECORD_DEF(SERVICE_SCOPE_RECORDS), "" },
279  { "fqdn", DHO_FQDN, DHCP4_OPTION_SPACE, OPT_RECORD_TYPE, false,
280  RECORD_DEF(FQDN_RECORDS), "" },
281  { "dhcp-agent-options", DHO_DHCP_AGENT_OPTIONS, DHCP4_OPTION_SPACE,
283  { "nds-servers", DHO_NDS_SERVERS, DHCP4_OPTION_SPACE,
286  false, NO_RECORD_DEF, "" },
288  false, NO_RECORD_DEF, "" },
289  { "bcms-controller-names", DHO_BCMCS_DOMAIN_NAME_LIST, DHCP4_OPTION_SPACE,
290  OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
291  { "bcms-controller-address", DHO_BCMCS_IPV4_ADDR, DHCP4_OPTION_SPACE,
293  // Unfortunately the AUTHENTICATE option contains a 64-bit
294  // data field called 'replay-detection' that can't be added
295  // as a record field to a custom option. Also, there is no
296  // dedicated option class to handle it so we simply return
297  // binary option type for now.
298  // @todo implement a class to handle AUTH option.
300  false, NO_RECORD_DEF, "" },
301  { "client-last-transaction-time", DHO_CLIENT_LAST_TRANSACTION_TIME,
303  { "associated-ip", DHO_ASSOCIATED_IP, DHCP4_OPTION_SPACE,
305  { "client-system", DHO_SYSTEM, DHCP4_OPTION_SPACE, OPT_UINT16_TYPE, true,
306  NO_RECORD_DEF, "" },
307  { "client-ndi", DHO_NDI, DHCP4_OPTION_SPACE, OPT_RECORD_TYPE, false,
308  RECORD_DEF(CLIENT_NDI_RECORDS), "" },
309  { "uuid-guid", DHO_UUID_GUID, DHCP4_OPTION_SPACE, OPT_RECORD_TYPE, false,
310  RECORD_DEF(UUID_GUID_RECORDS), "" },
311  { "uap-servers", DHO_USER_AUTH, DHCP4_OPTION_SPACE, OPT_STRING_TYPE, false,
312  NO_RECORD_DEF, "" },
314  false, NO_RECORD_DEF, "" },
315  { "pcode", DHO_PCODE, DHCP4_OPTION_SPACE, OPT_STRING_TYPE, false,
316  NO_RECORD_DEF, "" },
317  { "tcode", DHO_TCODE, DHCP4_OPTION_SPACE, OPT_STRING_TYPE, false,
318  NO_RECORD_DEF, "" },
319  { "v6-only-preferred", DHO_V6_ONLY_PREFERRED, DHCP4_OPTION_SPACE,
320  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
321  { "netinfo-server-address", DHO_NETINFO_ADDR, DHCP4_OPTION_SPACE,
323  { "netinfo-server-tag", DHO_NETINFO_TAG, DHCP4_OPTION_SPACE,
324  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
325  { "v4-captive-portal", DHO_V4_CAPTIVE_PORTAL, DHCP4_OPTION_SPACE,
326  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
328  false, NO_RECORD_DEF, "" },
329  { "name-service-search", DHO_NAME_SERVICE_SEARCH, DHCP4_OPTION_SPACE,
330  OPT_UINT16_TYPE, true, NO_RECORD_DEF, "" },
331  { "subnet-selection", DHO_SUBNET_SELECTION, DHCP4_OPTION_SPACE,
332  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
334  true, NO_RECORD_DEF, "" },
335  { "vivco-suboptions", DHO_VIVCO_SUBOPTIONS, DHCP4_OPTION_SPACE,
336  OPT_RECORD_TYPE, false, RECORD_DEF(VIVCO_RECORDS), "" },
337  // Vendor-Identifying Vendor Specific Information option payload begins with a
338  // 32-bit log enterprise number, followed by a tuple of data-len/option-data.
339  // The format defined here includes 32-bit field holding enterprise number.
340  // This allows for specifying option-data information where the enterprise-id
341  // is represented by a uint32_t value. Previously we represented this option
342  // as a binary, but that would imply that enterprise number would have to be
343  // represented in binary format in the server configuration. That would be
344  // inconvenient and non-intuitive.
349  { "vivso-suboptions", DHO_VIVSO_SUBOPTIONS, DHCP4_OPTION_SPACE,
350  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
352  true, NO_RECORD_DEF, "" },
353  { "v4-lost", DHO_V4_LOST, DHCP4_OPTION_SPACE, OPT_FQDN_TYPE, false,
354  NO_RECORD_DEF, "" },
355  { "capwap-ac-v4", DHO_CAPWAP_AC_V4, DHCP4_OPTION_SPACE,
357  { "sip-ua-cs-domains", DHO_SIP_UA_CONF_SERVICE_DOMAINS, DHCP4_OPTION_SPACE,
358  OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
360  true, NO_RECORD_DEF, ""},
361  { "rdnss-selection", DHO_RDNSS_SELECT, DHCP4_OPTION_SPACE, OPT_RECORD_TYPE,
362  true, RECORD_DEF(V4_RDNSS_SELECT_RECORDS), "" },
363  { "status-code", DHO_STATUS_CODE, DHCP4_OPTION_SPACE,
364  OPT_RECORD_TYPE, false, RECORD_DEF(V4_STATUS_CODE_RECORDS), "" },
365  { "base-time", DHO_BASE_TIME, DHCP4_OPTION_SPACE,
366  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
367  { "start-time-of-state", DHO_START_TIME_OF_STATE, DHCP4_OPTION_SPACE,
368  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
369  { "query-start-time", DHO_QUERY_START_TIME, DHCP4_OPTION_SPACE,
370  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
371  { "query-end-time", DHO_QUERY_END_TIME, DHCP4_OPTION_SPACE,
372  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
373  { "dhcp-state", DHO_DHCP_STATE, DHCP4_OPTION_SPACE,
374  OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
375  { "data-source", DHO_DATA_SOURCE, DHCP4_OPTION_SPACE,
376  OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
378  false, RECORD_DEF(V4_PORTPARAMS_RECORDS), "" },
380  false, RECORD_DEF(V4_DNR_RECORDS), "" },
381  { "option-6rd", DHO_6RD, DHCP4_OPTION_SPACE, OPT_RECORD_TYPE, true,
382  RECORD_DEF(OPT_6RD_RECORDS), "" },
383  { "v4-access-domain", DHO_V4_ACCESS_DOMAIN, DHCP4_OPTION_SPACE,
384  OPT_FQDN_TYPE, false, NO_RECORD_DEF, "" }
385 
386  // @todo add definitions for all remaining options.
387 };
388 
390 const int STANDARD_V4_OPTION_DEFINITIONS_SIZE =
391  sizeof(STANDARD_V4_OPTION_DEFINITIONS) /
392  sizeof(STANDARD_V4_OPTION_DEFINITIONS[0]);
393 
395 const OptionDefParams DHCP_AGENT_OPTION_DEFINITIONS[] = {
396  { "circuit-id", RAI_OPTION_AGENT_CIRCUIT_ID,
398  { "remote-id", RAI_OPTION_REMOTE_ID,
400  { "docsis-device-class", RAI_OPTION_DOCSIS_DEVICE_CLASS,
402  { "link-selection", RAI_OPTION_LINK_SELECTION,
404  NO_RECORD_DEF, "" },
405  { "subscriber-id", RAI_OPTION_SUBSCRIBER_ID,
407  { "radius", RAI_OPTION_RADIUS,
409  { "auth", RAI_OPTION_AUTH,
411  { "vendor-specific-info", RAI_OPTION_VSI,
413  { "relay-flags", RAI_OPTION_RELAY_FLAGS,
415  { "server-id-override", RAI_OPTION_SERVER_ID_OVERRIDE,
417  NO_RECORD_DEF, "" },
418  { "relay-id", RAI_OPTION_RELAY_ID,
420  { "access-techno-type", RAI_OPTION_ACCESS_TECHNO_TYPE,
422  { "access-network-name", RAI_OPTION_ACCESS_NETWORK_NAME,
424  { "access-point-name", RAI_OPTION_ACCESS_POINT_NAME,
426  { "access-point-bssid", RAI_OPTION_ACCESS_POINT_BSSID,
428  { "operator-id", RAI_OPTION_OPERATOR_ID,
430  { "operator-realm", RAI_OPTION_OPERATOR_REALM,
432  { "relay-port", RAI_OPTION_RELAY_PORT,
434  { "virtual-subnet-select", RAI_OPTION_VIRTUAL_SUBNET_SELECT,
436  { "virtual-subnet-select-ctrl", RAI_OPTION_VIRTUAL_SUBNET_SELECT_CTRL,
438 };
439 
440 const int DHCP_AGENT_OPTION_DEFINITIONS_SIZE =
441  sizeof(DHCP_AGENT_OPTION_DEFINITIONS) /
442  sizeof(DHCP_AGENT_OPTION_DEFINITIONS[0]);
443 
446 const OptionDefParams LAST_RESORT_V4_OPTION_DEFINITIONS[] = {
447  { "vendor-encapsulated-options", DHO_VENDOR_ENCAPSULATED_OPTIONS,
450 };
451 
452 const int LAST_RESORT_V4_OPTION_DEFINITIONS_SIZE =
453  sizeof(LAST_RESORT_V4_OPTION_DEFINITIONS) /
454  sizeof(LAST_RESORT_V4_OPTION_DEFINITIONS[0]);
455 
457 
458 // client-fqdn
459 RECORD_DECL(CLIENT_FQDN_RECORDS, OPT_UINT8_TYPE, OPT_FQDN_TYPE);
460 // geoconf-civic
461 RECORD_DECL(GEOCONF_CIVIC_RECORDS, OPT_UINT8_TYPE, OPT_UINT16_TYPE,
463 // iaddr
466 // ia-na
468 // ia-pd
470 // ia-prefix
471 RECORD_DECL(IA_PREFIX_RECORDS, OPT_UINT32_TYPE, OPT_UINT32_TYPE,
473 // lq-query
475 // lq-relay-data
476 RECORD_DECL(LQ_RELAY_DATA_RECORDS, OPT_IPV6_ADDRESS_TYPE, OPT_BINARY_TYPE);
477 // remote-id
478 RECORD_DECL(REMOTE_ID_RECORDS, OPT_UINT32_TYPE, OPT_BINARY_TYPE);
479 // s46-rule
482 // s46-v4v6bind
484 // s46-portparams
485 RECORD_DECL(S46_PORTPARAMS, OPT_UINT8_TYPE, OPT_PSID_TYPE);
486 // status-code
487 RECORD_DECL(V6_STATUS_CODE_RECORDS, OPT_UINT16_TYPE, OPT_STRING_TYPE);
488 // vendor-class
489 RECORD_DECL(VENDOR_CLASS_RECORDS, OPT_UINT32_TYPE, OPT_BINARY_TYPE);
490 // rdnss-selection
491 RECORD_DECL(V6_RDNSS_SELECT_RECORDS, OPT_IPV6_ADDRESS_TYPE, OPT_UINT8_TYPE,
492  OPT_FQDN_TYPE);
493 // sedhcpv6 signature
494 RECORD_DECL(SIGNATURE_RECORDS, OPT_UINT8_TYPE, OPT_UINT8_TYPE,
496 
497 // RFC5970 (PXE) Class record fields
498 //
499 // Three 1 byte fileds to describe a network interface: type, major and minor
501 
502 // RFC-draft-ietf-add-dnr DHCPv6 DNR option.
503 //
504 // Service Priority (2 octets), ADN Length (2 octets), ADN FQDN.
505 // Opaque data is represented here by the binary data field.
506 // It may contain Addr Length (2 octets), IPv6 address(es), SvcParams.
508 
519 const OptionDefParams STANDARD_V6_OPTION_DEFINITIONS[] = {
520  { "clientid", D6O_CLIENTID, DHCP6_OPTION_SPACE, OPT_BINARY_TYPE, false,
521  NO_RECORD_DEF, "" },
522  { "serverid", D6O_SERVERID, DHCP6_OPTION_SPACE, OPT_BINARY_TYPE, false,
523  NO_RECORD_DEF, "" },
524  { "ia-na", D6O_IA_NA, DHCP6_OPTION_SPACE, OPT_RECORD_TYPE, false,
525  RECORD_DEF(IA_NA_RECORDS), "" },
526  { "ia-ta", D6O_IA_TA, DHCP6_OPTION_SPACE, OPT_UINT32_TYPE, false,
527  NO_RECORD_DEF, "" },
528  { "iaaddr", D6O_IAADDR, DHCP6_OPTION_SPACE, OPT_RECORD_TYPE, false,
529  RECORD_DEF(IAADDR_RECORDS), "" },
531  "" },
532  { "preference", D6O_PREFERENCE, DHCP6_OPTION_SPACE, OPT_UINT8_TYPE, false,
533  NO_RECORD_DEF, "" },
535  false, NO_RECORD_DEF, "" },
536  { "relay-msg", D6O_RELAY_MSG, DHCP6_OPTION_SPACE, OPT_BINARY_TYPE, false,
537  NO_RECORD_DEF, "" },
538  // Unfortunately the AUTH option contains a 64-bit data field
539  // called 'replay-detection' that can't be added as a record
540  // field to a custom option. Also, there is no dedicated
541  // option class to handle it so we simply return binary
542  // option type for now.
543  // @todo implement a class to handle AUTH option.
544  { "auth", D6O_AUTH, DHCP6_OPTION_SPACE, OPT_BINARY_TYPE, false,
545  NO_RECORD_DEF, "" },
547  false, NO_RECORD_DEF, "" },
549  false, RECORD_DEF(V6_STATUS_CODE_RECORDS), "" },
551  false, NO_RECORD_DEF, "" },
553  false, NO_RECORD_DEF, "" },
555  false, RECORD_DEF(VENDOR_CLASS_RECORDS), "" },
557  false, NO_RECORD_DEF, "" },
559  false, NO_RECORD_DEF, "" },
560  { "reconf-msg", D6O_RECONF_MSG, DHCP6_OPTION_SPACE, OPT_UINT8_TYPE, false,
561  NO_RECORD_DEF, "" },
563  false, NO_RECORD_DEF, "" },
565  true, NO_RECORD_DEF, "" },
566  { "sip-server-addr", D6O_SIP_SERVERS_ADDR, DHCP6_OPTION_SPACE,
568  { "dns-servers", D6O_NAME_SERVERS, DHCP6_OPTION_SPACE,
571  true, NO_RECORD_DEF, "" },
572  { "ia-pd", D6O_IA_PD, DHCP6_OPTION_SPACE, OPT_RECORD_TYPE, false,
573  RECORD_DEF(IA_PD_RECORDS), "" },
574  { "iaprefix", D6O_IAPREFIX, DHCP6_OPTION_SPACE, OPT_RECORD_TYPE, false,
575  RECORD_DEF(IA_PREFIX_RECORDS), "" },
576  { "nis-servers", D6O_NIS_SERVERS, DHCP6_OPTION_SPACE,
578  { "nisp-servers", D6O_NISP_SERVERS, DHCP6_OPTION_SPACE,
580  { "nis-domain-name", D6O_NIS_DOMAIN_NAME, DHCP6_OPTION_SPACE,
581  OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
582  { "nisp-domain-name", D6O_NISP_DOMAIN_NAME, DHCP6_OPTION_SPACE,
583  OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
584  { "sntp-servers", D6O_SNTP_SERVERS, DHCP6_OPTION_SPACE,
586  { "information-refresh-time", D6O_INFORMATION_REFRESH_TIME,
588  { "bcmcs-server-dns", D6O_BCMCS_SERVER_D, DHCP6_OPTION_SPACE,
589  OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
590  { "bcmcs-server-addr", D6O_BCMCS_SERVER_A, DHCP6_OPTION_SPACE,
592  { "geoconf-civic", D6O_GEOCONF_CIVIC, DHCP6_OPTION_SPACE,
593  OPT_RECORD_TYPE, false, RECORD_DEF(GEOCONF_CIVIC_RECORDS), "" },
594  { "remote-id", D6O_REMOTE_ID, DHCP6_OPTION_SPACE, OPT_RECORD_TYPE, false,
595  RECORD_DEF(REMOTE_ID_RECORDS), "" },
597  false, NO_RECORD_DEF, "" },
599  false, RECORD_DEF(CLIENT_FQDN_RECORDS), "" },
601  true, NO_RECORD_DEF, "" },
602  { "new-posix-timezone", D6O_NEW_POSIX_TIMEZONE, DHCP6_OPTION_SPACE,
603  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
604  { "new-tzdb-timezone", D6O_NEW_TZDB_TIMEZONE, DHCP6_OPTION_SPACE,
605  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
606  { "ero", D6O_ERO, DHCP6_OPTION_SPACE, OPT_UINT16_TYPE, true,
607  NO_RECORD_DEF, "" },
608  { "lq-query", D6O_LQ_QUERY, DHCP6_OPTION_SPACE, OPT_RECORD_TYPE, false,
609  RECORD_DEF(LQ_QUERY_RECORDS), DHCP6_OPTION_SPACE },
612  { "clt-time", D6O_CLT_TIME, DHCP6_OPTION_SPACE, OPT_UINT32_TYPE, false,
613  NO_RECORD_DEF, "" },
615  false, RECORD_DEF(LQ_RELAY_DATA_RECORDS), "" },
616  { "lq-client-link", D6O_LQ_CLIENT_LINK, DHCP6_OPTION_SPACE,
618  { "v6-lost", D6O_V6_LOST, DHCP6_OPTION_SPACE, OPT_FQDN_TYPE, false,
619  NO_RECORD_DEF, "" },
620  { "capwap-ac-v6", D6O_CAPWAP_AC_V6, DHCP6_OPTION_SPACE,
622  { "relay-id", D6O_RELAY_ID, DHCP6_OPTION_SPACE, OPT_BINARY_TYPE, false,
623  NO_RECORD_DEF, "" },
624  { "v6-access-domain", D6O_V6_ACCESS_DOMAIN, DHCP6_OPTION_SPACE,
625  OPT_FQDN_TYPE, false, NO_RECORD_DEF, "" },
626  { "sip-ua-cs-list", D6O_SIP_UA_CS_LIST, DHCP6_OPTION_SPACE,
627  OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
629  false, NO_RECORD_DEF, "" },
631  true, NO_RECORD_DEF, "" },
632  { "client-arch-type", D6O_CLIENT_ARCH_TYPE, DHCP6_OPTION_SPACE,
633  OPT_UINT16_TYPE, true, NO_RECORD_DEF, "" },
634  { "nii", D6O_NII, DHCP6_OPTION_SPACE, OPT_RECORD_TYPE, false,
635  RECORD_DEF(CLIENT_NII_RECORDS), "" },
636  { "aftr-name", D6O_AFTR_NAME, DHCP6_OPTION_SPACE, OPT_FQDN_TYPE, false,
637  NO_RECORD_DEF, "" },
638  { "erp-local-domain-name", D6O_ERP_LOCAL_DOMAIN_NAME, DHCP6_OPTION_SPACE
639  , OPT_FQDN_TYPE, false, NO_RECORD_DEF, "" },
640  { "rsoo", D6O_RSOO, DHCP6_OPTION_SPACE, OPT_EMPTY_TYPE, false,
641  NO_RECORD_DEF, "rsoo-opts" },
643  false, NO_RECORD_DEF, "" },
644  { "rdnss-selection", D6O_RDNSS_SELECTION, DHCP6_OPTION_SPACE,
645  OPT_RECORD_TYPE, true, RECORD_DEF(V6_RDNSS_SELECT_RECORDS), "" },
646  { "client-linklayer-addr", D6O_CLIENT_LINKLAYER_ADDR, DHCP6_OPTION_SPACE,
647  OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
648  { "link-address", D6O_LINK_ADDRESS, DHCP6_OPTION_SPACE,
649  OPT_IPV6_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
650  { "solmax-rt", D6O_SOL_MAX_RT, DHCP6_OPTION_SPACE, OPT_UINT32_TYPE, false,
651  NO_RECORD_DEF, "" },
652  { "inf-max-rt", D6O_INF_MAX_RT, DHCP6_OPTION_SPACE, OPT_UINT32_TYPE, false,
653  NO_RECORD_DEF, "" },
654  { "dhcpv4-message", D6O_DHCPV4_MSG, DHCP6_OPTION_SPACE, OPT_BINARY_TYPE,
655  false, NO_RECORD_DEF, "" },
656  { "dhcp4o6-server-addr", D6O_DHCPV4_O_DHCPV6_SERVER, DHCP6_OPTION_SPACE,
658  { "v6-captive-portal", D6O_V6_CAPTIVE_PORTAL, DHCP6_OPTION_SPACE,
659  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
660  { "relay-source-port", D6O_RELAY_SOURCE_PORT, DHCP6_OPTION_SPACE,
661  OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" },
662  { "v6-sztp-redirect", D60_V6_SZTP_REDIRECT, DHCP6_OPTION_SPACE,
663  OPT_TUPLE_TYPE, true, NO_RECORD_DEF, "" },
664  { "ipv6-address-andsf", D6O_IPV6_ADDRESS_ANDSF, DHCP6_OPTION_SPACE,
673  false, RECORD_DEF(V6_DNR_RECORDS), "" }
674 
675  // @todo There is still a bunch of options for which we have to provide
676  // definitions but we don't do it because they are not really
677  // critical right now.
678 };
679 
681 const int STANDARD_V6_OPTION_DEFINITIONS_SIZE =
682  sizeof(STANDARD_V6_OPTION_DEFINITIONS) /
683  sizeof(STANDARD_V6_OPTION_DEFINITIONS[0]);
684 
691 const OptionDefParams ISC_V6_OPTION_DEFINITIONS[] = {
692  { "4o6-interface", ISC_V6_4O6_INTERFACE, ISC_V6_OPTION_SPACE,
693  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
694  { "4o6-source-address", ISC_V6_4O6_SRC_ADDRESS, ISC_V6_OPTION_SPACE,
695  OPT_IPV6_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
696  { "4o6-source-port", ISC_V6_4O6_SRC_PORT, ISC_V6_OPTION_SPACE,
697  OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" }
698 };
699 
700 const int ISC_V6_OPTION_DEFINITIONS_SIZE =
701  sizeof(ISC_V6_OPTION_DEFINITIONS) /
702  sizeof(ISC_V6_OPTION_DEFINITIONS[0]);
703 
705 const OptionDefParams MAPE_V6_OPTION_DEFINITIONS[] = {
707  NO_RECORD_DEF, "" },
708  { "s46-rule", D6O_S46_RULE, MAPE_V6_OPTION_SPACE, OPT_RECORD_TYPE, false,
710 };
711 
712 const int MAPE_V6_OPTION_DEFINITIONS_SIZE =
713  sizeof(MAPE_V6_OPTION_DEFINITIONS) /
714  sizeof(MAPE_V6_OPTION_DEFINITIONS[0]);
715 
717 const OptionDefParams MAPT_V6_OPTION_DEFINITIONS[] = {
718  { "s46-rule", D6O_S46_RULE, MAPT_V6_OPTION_SPACE, OPT_RECORD_TYPE, false,
719  RECORD_DEF(S46_RULE), V4V6_RULE_OPTION_SPACE },
721  false, NO_RECORD_DEF, "" }
722 };
723 
724 const int MAPT_V6_OPTION_DEFINITIONS_SIZE =
725  sizeof(MAPT_V6_OPTION_DEFINITIONS) /
726  sizeof(MAPT_V6_OPTION_DEFINITIONS[0]);
727 
729 const OptionDefParams LW_V6_OPTION_DEFINITIONS[] = {
731  NO_RECORD_DEF, "" },
733  false, RECORD_DEF(S46_V4V6BIND), V4V6_BIND_OPTION_SPACE }
734 };
735 
736 const int LW_V6_OPTION_DEFINITIONS_SIZE =
737  sizeof(LW_V6_OPTION_DEFINITIONS) /
738  sizeof(LW_V6_OPTION_DEFINITIONS[0]);
739 
741 const OptionDefParams V4V6_RULE_OPTION_DEFINITIONS[] = {
742  { "s46-portparams", D6O_S46_PORTPARAMS, V4V6_RULE_OPTION_SPACE,
743  OPT_RECORD_TYPE, false, RECORD_DEF(S46_PORTPARAMS), "" }
744 };
745 
746 const int V4V6_RULE_OPTION_DEFINITIONS_SIZE =
747  sizeof(V4V6_RULE_OPTION_DEFINITIONS) /
748  sizeof(V4V6_RULE_OPTION_DEFINITIONS[0]);
749 
751 const OptionDefParams V4V6_BIND_OPTION_DEFINITIONS[] = {
752  { "s46-portparams", D6O_S46_PORTPARAMS, V4V6_BIND_OPTION_SPACE,
753  OPT_RECORD_TYPE, false, RECORD_DEF(S46_PORTPARAMS), "" }
754 };
755 
756 const int V4V6_BIND_OPTION_DEFINITIONS_SIZE =
757  sizeof(V4V6_BIND_OPTION_DEFINITIONS) /
758  sizeof(V4V6_BIND_OPTION_DEFINITIONS[0]);
759 
760 } // namespace
761 
762 } // namespace dhcp
763 } // namespace isc
764 
765 #endif // STD_OPTION_DEFS_H
@ D6O_CLIENT_FQDN
Definition: dhcp6.h:59
@ D6O_USER_CLASS
Definition: dhcp6.h:35
@ D6O_S46_DMR
Definition: dhcp6.h:111
@ D6O_S46_CONT_LW
Definition: dhcp6.h:116
@ D6O_UNICAST
Definition: dhcp6.h:32
@ D6O_RSOO
Definition: dhcp6.h:86
@ D6O_INTERFACE_ID
Definition: dhcp6.h:38
@ D6O_SIP_UA_CS_LIST
Definition: dhcp6.h:78
@ D6O_NII
Definition: dhcp6.h:82
@ D60_V6_SZTP_REDIRECT
Definition: dhcp6.h:156
@ D6O_IPV6_ADDRESS_ANDSF
Definition: dhcp6.h:158
@ D6O_DHCPV4_O_DHCPV6_SERVER
Definition: dhcp6.h:108
@ D6O_SERVERID
Definition: dhcp6.h:22
@ D6O_AUTH
Definition: dhcp6.h:31
@ D6O_CLIENTID
Definition: dhcp6.h:21
@ D6O_V6_CAPTIVE_PORTAL
Definition: dhcp6.h:123
@ D6O_RELAY_MSG
Definition: dhcp6.h:29
@ D6O_S46_CONT_MAPE
Definition: dhcp6.h:114
@ D6O_REMOTE_ID
Definition: dhcp6.h:57
@ D6O_INFORMATION_REFRESH_TIME
Definition: dhcp6.h:52
@ D6O_VENDOR_OPTS
Definition: dhcp6.h:37
@ D6O_INF_MAX_RT
Definition: dhcp6.h:103
@ D6O_V6_ACCESS_DOMAIN
Definition: dhcp6.h:77
@ D6O_S46_RULE
Definition: dhcp6.h:109
@ D6O_S46_V4V6BIND
Definition: dhcp6.h:112
@ D6O_IA_TA
Definition: dhcp6.h:24
@ D6O_BOOTFILE_URL
Definition: dhcp6.h:79
@ D6O_SUBSCRIBER_ID
Definition: dhcp6.h:58
@ D6O_S46_PORTPARAMS
Definition: dhcp6.h:113
@ D6O_NEW_TZDB_TIMEZONE
Definition: dhcp6.h:62
@ D6O_CLT_TIME
Definition: dhcp6.h:66
@ D6O_SOL_MAX_RT
Definition: dhcp6.h:102
@ D6O_BCMCS_SERVER_D
Definition: dhcp6.h:53
@ D6O_CLIENT_ARCH_TYPE
Definition: dhcp6.h:81
@ D6O_NAME_SERVERS
Definition: dhcp6.h:43
@ D6O_RELAY_SOURCE_PORT
Definition: dhcp6.h:155
@ D6O_RAPID_COMMIT
Definition: dhcp6.h:34
@ D6O_SIP_SERVERS_ADDR
Definition: dhcp6.h:42
@ D6O_PANA_AGENT
Definition: dhcp6.h:60
@ D6O_V6_LOST
Definition: dhcp6.h:71
@ D6O_AFTR_NAME
Definition: dhcp6.h:84
@ D6O_BOOTFILE_PARAM
Definition: dhcp6.h:80
@ D6O_RELAY_ID
Definition: dhcp6.h:73
@ D6O_IA_NA
Definition: dhcp6.h:23
@ D6O_PREFERENCE
Definition: dhcp6.h:27
@ D6O_NIS_SERVERS
Definition: dhcp6.h:47
@ D6O_S46_BR
Definition: dhcp6.h:110
@ D6O_RDNSS_SELECTION
Definition: dhcp6.h:94
@ D6O_ORO
Definition: dhcp6.h:26
@ D6O_ERO
Definition: dhcp6.h:63
@ D6O_PD_EXCLUDE
Definition: dhcp6.h:87
@ D6O_S46_CONT_MAPT
Definition: dhcp6.h:115
@ D6O_RECONF_MSG
Definition: dhcp6.h:39
@ D6O_IA_PD
Definition: dhcp6.h:45
@ D6O_SIP_SERVERS_DNS
Definition: dhcp6.h:41
@ D6O_SNTP_SERVERS
Definition: dhcp6.h:51
@ D6O_RECONF_ACCEPT
Definition: dhcp6.h:40
@ D6O_DOMAIN_SEARCH
Definition: dhcp6.h:44
@ D6O_NISP_SERVERS
Definition: dhcp6.h:48
@ D6O_LQ_QUERY
Definition: dhcp6.h:64
@ D6O_V6_DNR
Definition: dhcp6.h:159
@ D6O_GEOCONF_CIVIC
Definition: dhcp6.h:56
@ D6O_NISP_DOMAIN_NAME
Definition: dhcp6.h:50
@ D6O_DHCPV4_MSG
Definition: dhcp6.h:107
@ D6O_IAADDR
Definition: dhcp6.h:25
@ D6O_CLIENT_DATA
Definition: dhcp6.h:65
@ D6O_LQ_RELAY_DATA
Definition: dhcp6.h:67
@ D6O_NIS_DOMAIN_NAME
Definition: dhcp6.h:49
@ D6O_BCMCS_SERVER_A
Definition: dhcp6.h:54
@ D6O_LQ_CLIENT_LINK
Definition: dhcp6.h:68
@ D6O_CLIENT_LINKLAYER_ADDR
Definition: dhcp6.h:99
@ D6O_LINK_ADDRESS
Definition: dhcp6.h:100
@ D6O_NEW_POSIX_TIMEZONE
Definition: dhcp6.h:61
@ D6O_VENDOR_CLASS
Definition: dhcp6.h:36
@ D6O_ERP_LOCAL_DOMAIN_NAME
Definition: dhcp6.h:85
@ D6O_STATUS_CODE
Definition: dhcp6.h:33
@ D6O_ELAPSED_TIME
Definition: dhcp6.h:28
@ D6O_IAPREFIX
Definition: dhcp6.h:46
@ D6O_CAPWAP_AC_V6
Definition: dhcp6.h:72
@ DHO_NNTP_SERVER
Definition: dhcp4.h:140
@ DHO_NON_LOCAL_SOURCE_ROUTING
Definition: dhcp4.h:89
@ DHO_STREETTALK_SERVER
Definition: dhcp4.h:144
@ DHO_QUERY_START_TIME
Definition: dhcp4.h:209
@ DHO_IMPRESS_SERVERS
Definition: dhcp4.h:79
@ DHO_DHCP_MAX_MESSAGE_SIZE
Definition: dhcp4.h:126
@ DHO_DHCP_MESSAGE
Definition: dhcp4.h:125
@ DHO_DIRECTORY_AGENT
Definition: dhcp4.h:147
@ DHO_BOOT_SIZE
Definition: dhcp4.h:82
@ DHO_NETBIOS_NODE_TYPE
Definition: dhcp4.h:115
@ DHO_FONT_SERVERS
Definition: dhcp4.h:117
@ DHO_SUBNET_MASK
Definition: dhcp4.h:70
@ DHO_6RD
Definition: dhcp4.h:222
@ DHO_ROUTERS
Definition: dhcp4.h:72
@ DHO_NWIP_DOMAIN_NAME
Definition: dhcp4.h:131
@ DHO_NAME_SERVICE_SEARCH
Definition: dhcp4.h:182
@ DHO_LOG_SERVERS
Definition: dhcp4.h:76
@ DHO_DOMAIN_NAME
Definition: dhcp4.h:84
@ DHO_NETBIOS_SCOPE
Definition: dhcp4.h:116
@ DHO_TCODE
Definition: dhcp4.h:170
@ DHO_TFTP_SERVER_NAME
Definition: dhcp4.h:135
@ DHO_V4_PORTPARAMS
Definition: dhcp4.h:214
@ DHO_V4_SZTP_REDIRECT
Definition: dhcp4.h:200
@ DHO_DOMAIN_NAME_SERVERS
Definition: dhcp4.h:75
@ DHO_IP_FORWARDING
Definition: dhcp4.h:88
@ DHO_VENDOR_CLASS_IDENTIFIER
Definition: dhcp4.h:129
@ DHO_TRAILER_ENCAPSULATION
Definition: dhcp4.h:103
@ DHO_TIME_SERVERS
Definition: dhcp4.h:73
@ DHO_SERVICE_SCOPE
Definition: dhcp4.h:148
@ DHO_GEOCONF_CIVIC
Definition: dhcp4.h:168
@ DHO_NETINFO_ADDR
Definition: dhcp4.h:174
@ DHO_DHCP_REBINDING_TIME
Definition: dhcp4.h:128
@ DHO_DHCP_MESSAGE_TYPE
Definition: dhcp4.h:122
@ DHO_V6_ONLY_PREFERRED
Definition: dhcp4.h:172
@ DHO_INTERFACE_MTU
Definition: dhcp4.h:95
@ DHO_UUID_GUID
Definition: dhcp4.h:166
@ DHO_DHCP_SERVER_IDENTIFIER
Definition: dhcp4.h:123
@ DHO_SIP_UA_CONF_SERVICE_DOMAINS
Definition: dhcp4.h:198
@ DHO_HOST_NAME
Definition: dhcp4.h:81
@ DHO_DEFAULT_TCP_TTL
Definition: dhcp4.h:106
@ DHO_STATIC_ROUTES
Definition: dhcp4.h:102
@ DHO_DHCP_CLIENT_IDENTIFIER
Definition: dhcp4.h:130
@ DHO_COOKIE_SERVERS
Definition: dhcp4.h:77
@ DHO_ROOT_PATH
Definition: dhcp4.h:86
@ DHO_NTP_SERVERS
Definition: dhcp4.h:111
@ DHO_BOOT_FILE_NAME
Definition: dhcp4.h:136
@ DHO_VIVCO_SUBOPTIONS
Definition: dhcp4.h:189
@ DHO_AUTO_CONFIG
Definition: dhcp4.h:181
@ DHO_ROUTER_SOLICITATION_ADDRESS
Definition: dhcp4.h:101
@ DHO_V4_DNR
Definition: dhcp4.h:218
@ DHO_PATH_MTU_AGING_TIMEOUT
Definition: dhcp4.h:93
@ DHO_NDI
Definition: dhcp4.h:163
@ DHO_RDNSS_SELECT
Definition: dhcp4.h:203
@ DHO_BASE_TIME
Definition: dhcp4.h:207
@ DHO_DHCP_REQUESTED_ADDRESS
Definition: dhcp4.h:119
@ DHO_NISP_SERVER_ADDR
Definition: dhcp4.h:134
@ DHO_RESOURCE_LOCATION_SERVERS
Definition: dhcp4.h:80
@ DHO_NETINFO_TAG
Definition: dhcp4.h:175
@ DHO_NDS_TREE_NAME
Definition: dhcp4.h:155
@ DHO_QUERY_END_TIME
Definition: dhcp4.h:210
@ DHO_ALL_SUBNETS_LOCAL
Definition: dhcp4.h:96
@ DHO_TCP_KEEPALIVE_INTERVAL
Definition: dhcp4.h:107
@ DHO_DHCP_OPTION_OVERLOAD
Definition: dhcp4.h:121
@ DHO_SMTP_SERVER
Definition: dhcp4.h:138
@ DHO_POLICY_FILTER
Definition: dhcp4.h:90
@ DHO_DHCP_AGENT_OPTIONS
Definition: dhcp4.h:151
@ DHO_TIME_OFFSET
Definition: dhcp4.h:71
@ DHO_PATH_MTU_PLATEAU_TABLE
Definition: dhcp4.h:94
@ DHO_BCMCS_DOMAIN_NAME_LIST
Definition: dhcp4.h:157
@ DHO_PERFORM_MASK_DISCOVERY
Definition: dhcp4.h:98
@ DHO_WWW_SERVER
Definition: dhcp4.h:141
@ DHO_SYSTEM
Definition: dhcp4.h:162
@ DHO_ROUTER_DISCOVERY
Definition: dhcp4.h:100
@ DHO_NDS_SERVERS
Definition: dhcp4.h:154
@ DHO_ASSOCIATED_IP
Definition: dhcp4.h:161
@ DHO_VENDOR_ENCAPSULATED_OPTIONS
Definition: dhcp4.h:112
@ DHO_NDS_CONTEXT
Definition: dhcp4.h:156
@ DHO_NAME_SERVERS
Definition: dhcp4.h:74
@ DHO_CLIENT_LAST_TRANSACTION_TIME
Definition: dhcp4.h:160
@ DHO_SUBNET_SELECTION
Definition: dhcp4.h:183
@ DHO_DATA_SOURCE
Definition: dhcp4.h:212
@ DHO_DOMAIN_SEARCH
Definition: dhcp4.h:184
@ DHO_START_TIME_OF_STATE
Definition: dhcp4.h:208
@ DHO_IRC_SERVER
Definition: dhcp4.h:143
@ DHO_NIS_DOMAIN
Definition: dhcp4.h:109
@ DHO_DHCP_STATE
Definition: dhcp4.h:211
@ DHO_LPR_SERVERS
Definition: dhcp4.h:78
@ DHO_DEFAULT_IP_TTL
Definition: dhcp4.h:92
@ DHO_NETBIOS_DD_SERVER
Definition: dhcp4.h:114
@ DHO_HOME_AGENT_ADDRS
Definition: dhcp4.h:137
@ DHO_BCMCS_IPV4_ADDR
Definition: dhcp4.h:158
@ DHO_MERIT_DUMP
Definition: dhcp4.h:83
@ DHO_V4_LOST
Definition: dhcp4.h:194
@ DHO_V4_CAPTIVE_PORTAL
Definition: dhcp4.h:178
@ DHO_TCP_KEEPALIVE_GARBAGE
Definition: dhcp4.h:108
@ DHO_X_DISPLAY_MANAGER
Definition: dhcp4.h:118
@ DHO_IEEE802_3_ENCAPSULATION
Definition: dhcp4.h:105
@ DHO_USER_AUTH
Definition: dhcp4.h:167
@ DHO_STDASERVER
Definition: dhcp4.h:145
@ DHO_DHCP_PARAMETER_REQUEST_LIST
Definition: dhcp4.h:124
@ DHO_PCODE
Definition: dhcp4.h:169
@ DHO_USER_CLASS
Definition: dhcp4.h:146
@ DHO_ARP_CACHE_TIMEOUT
Definition: dhcp4.h:104
@ DHO_POP3_SERVER
Definition: dhcp4.h:139
@ DHO_NWIP_SUBOPTIONS
Definition: dhcp4.h:132
@ DHO_CAPWAP_AC_V4
Definition: dhcp4.h:195
@ DHO_MAX_DGRAM_REASSEMBLY
Definition: dhcp4.h:91
@ DHO_FQDN
Definition: dhcp4.h:150
@ DHO_EXTENSIONS_PATH
Definition: dhcp4.h:87
@ DHO_MASK_SUPPLIER
Definition: dhcp4.h:99
@ DHO_NIS_SERVERS
Definition: dhcp4.h:110
@ DHO_FINGER_SERVER
Definition: dhcp4.h:142
@ DHO_BROADCAST_ADDRESS
Definition: dhcp4.h:97
@ DHO_AUTHENTICATE
Definition: dhcp4.h:159
@ DHO_VIVSO_SUBOPTIONS
Definition: dhcp4.h:190
@ DHO_STATUS_CODE
Definition: dhcp4.h:206
@ DHO_NISP_DOMAIN_NAME
Definition: dhcp4.h:133
@ DHO_DHCP_RENEWAL_TIME
Definition: dhcp4.h:127
@ DHO_NETBIOS_NAME_SERVERS
Definition: dhcp4.h:113
@ DHO_SWAP_SERVER
Definition: dhcp4.h:85
@ DHO_PANA_AGENT
Definition: dhcp4.h:193
@ DHO_DHCP_LEASE_TIME
Definition: dhcp4.h:120
@ DHO_V4_ACCESS_DOMAIN
Definition: dhcp4.h:223
@ RAI_OPTION_OPERATOR_ID
Definition: dhcp4.h:282
@ RAI_OPTION_RADIUS
Definition: dhcp4.h:272
@ RAI_OPTION_SERVER_ID_OVERRIDE
Definition: dhcp4.h:276
@ RAI_OPTION_SUBSCRIBER_ID
Definition: dhcp4.h:271
@ RAI_OPTION_VSI
Definition: dhcp4.h:274
@ RAI_OPTION_RELAY_ID
Definition: dhcp4.h:277
@ RAI_OPTION_AGENT_CIRCUIT_ID
Definition: dhcp4.h:266
@ RAI_OPTION_OPERATOR_REALM
Definition: dhcp4.h:283
@ RAI_OPTION_ACCESS_NETWORK_NAME
Definition: dhcp4.h:279
@ RAI_OPTION_REMOTE_ID
Definition: dhcp4.h:267
@ RAI_OPTION_VIRTUAL_SUBNET_SELECT_CTRL
Definition: dhcp4.h:286
@ RAI_OPTION_LINK_SELECTION
Definition: dhcp4.h:270
@ RAI_OPTION_RELAY_PORT
Definition: dhcp4.h:284
@ RAI_OPTION_AUTH
Definition: dhcp4.h:273
@ RAI_OPTION_VIRTUAL_SUBNET_SELECT
Definition: dhcp4.h:285
@ RAI_OPTION_DOCSIS_DEVICE_CLASS
Definition: dhcp4.h:269
@ RAI_OPTION_ACCESS_POINT_BSSID
Definition: dhcp4.h:281
@ RAI_OPTION_RELAY_FLAGS
Definition: dhcp4.h:275
@ RAI_OPTION_ACCESS_TECHNO_TYPE
Definition: dhcp4.h:278
@ RAI_OPTION_ACCESS_POINT_NAME
Definition: dhcp4.h:280
Defines the logger used by the top-level component of kea-lfc.
#define V4V6_BIND_OPTION_SPACE
#define DHCP4_OPTION_SPACE
global std option spaces
#define RECORD_DECL(name,...)
Declare an array holding parameters used to create instance of a definition for option comprising a r...
#define ISC_V6_OPTION_SPACE
#define NO_RECORD_DEF
#define VENDOR_ENCAPSULATED_OPTION_SPACE
#define V4V6_RULE_OPTION_SPACE
#define MAPE_V6_OPTION_SPACE
#define DHCP_AGENT_OPTION_SPACE
encapsulated option spaces
#define RECORD_DEF(name)
A pair of values: one pointing to the array holding types of data fields belonging to the record,...
#define LW_V6_OPTION_SPACE
#define DHCP6_OPTION_SPACE
#define MAPT_V6_OPTION_SPACE