Kea  1.5.0
std_option_defs.h
Go to the documentation of this file.
1 // Copyright (C) 2012-2018 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 
15 // NOTE:
16 // When adding a new space, make sure you also update
17 // src/lib/yang/adaptor_option.cc
18 
19 namespace isc {
20 namespace dhcp {
21 
22 namespace {
23 
28 #ifndef RECORD_DECL
29 #define RECORD_DECL(name, ...) const OptionDataType name[] = { __VA_ARGS__ }
30 #endif
31 
36 #ifndef RECORD_DEF
37 #define RECORD_DEF(name) name, sizeof(name) / sizeof(name[0])
38 #endif
39 
40 #ifndef NO_RECORD_DEF
41 #define NO_RECORD_DEF 0, 0
42 #endif
43 
44 // SLP Directory Agent option.
45 RECORD_DECL(DIRECTORY_AGENT_RECORDS, OPT_BOOLEAN_TYPE, OPT_IPV4_ADDRESS_TYPE);
46 
47 // SLP Service Scope option.
48 //
49 // The scope list is optional.
50 RECORD_DECL(SERVICE_SCOPE_RECORDS, OPT_BOOLEAN_TYPE, OPT_STRING_TYPE);
51 
52 // fqdn option record fields.
53 //
54 // Note that the flags field indicates the type of domain
55 // name encoding. There is a choice between deprecated
56 // ASCII encoding and compressed encoding described in
57 // RFC 1035, section 3.1. The latter could be handled
58 // by OPT_FQDN_TYPE but we can't use it here because
59 // clients may request ASCII encoding.
62 
63 // V-I Vendor Class record fields.
64 //
65 // Opaque data is represented here by the binary data field.
67 
68 // RFC4578 (PXE) record fields
69 //
70 // Three 1 byte fields to describe a network interface: type, major and minor
72 // A client identifier: a 1 byte type field followed by opaque data depending on the type
73 RECORD_DECL(UUID_GUID_RECORDS, OPT_UINT8_TYPE, OPT_BINARY_TYPE);
74 
75 // RFC6731 DHCPv4 Recursive DNS Server Selection option.
76 //
77 // Flag, two addresses and domain list
78 RECORD_DECL(V4_RDNSS_SELECT_RECORDS, OPT_UINT8_TYPE, OPT_IPV4_ADDRESS_TYPE,
80 
81 // RFC7618 DHCPv4 Port Parameter option.
82 //
83 // PSID offset, PSID-len and PSID
84 RECORD_DECL(V4_PORTPARAMS_RECORDS, OPT_UINT8_TYPE, OPT_PSID_TYPE);
85 
86 // RFC5969 DHCPv6 6RD option.
87 //
88 // two 8 bit lengthes, an IPv6 address and one or more IPv4 addresses
89 RECORD_DECL(OPT_6RD_RECORDS, OPT_UINT8_TYPE, OPT_UINT8_TYPE,
91 
93 const OptionDefParams STANDARD_V4_OPTION_DEFINITIONS[] = {
94  { "subnet-mask", DHO_SUBNET_MASK, OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
95  { "time-offset", DHO_TIME_OFFSET, OPT_INT32_TYPE, false, NO_RECORD_DEF, "" },
96  { "routers", DHO_ROUTERS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
97  { "time-servers", DHO_TIME_SERVERS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
98  { "name-servers", DHO_NAME_SERVERS, OPT_IPV4_ADDRESS_TYPE,
99  true, NO_RECORD_DEF, "" },
100  { "domain-name-servers", DHO_DOMAIN_NAME_SERVERS,
102  { "log-servers", DHO_LOG_SERVERS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
103  { "cookie-servers", DHO_COOKIE_SERVERS, OPT_IPV4_ADDRESS_TYPE,
104  true, NO_RECORD_DEF, "" },
105  { "lpr-servers", DHO_LPR_SERVERS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
106  { "impress-servers", DHO_IMPRESS_SERVERS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
107  { "resource-location-servers", DHO_RESOURCE_LOCATION_SERVERS,
109  { "host-name", DHO_HOST_NAME, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
110  { "boot-size", DHO_BOOT_SIZE, OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" },
111  { "merit-dump", DHO_MERIT_DUMP, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
112  { "domain-name", DHO_DOMAIN_NAME, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
113  { "swap-server", DHO_SWAP_SERVER, OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
114  { "root-path", DHO_ROOT_PATH, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
115  { "extensions-path", DHO_EXTENSIONS_PATH, OPT_STRING_TYPE,
116  false, NO_RECORD_DEF, "" },
117  { "ip-forwarding", DHO_IP_FORWARDING, OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
118  { "non-local-source-routing", DHO_NON_LOCAL_SOURCE_ROUTING,
119  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
120  { "policy-filter", DHO_POLICY_FILTER, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
121  { "max-dgram-reassembly", DHO_MAX_DGRAM_REASSEMBLY,
122  OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" },
123  { "default-ip-ttl", DHO_DEFAULT_IP_TTL, OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
124  { "path-mtu-aging-timeout", DHO_PATH_MTU_AGING_TIMEOUT,
125  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
126  { "path-mtu-plateau-table", DHO_PATH_MTU_PLATEAU_TABLE,
127  OPT_UINT16_TYPE, true, NO_RECORD_DEF, "" },
128  { "interface-mtu", DHO_INTERFACE_MTU, OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" },
129  { "all-subnets-local", DHO_ALL_SUBNETS_LOCAL,
130  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
131  { "broadcast-address", DHO_BROADCAST_ADDRESS,
132  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
133  { "perform-mask-discovery", DHO_PERFORM_MASK_DISCOVERY,
134  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
135  { "mask-supplier", DHO_MASK_SUPPLIER, OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
136  { "router-discovery", DHO_ROUTER_DISCOVERY,
137  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
138  { "router-solicitation-address", DHO_ROUTER_SOLICITATION_ADDRESS,
139  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
140  { "static-routes", DHO_STATIC_ROUTES,
142  { "trailer-encapsulation", DHO_TRAILER_ENCAPSULATION,
143  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
144  { "arp-cache-timeout", DHO_ARP_CACHE_TIMEOUT,
145  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
146  { "ieee802-3-encapsulation", DHO_IEEE802_3_ENCAPSULATION,
147  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
148  { "default-tcp-ttl", DHO_DEFAULT_TCP_TTL, OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
149  { "tcp-keepalive-interval", DHO_TCP_KEEPALIVE_INTERVAL,
150  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
151  { "tcp-keepalive-garbage", DHO_TCP_KEEPALIVE_GARBAGE,
152  OPT_BOOLEAN_TYPE, false, NO_RECORD_DEF, "" },
153  { "nis-domain", DHO_NIS_DOMAIN, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
154  { "nis-servers", DHO_NIS_SERVERS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
155  { "ntp-servers", DHO_NTP_SERVERS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
157  { "netbios-name-servers", DHO_NETBIOS_NAME_SERVERS,
159  { "netbios-dd-server", DHO_NETBIOS_DD_SERVER,
161  { "netbios-node-type", DHO_NETBIOS_NODE_TYPE,
162  OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
163  { "netbios-scope", DHO_NETBIOS_SCOPE, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
164  { "font-servers", DHO_FONT_SERVERS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
165  { "x-display-manager", DHO_X_DISPLAY_MANAGER,
167  { "dhcp-requested-address", DHO_DHCP_REQUESTED_ADDRESS,
168  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
169  { "dhcp-lease-time", DHO_DHCP_LEASE_TIME, OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
170  { "dhcp-option-overload", DHO_DHCP_OPTION_OVERLOAD,
171  OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
172  { "dhcp-message-type", DHO_DHCP_MESSAGE_TYPE, OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
173  { "dhcp-server-identifier", DHO_DHCP_SERVER_IDENTIFIER,
174  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
175  { "dhcp-parameter-request-list", DHO_DHCP_PARAMETER_REQUEST_LIST,
176  OPT_UINT8_TYPE, true, NO_RECORD_DEF, "" },
177  { "dhcp-message", DHO_DHCP_MESSAGE, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
178  { "dhcp-max-message-size", DHO_DHCP_MAX_MESSAGE_SIZE,
179  OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" },
180  { "dhcp-renewal-time", DHO_DHCP_RENEWAL_TIME, OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
181  { "dhcp-rebinding-time", DHO_DHCP_REBINDING_TIME,
182  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
183  { "vendor-class-identifier", DHO_VENDOR_CLASS_IDENTIFIER,
184  OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
185  { "dhcp-client-identifier", DHO_DHCP_CLIENT_IDENTIFIER,
186  OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
187  { "nwip-domain-name", DHO_NWIP_DOMAIN_NAME, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
188  { "nwip-suboptions", DHO_NWIP_SUBOPTIONS, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
189  { "nisplus-domain-name", DHO_NISP_DOMAIN_NAME, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
190  { "nisplus-servers", DHO_NISP_SERVER_ADDR, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
191  { "tftp-server-name", DHO_TFTP_SERVER_NAME, OPT_STRING_TYPE, false,
192  NO_RECORD_DEF, "" },
193  { "boot-file-name", DHO_BOOT_FILE_NAME, OPT_STRING_TYPE, false,
194  NO_RECORD_DEF, "" },
195  { "mobile-ip-home-agent", DHO_HOME_AGENT_ADDRS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
196  { "smtp-server", DHO_SMTP_SERVER, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
197  { "pop-server", DHO_POP3_SERVER, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
198  { "nntp-server", DHO_NNTP_SERVER, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
199  { "www-server", DHO_WWW_SERVER, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
200  { "finger-server", DHO_FINGER_SERVER, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
201  { "irc-server", DHO_IRC_SERVER, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
202  { "streettalk-server", DHO_STREETTALK_SERVER, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
203  { "streettalk-directory-assistance-server", DHO_STDASERVER, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
204  { "user-class", DHO_USER_CLASS, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
205  { "slp-directory-agent", DHO_DIRECTORY_AGENT, OPT_RECORD_TYPE, true,
206  RECORD_DEF(DIRECTORY_AGENT_RECORDS), "" },
207  { "slp-service-scope", DHO_SERVICE_SCOPE, OPT_RECORD_TYPE, false,
208  RECORD_DEF(SERVICE_SCOPE_RECORDS), "" },
209  { "fqdn", DHO_FQDN, OPT_RECORD_TYPE, false, RECORD_DEF(FQDN_RECORDS), "" },
210  { "dhcp-agent-options", DHO_DHCP_AGENT_OPTIONS,
211  OPT_EMPTY_TYPE, false, NO_RECORD_DEF, "dhcp-agent-options-space" },
212  { "nds-servers", DHO_NDS_SERVERS, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
213  { "nds-tree-name", DHO_NDS_TREE_NAME, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
214  { "nds-context", DHO_NDS_CONTEXT, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
215  { "bcms-controller-names", DHO_BCMCS_DOMAIN_NAME_LIST, OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
216  { "bcms-controller-address", DHO_BCMCS_IPV4_ADDR, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
217  // Unfortunatelly the AUTHENTICATE option contains a 64-bit
218  // data field called 'replay-detection' that can't be added
219  // as a record field to a custom option. Also, there is no
220  // dedicated option class to handle it so we simply return
221  // binary option type for now.
222  // @todo implement a class to handle AUTH option.
223  { "authenticate", DHO_AUTHENTICATE, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
224  { "client-last-transaction-time", DHO_CLIENT_LAST_TRANSACTION_TIME,
225  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
226  { "associated-ip", DHO_ASSOCIATED_IP, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
227  { "client-system", DHO_SYSTEM, OPT_UINT16_TYPE, true, NO_RECORD_DEF, "" },
228  { "client-ndi", DHO_NDI, OPT_RECORD_TYPE, false, RECORD_DEF(CLIENT_NDI_RECORDS), "" },
229  { "uuid-guid", DHO_UUID_GUID, OPT_RECORD_TYPE, false, RECORD_DEF(UUID_GUID_RECORDS), "" },
230  { "uap-servers", DHO_USER_AUTH, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
231  { "geoconf-civic", DHO_GEOCONF_CIVIC, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
232  { "pcode", DHO_PCODE, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
233  { "tcode", DHO_TCODE, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
234  { "netinfo-server-address", DHO_NETINFO_ADDR, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
235  { "netinfo-server-tag", DHO_NETINFO_TAG, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
236  { "default-url", DHO_URL, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
237  { "auto-config", DHO_AUTO_CONFIG, OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
238  { "name-service-search", DHO_NAME_SERVICE_SEARCH, OPT_UINT16_TYPE, true, NO_RECORD_DEF, "" },
239  { "subnet-selection", DHO_SUBNET_SELECTION,
240  OPT_IPV4_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
241  { "domain-search", DHO_DOMAIN_SEARCH, OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
242  { "vivco-suboptions", DHO_VIVCO_SUBOPTIONS, OPT_RECORD_TYPE,
243  false, RECORD_DEF(VIVCO_RECORDS), "" },
244  // Vendor-Identifying Vendor Specific Information option payload begins with a
245  // 32-bit log enterprise number, followed by a tuple of data-len/option-data.
246  // The format defined here includes 32-bit field holding enterprise number.
247  // This allows for specifying option-data information where the enterprise-id
248  // is represented by a uint32_t value. Previously we represented this option
249  // as a binary, but that would imply that enterprise number would have to be
250  // represented in binary format in the server configuration. That would be
251  // inconvenient and non-intuitive.
256  { "vivso-suboptions", DHO_VIVSO_SUBOPTIONS, OPT_UINT32_TYPE,
257  false, NO_RECORD_DEF, "" },
258  { "pana-agent", DHO_PANA_AGENT, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
259  { "v4-lost", DHO_V4_LOST, OPT_FQDN_TYPE, false, NO_RECORD_DEF, "" },
260  { "capwap-ac-v4", DHO_CAPWAP_AC_V4, OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
261  { "sip-ua-cs-domains", DHO_SIP_UA_CONF_SERVICE_DOMAINS, OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
262  { "rdnss-selection", DHO_RDNSS_SELECT, OPT_RECORD_TYPE, true,
263  RECORD_DEF(V4_RDNSS_SELECT_RECORDS), "" },
264  { "v4-portparams", DHO_V4_PORTPARAMS, OPT_RECORD_TYPE, false,
265  RECORD_DEF(V4_PORTPARAMS_RECORDS), "" },
266  { "v4-captive-portal", DHO_V4_CAPTIVE_PORTAL, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
267  { "option-6rd", DHO_6RD, OPT_RECORD_TYPE, true, RECORD_DEF(OPT_6RD_RECORDS), "" },
268  { "v4-access-domain", DHO_V4_ACCESS_DOMAIN, OPT_FQDN_TYPE, false, NO_RECORD_DEF, "" }
269 
270  // @todo add definitions for all remaining options.
271 };
272 
274 const int STANDARD_V4_OPTION_DEFINITIONS_SIZE =
275  sizeof(STANDARD_V4_OPTION_DEFINITIONS) / sizeof(STANDARD_V4_OPTION_DEFINITIONS[0]);
276 
279 const OptionDefParams LAST_RESORT_V4_OPTION_DEFINITIONS[] = {
280  { "vendor-encapsulated-options", DHO_VENDOR_ENCAPSULATED_OPTIONS,
281  OPT_EMPTY_TYPE, false, NO_RECORD_DEF, "vendor-encapsulated-options-space" }
282 };
283 
284 const int LAST_RESORT_V4_OPTION_DEFINITIONS_SIZE = 1;
285 
287 
288 // client-fqdn
289 RECORD_DECL(CLIENT_FQDN_RECORDS, OPT_UINT8_TYPE, OPT_FQDN_TYPE);
290 // geoconf-civic
291 RECORD_DECL(GEOCONF_CIVIC_RECORDS, OPT_UINT8_TYPE, OPT_UINT16_TYPE,
293 // iaddr
296 // ia-na
298 // ia-pd
300 // ia-prefix
301 RECORD_DECL(IA_PREFIX_RECORDS, OPT_UINT32_TYPE, OPT_UINT32_TYPE,
303 // lq-query
305 // lq-relay-data
306 RECORD_DECL(LQ_RELAY_DATA_RECORDS, OPT_IPV6_ADDRESS_TYPE, OPT_BINARY_TYPE);
307 // remote-id
308 RECORD_DECL(REMOTE_ID_RECORDS, OPT_UINT32_TYPE, OPT_BINARY_TYPE);
309 // s46-rule
312 // s46-v4v6bind
314 // s46-portparams
315 RECORD_DECL(S46_PORTPARAMS, OPT_UINT8_TYPE, OPT_PSID_TYPE);
316 // status-code
317 RECORD_DECL(STATUS_CODE_RECORDS, OPT_UINT16_TYPE, OPT_STRING_TYPE);
318 // vendor-class
319 RECORD_DECL(VENDOR_CLASS_RECORDS, OPT_UINT32_TYPE, OPT_BINARY_TYPE);
320 // rdnss-selection
321 RECORD_DECL(V6_RDNSS_SELECT_RECORDS, OPT_IPV6_ADDRESS_TYPE, OPT_UINT8_TYPE,
322  OPT_FQDN_TYPE);
323 // sedhcpv6 signature
324 RECORD_DECL(SIGNATURE_RECORDS, OPT_UINT8_TYPE, OPT_UINT8_TYPE,
326 
327 // RFC5970 (PXE) Class record fields
328 //
329 // Three 1 byte fileds to describe a network interface: type, major and minor
331 
342 const OptionDefParams STANDARD_V6_OPTION_DEFINITIONS[] = {
343  { "clientid", D6O_CLIENTID, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
344  { "serverid", D6O_SERVERID, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
345  { "ia-na", D6O_IA_NA, OPT_RECORD_TYPE, false, RECORD_DEF(IA_NA_RECORDS), "" },
346  { "ia-ta", D6O_IA_TA, OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
347  { "iaaddr", D6O_IAADDR, OPT_RECORD_TYPE, false, RECORD_DEF(IAADDR_RECORDS), "" },
348  { "oro", D6O_ORO, OPT_UINT16_TYPE, true, NO_RECORD_DEF, "" },
349  { "preference", D6O_PREFERENCE, OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
350  { "elapsed-time", D6O_ELAPSED_TIME, OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" },
351  { "relay-msg", D6O_RELAY_MSG, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
352  // Unfortunately the AUTH option contains a 64-bit data field
353  // called 'replay-detection' that can't be added as a record
354  // field to a custom option. Also, there is no dedicated
355  // option class to handle it so we simply return binary
356  // option type for now.
357  // @todo implement a class to handle AUTH option.
358  { "auth", D6O_AUTH, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
359  { "unicast", D6O_UNICAST, OPT_IPV6_ADDRESS_TYPE, false, NO_RECORD_DEF, "" },
360  { "status-code", D6O_STATUS_CODE, OPT_RECORD_TYPE, false,
361  RECORD_DEF(STATUS_CODE_RECORDS), "" },
362  { "rapid-commit", D6O_RAPID_COMMIT, OPT_EMPTY_TYPE, false, NO_RECORD_DEF, "" },
363  { "user-class", D6O_USER_CLASS, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
364  { "vendor-class", D6O_VENDOR_CLASS, OPT_RECORD_TYPE, false,
365  RECORD_DEF(VENDOR_CLASS_RECORDS), "" },
366  { "vendor-opts", D6O_VENDOR_OPTS, OPT_UINT32_TYPE, false,
367  NO_RECORD_DEF, "vendor-opts-space" },
368  { "interface-id", D6O_INTERFACE_ID, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
369  { "reconf-msg", D6O_RECONF_MSG, OPT_UINT8_TYPE, false, NO_RECORD_DEF, "" },
370  { "reconf-accept", D6O_RECONF_ACCEPT, OPT_EMPTY_TYPE, false,
371  NO_RECORD_DEF, "" },
372  { "sip-server-dns", D6O_SIP_SERVERS_DNS, OPT_FQDN_TYPE, true,
373  NO_RECORD_DEF, "" },
374  { "sip-server-addr", D6O_SIP_SERVERS_ADDR, OPT_IPV6_ADDRESS_TYPE, true,
375  NO_RECORD_DEF, "" },
376  { "dns-servers", D6O_NAME_SERVERS, OPT_IPV6_ADDRESS_TYPE, true,
377  NO_RECORD_DEF, "" },
378  { "domain-search", D6O_DOMAIN_SEARCH, OPT_FQDN_TYPE, true, NO_RECORD_DEF, "" },
379  { "ia-pd", D6O_IA_PD, OPT_RECORD_TYPE, false, RECORD_DEF(IA_PD_RECORDS), "" },
380  { "iaprefix", D6O_IAPREFIX, OPT_RECORD_TYPE, false,
381  RECORD_DEF(IA_PREFIX_RECORDS), "" },
382  { "nis-servers", D6O_NIS_SERVERS, OPT_IPV6_ADDRESS_TYPE, true,
383  NO_RECORD_DEF, "" },
384  { "nisp-servers", D6O_NISP_SERVERS, OPT_IPV6_ADDRESS_TYPE, true,
385  NO_RECORD_DEF, "" },
386  { "nis-domain-name", D6O_NIS_DOMAIN_NAME, OPT_FQDN_TYPE, true,
387  NO_RECORD_DEF, "" },
388  { "nisp-domain-name", D6O_NISP_DOMAIN_NAME, OPT_FQDN_TYPE, true,
389  NO_RECORD_DEF, "" },
390  { "sntp-servers", D6O_SNTP_SERVERS, OPT_IPV6_ADDRESS_TYPE, true,
391  NO_RECORD_DEF, "" },
392  { "information-refresh-time", D6O_INFORMATION_REFRESH_TIME,
393  OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
394  { "bcmcs-server-dns", D6O_BCMCS_SERVER_D, OPT_FQDN_TYPE, true,
395  NO_RECORD_DEF, "" },
396  { "bcmcs-server-addr", D6O_BCMCS_SERVER_A, OPT_IPV6_ADDRESS_TYPE, true,
397  NO_RECORD_DEF, "" },
398  { "geoconf-civic", D6O_GEOCONF_CIVIC, OPT_RECORD_TYPE, false,
399  RECORD_DEF(GEOCONF_CIVIC_RECORDS), "" },
400  { "remote-id", D6O_REMOTE_ID, OPT_RECORD_TYPE, false,
401  RECORD_DEF(REMOTE_ID_RECORDS), "" },
402  { "subscriber-id", D6O_SUBSCRIBER_ID, OPT_BINARY_TYPE, false,
403  NO_RECORD_DEF, "" },
404  { "client-fqdn", D6O_CLIENT_FQDN, OPT_RECORD_TYPE, false,
405  RECORD_DEF(CLIENT_FQDN_RECORDS), "" },
406  { "pana-agent", D6O_PANA_AGENT, OPT_IPV6_ADDRESS_TYPE, true,
407  NO_RECORD_DEF, "" },
408  { "new-posix-timezone", D6O_NEW_POSIX_TIMEZONE, OPT_STRING_TYPE, false,
409  NO_RECORD_DEF, "" },
410  { "new-tzdb-timezone", D6O_NEW_TZDB_TIMEZONE, OPT_STRING_TYPE, false,
411  NO_RECORD_DEF, "" },
412  { "ero", D6O_ERO, OPT_UINT16_TYPE, true, NO_RECORD_DEF, "" },
413  { "lq-query", D6O_LQ_QUERY, OPT_RECORD_TYPE, false,
414  RECORD_DEF(LQ_QUERY_RECORDS), "" },
415  { "client-data", D6O_CLIENT_DATA, OPT_EMPTY_TYPE, false, NO_RECORD_DEF, "" },
416  { "clt-time", D6O_CLT_TIME, OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
417  { "lq-relay-data", D6O_LQ_RELAY_DATA, OPT_RECORD_TYPE, false,
418  RECORD_DEF(LQ_RELAY_DATA_RECORDS), "" },
419  { "lq-client-link", D6O_LQ_CLIENT_LINK, OPT_IPV6_ADDRESS_TYPE, true,
420  NO_RECORD_DEF, "" },
421  { "v6-lost", D6O_V6_LOST, OPT_FQDN_TYPE, false, NO_RECORD_DEF, "" },
422  { "capwap-ac-v6", D6O_CAPWAP_AC_V6, OPT_IPV6_ADDRESS_TYPE, true,
423  NO_RECORD_DEF, "" },
424  { "relay-id", D6O_RELAY_ID, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
425  { "v6-access-domain", D6O_V6_ACCESS_DOMAIN, OPT_FQDN_TYPE, false,
426  NO_RECORD_DEF, "" },
427  { "sip-ua-cs-list", D6O_SIP_UA_CS_LIST, OPT_FQDN_TYPE, true,
428  NO_RECORD_DEF, "" },
429  { "bootfile-url", D6O_BOOTFILE_URL, OPT_STRING_TYPE, false, NO_RECORD_DEF, "" },
430  { "bootfile-param", D6O_BOOTFILE_PARAM, OPT_TUPLE_TYPE, true, NO_RECORD_DEF, "" },
431  { "client-arch-type", D6O_CLIENT_ARCH_TYPE, OPT_UINT16_TYPE, true, NO_RECORD_DEF, "" },
432  { "nii", D6O_NII, OPT_RECORD_TYPE, false, RECORD_DEF(CLIENT_NII_RECORDS), "" },
433  { "aftr-name", D6O_AFTR_NAME, OPT_FQDN_TYPE, false, NO_RECORD_DEF, "" },
434  { "erp-local-domain-name", D6O_ERP_LOCAL_DOMAIN_NAME, OPT_FQDN_TYPE, false,
435  NO_RECORD_DEF, "" },
436  { "rsoo", D6O_RSOO, OPT_EMPTY_TYPE, false, NO_RECORD_DEF, "rsoo-opts" },
437  { "pd-exclude", D6O_PD_EXCLUDE, OPT_IPV6_PREFIX_TYPE, false, NO_RECORD_DEF, "" },
438  { "rdnss-selection", D6O_RDNSS_SELECTION, OPT_RECORD_TYPE, true,
439  RECORD_DEF(V6_RDNSS_SELECT_RECORDS), "" },
440  { "client-linklayer-addr", D6O_CLIENT_LINKLAYER_ADDR, OPT_BINARY_TYPE, false,
441  NO_RECORD_DEF, "" },
442  { "link-address", D6O_LINK_ADDRESS, OPT_IPV6_ADDRESS_TYPE, false,
443  NO_RECORD_DEF, "" },
444  { "solmax-rt", D6O_SOL_MAX_RT, OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
445  { "inf-max-rt", D6O_INF_MAX_RT, OPT_UINT32_TYPE, false, NO_RECORD_DEF, "" },
446  { "dhcpv4-message", D6O_DHCPV4_MSG, OPT_BINARY_TYPE, false, NO_RECORD_DEF, "" },
447  { "dhcp4o6-server-addr", D6O_DHCPV4_O_DHCPV6_SERVER, OPT_IPV6_ADDRESS_TYPE, true,
448  NO_RECORD_DEF, "" },
449  { "v6-captive-portal", D6O_V6_CAPTIVE_PORTAL, OPT_STRING_TYPE, false,
450  NO_RECORD_DEF, "" },
451  { "relay-source-port", D6O_RELAY_SOURCE_PORT, OPT_UINT16_TYPE, false, NO_RECORD_DEF, "" },
452  { "ipv6-address-andsf", D6O_IPV6_ADDRESS_ANDSF, OPT_IPV6_ADDRESS_TYPE, true,
453  NO_RECORD_DEF, "" },
454  { "public-key", D6O_PUBLIC_KEY, OPT_BINARY_TYPE, false,
455  NO_RECORD_DEF, "" },
456  { "certificate", D6O_CERTIFICATE, OPT_BINARY_TYPE, false,
457  NO_RECORD_DEF, "" },
458  { "signature", D6O_SIGNATURE, OPT_RECORD_TYPE, false,
459  RECORD_DEF(SIGNATURE_RECORDS), "" },
460  { "timestamp", D6O_TIMESTAMP, OPT_BINARY_TYPE, false,
461  NO_RECORD_DEF, "" },
462  { "s46-cont-mape", D6O_S46_CONT_MAPE, OPT_EMPTY_TYPE, false, NO_RECORD_DEF,
464  { "s46-cont-mapt", D6O_S46_CONT_MAPT, OPT_EMPTY_TYPE, false, NO_RECORD_DEF,
466  { "s46-cont-lw", D6O_S46_CONT_LW, OPT_EMPTY_TYPE, false, NO_RECORD_DEF,
468 
469  // @todo There is still a bunch of options for which we have to provide
470  // definitions but we don't do it because they are not really
471  // critical right now.
472 };
473 
475 const int STANDARD_V6_OPTION_DEFINITIONS_SIZE =
476  sizeof(STANDARD_V6_OPTION_DEFINITIONS) /
477  sizeof(STANDARD_V6_OPTION_DEFINITIONS[0]);
478 
479 // Option definitions that belong to two or more option spaces are defined here.
480 const OptionDefParams OPTION_DEF_PARAMS_S46_BR = { "s46-br", D6O_S46_BR,
481  OPT_IPV6_ADDRESS_TYPE, false, NO_RECORD_DEF, "" };
482 const OptionDefParams OPTION_DEF_PARAMS_S46_RULE = { "s46-rule", D6O_S46_RULE,
484 const OptionDefParams OPTION_DEF_PARAMS_S46_PORTPARAMS = { "s46-portparams",
485  D6O_S46_PORTPARAMS, OPT_RECORD_TYPE, false, RECORD_DEF(S46_PORTPARAMS), "" };
486 
493 const OptionDefParams ISC_V6_OPTION_DEFINITIONS[] = {
494  { "4o6-interface", ISC_V6_4O6_INTERFACE, OPT_STRING_TYPE, false,
495  NO_RECORD_DEF, "" },
496  { "4o6-source-address", ISC_V6_4O6_SRC_ADDRESS, OPT_IPV6_ADDRESS_TYPE,
497  false, NO_RECORD_DEF, "" },
498  { "4o6-source-port", ISC_V6_4O6_SRC_PORT, OPT_UINT16_TYPE, false,
499  NO_RECORD_DEF, "" }
500 };
501 
502 const int ISC_V6_OPTION_DEFINITIONS_SIZE =
503  sizeof(ISC_V6_OPTION_DEFINITIONS) /
504  sizeof(ISC_V6_OPTION_DEFINITIONS[0]);
505 
507 const OptionDefParams MAPE_V6_OPTION_DEFINITIONS[] = {
508  OPTION_DEF_PARAMS_S46_BR,
509  OPTION_DEF_PARAMS_S46_RULE
510 };
511 
512 const int MAPE_V6_OPTION_DEFINITIONS_SIZE =
513  sizeof(MAPE_V6_OPTION_DEFINITIONS) /
514  sizeof(MAPE_V6_OPTION_DEFINITIONS[0]);
515 
517 const OptionDefParams MAPT_V6_OPTION_DEFINITIONS[] = {
518  OPTION_DEF_PARAMS_S46_RULE,
519  { "s46-dmr", D6O_S46_DMR, OPT_IPV6_PREFIX_TYPE, false, NO_RECORD_DEF, "" }
520 };
521 
522 const int MAPT_V6_OPTION_DEFINITIONS_SIZE =
523  sizeof(MAPT_V6_OPTION_DEFINITIONS) /
524  sizeof(MAPT_V6_OPTION_DEFINITIONS[0]);
525 
527 const OptionDefParams LW_V6_OPTION_DEFINITIONS[] = {
528  OPTION_DEF_PARAMS_S46_BR,
529  { "s46-v4v6bind", D6O_S46_V4V6BIND, OPT_RECORD_TYPE, false,
530  RECORD_DEF(S46_V4V6BIND), V4V6_BIND_OPTION_SPACE }
531 };
532 
533 const int LW_V6_OPTION_DEFINITIONS_SIZE =
534  sizeof(LW_V6_OPTION_DEFINITIONS) /
535  sizeof(LW_V6_OPTION_DEFINITIONS[0]);
536 
538 const OptionDefParams V4V6_RULE_OPTION_DEFINITIONS[] = {
539  OPTION_DEF_PARAMS_S46_PORTPARAMS
540 };
541 
542 const int V4V6_RULE_OPTION_DEFINITIONS_SIZE =
543  sizeof(V4V6_RULE_OPTION_DEFINITIONS) /
544  sizeof(V4V6_RULE_OPTION_DEFINITIONS[0]);
545 
547 const OptionDefParams V4V6_BIND_OPTION_DEFINITIONS[] = {
548  OPTION_DEF_PARAMS_S46_PORTPARAMS
549 };
550 
551 const int V4V6_BIND_OPTION_DEFINITIONS_SIZE =
552  sizeof(V4V6_BIND_OPTION_DEFINITIONS) /
553  sizeof(V4V6_BIND_OPTION_DEFINITIONS[0]);
554 
555 } // unnamed namespace
556 
557 } // namespace dhcp
558 } // namespace isc
559 
560 #endif // STD_OPTION_DEFS_H
isc::dhcp::DHO_FINGER_SERVER
@ DHO_FINGER_SERVER
Definition: dhcp4.h:142
isc::dhcp::DHO_IP_FORWARDING
@ DHO_IP_FORWARDING
Definition: dhcp4.h:88
RECORD_DEF
#define RECORD_DEF(name)
A pair of values: one pointing to the array holding types of data fields belonging to the record,...
Definition: std_option_defs.h:37
D6O_V6_LOST
@ D6O_V6_LOST
Definition: dhcp6.h:71
isc::dhcp::DHO_ROOT_PATH
@ DHO_ROOT_PATH
Definition: dhcp4.h:86
D6O_SNTP_SERVERS
@ D6O_SNTP_SERVERS
Definition: dhcp6.h:51
isc::dhcp::DHO_STREETTALK_SERVER
@ DHO_STREETTALK_SERVER
Definition: dhcp4.h:144
D6O_S46_CONT_MAPT
@ D6O_S46_CONT_MAPT
Definition: dhcp6.h:115
D6O_RDNSS_SELECTION
@ D6O_RDNSS_SELECTION
Definition: dhcp6.h:94
isc::dhcp::OPT_UINT32_TYPE
@ OPT_UINT32_TYPE
Definition: option_data_types.h:54
isc::dhcp::DHO_IEEE802_3_ENCAPSULATION
@ DHO_IEEE802_3_ENCAPSULATION
Definition: dhcp4.h:105
D6O_LINK_ADDRESS
@ D6O_LINK_ADDRESS
Definition: dhcp6.h:100
option_space.h
isc::dhcp::DHO_SIP_UA_CONF_SERVICE_DOMAINS
@ DHO_SIP_UA_CONF_SERVICE_DOMAINS
Definition: dhcp4.h:193
RECORD_DECL
#define RECORD_DECL(name,...)
Declare an array holding parameters used to create instance of a definition for option comprising a r...
Definition: std_option_defs.h:29
D6O_CLIENT_ARCH_TYPE
@ D6O_CLIENT_ARCH_TYPE
Definition: dhcp6.h:81
isc::dhcp::DHO_POLICY_FILTER
@ DHO_POLICY_FILTER
Definition: dhcp4.h:90
isc::dhcp::DHO_MASK_SUPPLIER
@ DHO_MASK_SUPPLIER
Definition: dhcp4.h:99
D6O_TIMESTAMP
@ D6O_TIMESTAMP
Definition: dhcp6.h:166
isc::dhcp::DHO_SWAP_SERVER
@ DHO_SWAP_SERVER
Definition: dhcp4.h:85
D6O_CLIENT_LINKLAYER_ADDR
@ D6O_CLIENT_LINKLAYER_ADDR
Definition: dhcp6.h:99
isc::dhcp::DHO_ALL_SUBNETS_LOCAL
@ DHO_ALL_SUBNETS_LOCAL
Definition: dhcp4.h:96
isc::dhcp::DHO_TIME_SERVERS
@ DHO_TIME_SERVERS
Definition: dhcp4.h:73
isc::dhcp::DHO_6RD
@ DHO_6RD
Definition: dhcp4.h:214
D6O_PUBLIC_KEY
@ D6O_PUBLIC_KEY
Definition: dhcp6.h:163
isc::dhcp::DHO_WWW_SERVER
@ DHO_WWW_SERVER
Definition: dhcp4.h:141
isc::dhcp::DHO_FQDN
@ DHO_FQDN
Definition: dhcp4.h:150
D6O_BOOTFILE_URL
@ D6O_BOOTFILE_URL
Definition: dhcp6.h:79
D6O_NEW_POSIX_TIMEZONE
@ D6O_NEW_POSIX_TIMEZONE
Definition: dhcp6.h:61
D6O_RECONF_ACCEPT
@ D6O_RECONF_ACCEPT
Definition: dhcp6.h:40
isc::dhcp::DHO_UUID_GUID
@ DHO_UUID_GUID
Definition: dhcp4.h:166
D6O_S46_PORTPARAMS
@ D6O_S46_PORTPARAMS
Definition: dhcp6.h:113
isc::dhcp::DHO_SERVICE_SCOPE
@ DHO_SERVICE_SCOPE
Definition: dhcp4.h:148
D6O_UNICAST
@ D6O_UNICAST
Definition: dhcp6.h:32
isc::dhcp::DHO_AUTHENTICATE
@ DHO_AUTHENTICATE
Definition: dhcp4.h:159
D6O_S46_RULE
@ D6O_S46_RULE
Definition: dhcp6.h:109
D6O_RECONF_MSG
@ D6O_RECONF_MSG
Definition: dhcp6.h:39
isc::dhcp::DHO_NWIP_SUBOPTIONS
@ DHO_NWIP_SUBOPTIONS
Definition: dhcp4.h:132
D6O_ERO
@ D6O_ERO
Definition: dhcp6.h:63
D6O_IA_PD
@ D6O_IA_PD
Definition: dhcp6.h:45
D6O_ELAPSED_TIME
@ D6O_ELAPSED_TIME
Definition: dhcp6.h:28
isc::dhcp::DHO_IRC_SERVER
@ DHO_IRC_SERVER
Definition: dhcp4.h:143
isc::dhcp::DHO_NETINFO_ADDR
@ DHO_NETINFO_ADDR
Definition: dhcp4.h:172
isc::dhcp::DHO_SYSTEM
@ DHO_SYSTEM
Definition: dhcp4.h:162
isc::dhcp::DHO_NDS_SERVERS
@ DHO_NDS_SERVERS
Definition: dhcp4.h:154
option_data_types.h
D6O_LQ_RELAY_DATA
@ D6O_LQ_RELAY_DATA
Definition: dhcp6.h:67
D6O_INTERFACE_ID
@ D6O_INTERFACE_ID
Definition: dhcp6.h:38
isc::dhcp::DHO_PATH_MTU_AGING_TIMEOUT
@ DHO_PATH_MTU_AGING_TIMEOUT
Definition: dhcp4.h:93
D6O_SOL_MAX_RT
@ D6O_SOL_MAX_RT
Definition: dhcp6.h:102
isc::dhcp::DHO_BOOT_FILE_NAME
@ DHO_BOOT_FILE_NAME
Definition: dhcp4.h:136
isc::dhcp::OPT_BOOLEAN_TYPE
@ OPT_BOOLEAN_TYPE
Definition: option_data_types.h:48
isc::dhcp::OPT_IPV4_ADDRESS_TYPE
@ OPT_IPV4_ADDRESS_TYPE
Definition: option_data_types.h:56
isc::dhcp::DHO_V4_LOST
@ DHO_V4_LOST
Definition: dhcp4.h:189
isc::dhcp::DHO_SUBNET_MASK
@ DHO_SUBNET_MASK
Definition: dhcp4.h:70
D6O_ERP_LOCAL_DOMAIN_NAME
@ D6O_ERP_LOCAL_DOMAIN_NAME
Definition: dhcp6.h:85
D6O_USER_CLASS
@ D6O_USER_CLASS
Definition: dhcp6.h:35
isc::dhcp::DHO_PCODE
@ DHO_PCODE
Definition: dhcp4.h:169
isc::dhcp::DHO_DOMAIN_SEARCH
@ DHO_DOMAIN_SEARCH
Definition: dhcp4.h:179
isc::dhcp::DHO_DOMAIN_NAME_SERVERS
@ DHO_DOMAIN_NAME_SERVERS
Definition: dhcp4.h:75
isc::dhcp::DHO_NON_LOCAL_SOURCE_ROUTING
@ DHO_NON_LOCAL_SOURCE_ROUTING
Definition: dhcp4.h:89
D6O_S46_DMR
@ D6O_S46_DMR
Definition: dhcp6.h:111
isc::dhcp::OPT_STRING_TYPE
@ OPT_STRING_TYPE
Definition: option_data_types.h:60
isc::dhcp::DHO_NISP_DOMAIN_NAME
@ DHO_NISP_DOMAIN_NAME
Definition: dhcp4.h:133
D6O_IA_TA
@ D6O_IA_TA
Definition: dhcp6.h:24
D6O_PANA_AGENT
@ D6O_PANA_AGENT
Definition: dhcp6.h:60
D6O_BCMCS_SERVER_D
@ D6O_BCMCS_SERVER_D
Definition: dhcp6.h:53
isc::dhcp::DHO_NETBIOS_SCOPE
@ DHO_NETBIOS_SCOPE
Definition: dhcp4.h:116
V4V6_BIND_OPTION_SPACE
#define V4V6_BIND_OPTION_SPACE
Definition: option_space.h:22
NO_RECORD_DEF
#define NO_RECORD_DEF
Definition: std_option_defs.h:41
isc::dhcp::DHO_CLIENT_LAST_TRANSACTION_TIME
@ DHO_CLIENT_LAST_TRANSACTION_TIME
Definition: dhcp4.h:160
D6O_VENDOR_OPTS
@ D6O_VENDOR_OPTS
Definition: dhcp6.h:37
D6O_REMOTE_ID
@ D6O_REMOTE_ID
Definition: dhcp6.h:57
isc::dhcp::OPT_EMPTY_TYPE
@ OPT_EMPTY_TYPE
Definition: option_data_types.h:46
isc::dhcp::DHO_DHCP_AGENT_OPTIONS
@ DHO_DHCP_AGENT_OPTIONS
Definition: dhcp4.h:151
D6O_NAME_SERVERS
@ D6O_NAME_SERVERS
Definition: dhcp6.h:43
isc::dhcp::DHO_TRAILER_ENCAPSULATION
@ DHO_TRAILER_ENCAPSULATION
Definition: dhcp4.h:103
dhcp4.h
D6O_RELAY_MSG
@ D6O_RELAY_MSG
Definition: dhcp6.h:29
D6O_RSOO
@ D6O_RSOO
Definition: dhcp6.h:86
isc::dhcp::DHO_V4_PORTPARAMS
@ DHO_V4_PORTPARAMS
Definition: dhcp4.h:209
isc
Defines the logger used by the top-level component of kea-dhcp-ddns.
Definition: agent_parser.cc:144
isc::dhcp::DHO_STATIC_ROUTES
@ DHO_STATIC_ROUTES
Definition: dhcp4.h:102
isc::dhcp::DHO_NDS_TREE_NAME
@ DHO_NDS_TREE_NAME
Definition: dhcp4.h:155
isc::dhcp::DHO_DHCP_REQUESTED_ADDRESS
@ DHO_DHCP_REQUESTED_ADDRESS
Definition: dhcp4.h:119
isc::dhcp::DHO_DHCP_SERVER_IDENTIFIER
@ DHO_DHCP_SERVER_IDENTIFIER
Definition: dhcp4.h:123
isc::dhcp::DHO_DIRECTORY_AGENT
@ DHO_DIRECTORY_AGENT
Definition: dhcp4.h:147
isc::dhcp::DHO_DHCP_LEASE_TIME
@ DHO_DHCP_LEASE_TIME
Definition: dhcp4.h:120
isc::dhcp::DHO_DHCP_MESSAGE_TYPE
@ DHO_DHCP_MESSAGE_TYPE
Definition: dhcp4.h:122
isc::dhcp::DHO_DHCP_MAX_MESSAGE_SIZE
@ DHO_DHCP_MAX_MESSAGE_SIZE
Definition: dhcp4.h:126
isc::dhcp::DHO_X_DISPLAY_MANAGER
@ DHO_X_DISPLAY_MANAGER
Definition: dhcp4.h:118
D6O_SIP_SERVERS_DNS
@ D6O_SIP_SERVERS_DNS
Definition: dhcp6.h:41
D6O_NISP_DOMAIN_NAME
@ D6O_NISP_DOMAIN_NAME
Definition: dhcp6.h:50
isc::dhcp::DHO_TCP_KEEPALIVE_INTERVAL
@ DHO_TCP_KEEPALIVE_INTERVAL
Definition: dhcp4.h:107
D6O_SUBSCRIBER_ID
@ D6O_SUBSCRIBER_ID
Definition: dhcp6.h:58
D6O_RAPID_COMMIT
@ D6O_RAPID_COMMIT
Definition: dhcp6.h:34
isc::dhcp::DHO_TFTP_SERVER_NAME
@ DHO_TFTP_SERVER_NAME
Definition: dhcp4.h:135
D6O_S46_BR
@ D6O_S46_BR
Definition: dhcp6.h:110
isc::dhcp::OPT_UINT8_TYPE
@ OPT_UINT8_TYPE
Definition: option_data_types.h:52
isc::dhcp::DHO_ROUTERS
@ DHO_ROUTERS
Definition: dhcp4.h:72
isc::dhcp::DHO_LPR_SERVERS
@ DHO_LPR_SERVERS
Definition: dhcp4.h:78
isc::dhcp::DHO_MERIT_DUMP
@ DHO_MERIT_DUMP
Definition: dhcp4.h:83
isc::dhcp::DHO_VENDOR_CLASS_IDENTIFIER
@ DHO_VENDOR_CLASS_IDENTIFIER
Definition: dhcp4.h:129
D6O_V6_ACCESS_DOMAIN
@ D6O_V6_ACCESS_DOMAIN
Definition: dhcp6.h:77
isc::dhcp::DHO_NETBIOS_DD_SERVER
@ DHO_NETBIOS_DD_SERVER
Definition: dhcp4.h:114
D6O_SERVERID
@ D6O_SERVERID
Definition: dhcp6.h:22
isc::dhcp::DHO_ASSOCIATED_IP
@ DHO_ASSOCIATED_IP
Definition: dhcp4.h:161
isc::dhcp::DHO_EXTENSIONS_PATH
@ DHO_EXTENSIONS_PATH
Definition: dhcp4.h:87
isc::dhcp::DHO_VENDOR_ENCAPSULATED_OPTIONS
@ DHO_VENDOR_ENCAPSULATED_OPTIONS
Definition: dhcp4.h:112
isc::dhcp::DHO_AUTO_CONFIG
@ DHO_AUTO_CONFIG
Definition: dhcp4.h:176
isc::dhcp::DHO_V4_CAPTIVE_PORTAL
@ DHO_V4_CAPTIVE_PORTAL
Definition: dhcp4.h:210
isc::dhcp::DHO_NNTP_SERVER
@ DHO_NNTP_SERVER
Definition: dhcp4.h:140
D6O_CAPWAP_AC_V6
@ D6O_CAPWAP_AC_V6
Definition: dhcp6.h:72
D6O_CERTIFICATE
@ D6O_CERTIFICATE
Definition: dhcp6.h:164
D6O_INF_MAX_RT
@ D6O_INF_MAX_RT
Definition: dhcp6.h:103
D6O_S46_CONT_MAPE
@ D6O_S46_CONT_MAPE
Definition: dhcp6.h:114
isc::dhcp::DHO_HOME_AGENT_ADDRS
@ DHO_HOME_AGENT_ADDRS
Definition: dhcp4.h:137
D6O_INFORMATION_REFRESH_TIME
@ D6O_INFORMATION_REFRESH_TIME
Definition: dhcp6.h:52
isc::dhcp::DHO_NIS_DOMAIN
@ DHO_NIS_DOMAIN
Definition: dhcp4.h:109
D6O_IA_NA
@ D6O_IA_NA
Definition: dhcp6.h:23
isc::dhcp::DHO_PATH_MTU_PLATEAU_TABLE
@ DHO_PATH_MTU_PLATEAU_TABLE
Definition: dhcp4.h:94
isc::dhcp::OPT_RECORD_TYPE
@ OPT_RECORD_TYPE
Definition: option_data_types.h:63
D6O_SIP_SERVERS_ADDR
@ D6O_SIP_SERVERS_ADDR
Definition: dhcp6.h:42
D6O_CLIENT_DATA
@ D6O_CLIENT_DATA
Definition: dhcp6.h:65
isc::dhcp::DHO_NISP_SERVER_ADDR
@ DHO_NISP_SERVER_ADDR
Definition: dhcp4.h:134
isc::dhcp::DHO_DHCP_OPTION_OVERLOAD
@ DHO_DHCP_OPTION_OVERLOAD
Definition: dhcp4.h:121
isc::dhcp::OPT_BINARY_TYPE
@ OPT_BINARY_TYPE
Definition: option_data_types.h:47
dhcp6.h
isc::dhcp::DHO_NAME_SERVICE_SEARCH
@ DHO_NAME_SERVICE_SEARCH
Definition: dhcp4.h:177
isc::dhcp::OPT_PSID_TYPE
@ OPT_PSID_TYPE
Definition: option_data_types.h:59
isc::dhcp::DHO_PERFORM_MASK_DISCOVERY
@ DHO_PERFORM_MASK_DISCOVERY
Definition: dhcp4.h:98
isc::dhcp::DHO_NETBIOS_NODE_TYPE
@ DHO_NETBIOS_NODE_TYPE
Definition: dhcp4.h:115
isc::dhcp::DHO_DHCP_MESSAGE
@ DHO_DHCP_MESSAGE
Definition: dhcp4.h:125
isc::dhcp::DHO_V4_ACCESS_DOMAIN
@ DHO_V4_ACCESS_DOMAIN
Definition: dhcp4.h:215
isc::dhcp::DHO_URL
@ DHO_URL
Definition: dhcp4.h:174
isc::dhcp::DHO_MAX_DGRAM_REASSEMBLY
@ DHO_MAX_DGRAM_REASSEMBLY
Definition: dhcp4.h:91
D6O_RELAY_SOURCE_PORT
@ D6O_RELAY_SOURCE_PORT
Definition: dhcp6.h:155
D6O_DHCPV4_MSG
@ D6O_DHCPV4_MSG
Definition: dhcp6.h:107
isc::dhcp::DHO_NDS_CONTEXT
@ DHO_NDS_CONTEXT
Definition: dhcp4.h:156
D6O_GEOCONF_CIVIC
@ D6O_GEOCONF_CIVIC
Definition: dhcp6.h:56
isc::dhcp::DHO_INTERFACE_MTU
@ DHO_INTERFACE_MTU
Definition: dhcp4.h:95
isc::dhcp::DHO_HOST_NAME
@ DHO_HOST_NAME
Definition: dhcp4.h:81
D6O_VENDOR_CLASS
@ D6O_VENDOR_CLASS
Definition: dhcp6.h:36
D6O_IPV6_ADDRESS_ANDSF
@ D6O_IPV6_ADDRESS_ANDSF
Definition: dhcp6.h:157
isc::dhcp::DHO_NDI
@ DHO_NDI
Definition: dhcp4.h:163
D6O_IAADDR
@ D6O_IAADDR
Definition: dhcp6.h:25
D6O_NEW_TZDB_TIMEZONE
@ D6O_NEW_TZDB_TIMEZONE
Definition: dhcp6.h:62
isc::dhcp::DHO_USER_AUTH
@ DHO_USER_AUTH
Definition: dhcp4.h:167
D6O_NISP_SERVERS
@ D6O_NISP_SERVERS
Definition: dhcp6.h:48
D6O_DHCPV4_O_DHCPV6_SERVER
@ D6O_DHCPV4_O_DHCPV6_SERVER
Definition: dhcp6.h:108
isc::dhcp::DHO_STDASERVER
@ DHO_STDASERVER
Definition: dhcp4.h:145
D6O_PREFERENCE
@ D6O_PREFERENCE
Definition: dhcp6.h:27
D6O_SIGNATURE
@ D6O_SIGNATURE
Definition: dhcp6.h:165
isc::dhcp::DHO_DEFAULT_IP_TTL
@ DHO_DEFAULT_IP_TTL
Definition: dhcp4.h:92
isc::dhcp::DHO_CAPWAP_AC_V4
@ DHO_CAPWAP_AC_V4
Definition: dhcp4.h:190
D6O_NIS_SERVERS
@ D6O_NIS_SERVERS
Definition: dhcp6.h:47
D6O_CLT_TIME
@ D6O_CLT_TIME
Definition: dhcp6.h:66
isc::dhcp::OPT_INT32_TYPE
@ OPT_INT32_TYPE
Definition: option_data_types.h:51
MAPT_V6_OPTION_SPACE
#define MAPT_V6_OPTION_SPACE
Definition: option_space.h:19
D6O_S46_CONT_LW
@ D6O_S46_CONT_LW
Definition: dhcp6.h:116
isc::dhcp::DHO_NWIP_DOMAIN_NAME
@ DHO_NWIP_DOMAIN_NAME
Definition: dhcp4.h:131
D6O_ORO
@ D6O_ORO
Definition: dhcp6.h:26
isc::dhcp::DHO_FONT_SERVERS
@ DHO_FONT_SERVERS
Definition: dhcp4.h:117
isc::dhcp::DHO_PANA_AGENT
@ DHO_PANA_AGENT
Definition: dhcp4.h:188
isc::dhcp::DHO_DOMAIN_NAME
@ DHO_DOMAIN_NAME
Definition: dhcp4.h:84
isc::dhcp::DHO_NTP_SERVERS
@ DHO_NTP_SERVERS
Definition: dhcp4.h:111
LW_V6_OPTION_SPACE
#define LW_V6_OPTION_SPACE
Definition: option_space.h:20
isc::dhcp::DHO_VIVSO_SUBOPTIONS
@ DHO_VIVSO_SUBOPTIONS
Definition: dhcp4.h:185
isc::dhcp::DHO_COOKIE_SERVERS
@ DHO_COOKIE_SERVERS
Definition: dhcp4.h:77
D6O_LQ_CLIENT_LINK
@ D6O_LQ_CLIENT_LINK
Definition: dhcp6.h:68
V4V6_RULE_OPTION_SPACE
#define V4V6_RULE_OPTION_SPACE
Definition: option_space.h:21
D6O_CLIENTID
@ D6O_CLIENTID
Definition: dhcp6.h:21
isc::dhcp::DHO_BCMCS_DOMAIN_NAME_LIST
@ DHO_BCMCS_DOMAIN_NAME_LIST
Definition: dhcp4.h:157
D6O_NII
@ D6O_NII
Definition: dhcp6.h:82
D6O_BCMCS_SERVER_A
@ D6O_BCMCS_SERVER_A
Definition: dhcp6.h:54
isc::dhcp::DHO_RESOURCE_LOCATION_SERVERS
@ DHO_RESOURCE_LOCATION_SERVERS
Definition: dhcp4.h:80
isc::dhcp::DHO_DHCP_RENEWAL_TIME
@ DHO_DHCP_RENEWAL_TIME
Definition: dhcp4.h:127
isc::dhcp::DHO_SMTP_SERVER
@ DHO_SMTP_SERVER
Definition: dhcp4.h:138
isc::dhcp::OPT_IPV6_PREFIX_TYPE
@ OPT_IPV6_PREFIX_TYPE
Definition: option_data_types.h:58
isc::dhcp::DHO_NIS_SERVERS
@ DHO_NIS_SERVERS
Definition: dhcp4.h:110
isc::dhcp::DHO_TCODE
@ DHO_TCODE
Definition: dhcp4.h:170
isc::dhcp::DHO_USER_CLASS
@ DHO_USER_CLASS
Definition: dhcp4.h:146
isc::dhcp::DHO_ROUTER_SOLICITATION_ADDRESS
@ DHO_ROUTER_SOLICITATION_ADDRESS
Definition: dhcp4.h:101
isc::dhcp::DHO_DHCP_CLIENT_IDENTIFIER
@ DHO_DHCP_CLIENT_IDENTIFIER
Definition: dhcp4.h:130
isc::dhcp::OPT_FQDN_TYPE
@ OPT_FQDN_TYPE
Definition: option_data_types.h:62
isc::dhcp::DHO_DHCP_REBINDING_TIME
@ DHO_DHCP_REBINDING_TIME
Definition: dhcp4.h:128
D6O_DOMAIN_SEARCH
@ D6O_DOMAIN_SEARCH
Definition: dhcp6.h:44
D6O_STATUS_CODE
@ D6O_STATUS_CODE
Definition: dhcp6.h:33
D6O_AUTH
@ D6O_AUTH
Definition: dhcp6.h:31
isc::dhcp::DHO_TIME_OFFSET
@ DHO_TIME_OFFSET
Definition: dhcp4.h:71
isc::dhcp::DHO_BCMCS_IPV4_ADDR
@ DHO_BCMCS_IPV4_ADDR
Definition: dhcp4.h:158
isc::dhcp::OPT_TUPLE_TYPE
@ OPT_TUPLE_TYPE
Definition: option_data_types.h:61
isc::dhcp::DHO_NETINFO_TAG
@ DHO_NETINFO_TAG
Definition: dhcp4.h:173
isc::dhcp::DHO_ROUTER_DISCOVERY
@ DHO_ROUTER_DISCOVERY
Definition: dhcp4.h:100
isc::dhcp::DHO_DHCP_PARAMETER_REQUEST_LIST
@ DHO_DHCP_PARAMETER_REQUEST_LIST
Definition: dhcp4.h:124
isc::dhcp::DHO_ARP_CACHE_TIMEOUT
@ DHO_ARP_CACHE_TIMEOUT
Definition: dhcp4.h:104
isc::dhcp::DHO_NETBIOS_NAME_SERVERS
@ DHO_NETBIOS_NAME_SERVERS
Definition: dhcp4.h:113
isc::dhcp::OPT_UINT16_TYPE
@ OPT_UINT16_TYPE
Definition: option_data_types.h:53
isc::dhcp::DHO_LOG_SERVERS
@ DHO_LOG_SERVERS
Definition: dhcp4.h:76
D6O_S46_V4V6BIND
@ D6O_S46_V4V6BIND
Definition: dhcp6.h:112
D6O_IAPREFIX
@ D6O_IAPREFIX
Definition: dhcp6.h:46
isc::dhcp::DHO_RDNSS_SELECT
@ DHO_RDNSS_SELECT
Definition: dhcp4.h:198
isc::dhcp::OPT_IPV6_ADDRESS_TYPE
@ OPT_IPV6_ADDRESS_TYPE
Definition: option_data_types.h:57
isc::dhcp::DHO_BOOT_SIZE
@ DHO_BOOT_SIZE
Definition: dhcp4.h:82
isc::dhcp::DHO_NAME_SERVERS
@ DHO_NAME_SERVERS
Definition: dhcp4.h:74
isc::dhcp::DHO_DEFAULT_TCP_TTL
@ DHO_DEFAULT_TCP_TTL
Definition: dhcp4.h:106
D6O_CLIENT_FQDN
@ D6O_CLIENT_FQDN
Definition: dhcp6.h:59
D6O_RELAY_ID
@ D6O_RELAY_ID
Definition: dhcp6.h:73
isc::dhcp::DHO_GEOCONF_CIVIC
@ DHO_GEOCONF_CIVIC
Definition: dhcp4.h:168
MAPE_V6_OPTION_SPACE
#define MAPE_V6_OPTION_SPACE
Definition: option_space.h:18
isc::dhcp::DHO_SUBNET_SELECTION
@ DHO_SUBNET_SELECTION
Definition: dhcp4.h:178
D6O_NIS_DOMAIN_NAME
@ D6O_NIS_DOMAIN_NAME
Definition: dhcp6.h:49
isc::dhcp::DHO_VIVCO_SUBOPTIONS
@ DHO_VIVCO_SUBOPTIONS
Definition: dhcp4.h:184
isc::dhcp::DHO_POP3_SERVER
@ DHO_POP3_SERVER
Definition: dhcp4.h:139
isc::dhcp::DHO_TCP_KEEPALIVE_GARBAGE
@ DHO_TCP_KEEPALIVE_GARBAGE
Definition: dhcp4.h:108
isc::dhcp::DHO_IMPRESS_SERVERS
@ DHO_IMPRESS_SERVERS
Definition: dhcp4.h:79
D6O_V6_CAPTIVE_PORTAL
@ D6O_V6_CAPTIVE_PORTAL
Definition: dhcp6.h:123
isc::dhcp::DHO_BROADCAST_ADDRESS
@ DHO_BROADCAST_ADDRESS
Definition: dhcp4.h:97
D6O_PD_EXCLUDE
@ D6O_PD_EXCLUDE
Definition: dhcp6.h:87
D6O_SIP_UA_CS_LIST
@ D6O_SIP_UA_CS_LIST
Definition: dhcp6.h:78
D6O_LQ_QUERY
@ D6O_LQ_QUERY
Definition: dhcp6.h:64
D6O_BOOTFILE_PARAM
@ D6O_BOOTFILE_PARAM
Definition: dhcp6.h:80
D6O_AFTR_NAME
@ D6O_AFTR_NAME
Definition: dhcp6.h:84