1 # Copyright (c) 2006-2017 Roy Marples
4 # DHCP option definitions for dhcpcd(8)
5 # These are used to translate DHCP options into shell variables
6 # for use in dhcpcd-run-hooks(8)
7 # See dhcpcd.conf(5) for details
9 ##############################################################################
10 # DHCP RFC2132 options unless otheriwse stated
11 define 1 request ipaddress subnet_mask
12 # RFC3442 states that the CSR has to come before all other routes
13 # For completeness we also specify static routes then routers
14 define 121 rfc3442 classless_static_routes
15 # Option 249 is an IANA assigned private number used by Windows DHCP servers
16 # to provide the exact same information as option 121, classless static routes
17 define 249 rfc3442 ms_classless_static_routes
18 define 33 request array ipaddress static_routes
19 define 3 request array ipaddress routers
20 define 2 uint32 time_offset
21 define 4 array ipaddress time_servers
22 define 5 array ipaddress ien116_name_servers
23 define 6 array ipaddress domain_name_servers
24 define 7 array ipaddress log_servers
25 define 8 array ipaddress cookie_servers
26 define 9 array ipaddress lpr_servers
27 define 10 array ipaddress impress_servers
28 define 11 array ipaddress resource_location_servers
29 define 12 dname host_name
30 define 13 uint16 boot_size
31 define 14 string merit_dump
32 # Technically domain_name is not an array, but many servers expect clients
34 define 15 array dname domain_name
35 define 16 ipaddress swap_server
36 define 17 string root_path
37 define 18 string extensions_path
38 define 19 byte ip_forwarding
39 define 20 byte non_local_source_routing
40 define 21 array ipaddress policy_filter
41 define 22 uint16 max_dgram_reassembly
42 define 23 byte default_ip_ttl
43 define 24 uint32 path_mtu_aging_timeout
44 define 25 array uint16 path_mtu_plateau_table
45 define 26 uint16 interface_mtu
46 define 27 byte all_subnets_local
47 define 28 request ipaddress broadcast_address
48 define 29 byte perform_mask_discovery
49 define 30 byte mask_supplier
50 define 31 byte router_discovery
51 define 32 ipaddress router_solicitation_address
52 define 34 byte trailer_encapsulation
53 define 35 uint32 arp_cache_timeout
54 define 36 uint16 ieee802_3_encapsulation
55 define 37 byte default_tcp_ttl
56 define 38 uint32 tcp_keepalive_interval
57 define 39 byte tcp_keepalive_garbage
58 define 40 string nis_domain
59 define 41 array ipaddress nis_servers
60 define 42 array ipaddress ntp_servers
61 define 43 binhex vendor_encapsulated_options
62 define 44 array ipaddress netbios_name_servers
63 define 45 ipaddress netbios_dd_server
64 define 46 byte netbios_node_type
65 define 47 string netbios_scope
66 define 48 array ipaddress font_servers
67 define 49 array ipaddress x_display_manager
68 define 50 ipaddress dhcp_requested_address
69 define 51 request uint32 dhcp_lease_time
70 define 52 byte dhcp_option_overload
71 define 53 byte dhcp_message_type
72 define 54 ipaddress dhcp_server_identifier
73 define 55 array byte dhcp_parameter_request_list
74 define 56 string dhcp_message
75 define 57 uint16 dhcp_max_message_size
76 define 58 request uint32 dhcp_renewal_time
77 define 59 request uint32 dhcp_rebinding_time
78 define 60 string vendor_class_identifier
79 define 61 binhex dhcp_client_identifier
80 define 64 string nisplus_domain
81 define 65 array ipaddress nisplus_servers
82 define 66 dname tftp_server_name
83 define 67 string bootfile_name
84 define 68 array ipaddress mobile_ip_home_agent
85 define 69 array ipaddress smtp_server
86 define 70 array ipaddress pop_server
87 define 71 array ipaddress nntp_server
88 define 72 array ipaddress www_server
89 define 73 array ipaddress finger_server
90 define 74 array ipaddress irc_server
91 define 75 array ipaddress streettalk_server
92 define 76 array ipaddress streettalk_directory_assistance_server
94 # DHCP User Class, RFC3004
95 define 77 binhex user_class
97 # DHCP SLP Directory Agent, RFC2610
98 define 78 embed slp_agent
100 embed array ipaddress address
101 define 79 embed slp_service
103 embed ascii scope_list
105 # DHCP Rapid Commit, RFC4039
106 define 80 norequest flag rapid_commit
108 # DHCP Fully Qualified Domain Name, RFC4702
110 embed bitflags=0000NEOS flags
113 # dhcpcd always sets the E bit which means the fqdn itself is always
115 # The server MUST use the encoding as specified by the client as noted
116 # in RFC4702 Section 2.1.
117 embed optional domain fqdn
119 # Option 82 is for Relay Agents and DHCP servers
124 embed bitflags=00000SAE functions
126 embed bitflags=00fFsSCE dd
128 embed bitflags=0000DMHE admin
129 embed uint16 reserved4
131 embed bitflags=0TXPAMSE server_security
132 embed array ipaddress servers
134 # Option 84 are unused, RFC3679
136 # DHCP Novell Directory Services, RFC2241
137 define 85 array ipaddress nds_servers
138 define 86 raw nds_tree_name
139 define 87 raw nds_context
141 # DHCP Broadcast and Multicast Control Server, RFC4280
142 define 88 array domain bcms_controller_names
143 define 89 array ipaddress bcms_controller_address
145 # DHCP Authentication, RFC3118
150 embed binhex:8 replay
151 embed binhex information
153 # DHCP Leasequery, RFC4388
154 define 91 uint32 client_last_transaction_time
155 define 92 array ipaddress associated_ip
157 # DHCP Options for Intel Preboot eXecution Environent (PXE), RFC4578
158 # Options 93, 94 and 97 are used but of no use to dhcpcd
160 # Option 95 used by Apple but never published RFC3679
161 # Option 96 is unused, RFC3679
163 # DHCP The Open Group's User Authentication Protocol, RFC2485
164 define 98 string uap_servers
166 # DHCP Civic Addresses Configuration Information, RFC4776
167 define 99 encap geoconf_civic
169 embed uint16 country_code
170 # The rest of this option is not supported
172 # DHCP Timezone, RFC4883
173 define 100 string posix_timezone
174 define 101 string tzdb_timezone
176 # Options 102-115 are unused, RFC3679
178 # DHCP Auto-Configuration, RFC2563
179 define 116 byte auto_configure
181 # DHCP Name Service Search, RFC2937
182 define 117 array uint16 name_service_search
184 # DHCP Subnet Selection, RFC3011
185 define 118 ipaddress subnet_selection
187 # DHCP Domain Search, RFC3397
188 define 119 array domain domain_search
190 # DHCP Session Initiated Protocol Servers, RFC3361
191 define 120 rfc3361 sip_server
193 # Option 121 is defined at the top of this file
195 # DHCP CableLabs Client, RFC3495
197 encap 1 ipaddress dhcp_server
198 encap 2 ipaddress dhcp_secondary_server
199 encap 3 rfc3361 provisioning_server
200 encap 4 embed as_req_as_rep_backoff
204 encap 5 embed ap_req_ap_rep_backoff
208 encap 6 domain kerberos_realm
209 encap 7 byte ticket_granting_server_utilization
210 encap 8 byte provisioning_timer
212 # DHCP Coordinate LCI, RFC6225
213 # We have no means of expressing 6 bit lengths
214 define 123 binhex geoconf
216 # DHCP Vendor-Identifying Vendor Options, RFC3925
217 define 124 binhex vivco
218 define 125 embed vivso
219 embed uint32 enterprise_number
220 # Vendor options are shared between DHCP/DHCPv6
221 # Their code is matched to the enterprise number defined above
222 # see the end of this file for an example
224 # Options 126 and 127 are unused, RFC3679
226 # DHCP Options for Intel Preboot eXecution Environent (PXE), RFC4578
227 # Options 128-135 are used but of no use to dhcpcd
229 # DHCP PANA Authentication Agent, RFC5192
230 define 136 array ipaddress pana_agent
232 # DHCP Lost Server, RFC5223
233 define 137 domain lost_server
235 # DHCP CAPWAP, RFC5417
236 define 138 array ipaddress capwap_ac
238 # DHCP Mobility Services, RFC5678
239 define 139 encap mos_ip
240 encap 1 array ipaddress is
241 encap 2 array ipaddress cs
242 encap 3 array ipaddress es
243 define 140 encap mos_domain
248 # DHCP SIP UA, RFC6011
249 define 141 array domain sip_ua_cs_list
251 # DHCP ANDSF, RFC6153
252 define 142 array ipaddress andsf
253 define 143 array ip6address andsf6
255 # DHCP Coordinate LCI, RFC6225
256 # We have no means of expressing 6 bit lengths
257 define 144 binhex geoloc
259 # DHCP FORCERENEW Nonce Capability, RFC6704
260 define 145 array byte forcerenew_nonce_capable
262 # DHCP RDNSS Selection for MIF Nodes, RFC6731
263 define 146 embed rdnss_selection
265 embed ipaddress primary
266 embed ipaddress secondary
267 embed array domain domains
269 # Options 147, 148 and 149 are unused, RFC3942
271 # DHCP TFTP Server Address, RFC5859
272 define 150 array ipaddress tftp_servers
274 # DHCP MUD URL, draft-ietf-opsawg-mud
275 define 161 string mudurl
278 # Options 151-157 are used for Lease Query, RFC6926 and not for dhcpcd
279 # Options 158-174 are unused, RFC3942
281 # Options 175-177 are tentativel assigned for Etherboot
282 # Options 178-207 are unused, RFC3942
284 # DHCP PXELINUX, RFC5071
285 define 208 binhex pxelinux_magic
286 define 209 string config_file
287 define 210 string path_prefix
288 define 211 uint32 reboot_time
290 # DHCP IPv6 Rapid Deployment on IPv4 Infrastructures, RFC5969
291 define 212 embed sixrd
293 embed byte prefix_len
294 embed ip6address prefix
295 embed array ipaddress brip_address
297 # DHCP Access Network Domain Name, RFC5986
298 define 213 domain access_domain
300 # Options 214-219 are unused, RFC3942
302 # DHCP Subnet Allocation, RFC6656
303 # Option 220 looks specific to Cisco hardware.
305 # DHCP Virtual Subnet Selection, RFC6607
308 encap 1 binhex vpn_id
309 encap 255 flag global
311 # Options 222 and 223 are unused, RFC3942
313 # Options 224-254 are reserved for Private Use
314 # However, an expired RFC for Web Proxy Auto Discovery Protocol does define
315 # Option 252 which is commonly used by major browsers.
316 # Apparently the code was assigned by agreement of the DHC working group chair.
317 define 252 string wpad_url
321 ##############################################################################
322 # ND6 options, RFC4861
323 definend 1 binhex source_address
324 definend 2 binhex target_address
326 definend 3 index embed prefix_information
328 embed bitflags=LA flags
331 embed uint32 reserved
332 embed array ip6address prefix
334 # option 4 is only for Redirect messages
337 embed uint16 reserved
340 # ND6 options, RFC6101
341 definend 25 index embed rdnss
342 embed uint16 reserved
343 embed uint32 lifetime
344 embed array ip6address servers
346 definend 31 index embed dnssl
347 embed uint16 reserved
348 embed uint32 lifetime
351 ##############################################################################
352 # DHCPv6 options, RFC3315
353 define6 1 binhex client_id
354 define6 2 binhex server_id
356 define6 3 norequest index embed ia_na
363 define6 4 norequest index embed ia_ta
368 define6 5 norequest index embed ia_addr
369 embed ip6address ia_addr
374 define6 6 array uint16 option_request
375 define6 7 byte preference
376 define6 8 uint16 elased_time
377 define6 9 binhex dhcp_relay_msg
379 # Option 10 is unused
381 define6 11 embed auth
385 embed binhex:8 replay
386 embed binhex information
388 define6 12 ip6address unicast
390 define6 13 norequest embed status_code
391 embed uint16 status_code
392 embed optional string message
394 define6 14 norequest flag rapid_commit
395 define6 15 binhex user_class
397 define6 16 binhex vivco
398 define6 17 embed vivso
399 embed uint32 enterprise_number
400 # Vendor options are shared between DHCP/DHCPv6
401 # Their code is matched to the enterprise number defined above
402 # See the end of this file for an example
404 define6 18 binhex interface_id
405 define6 19 byte reconfigure_msg
406 define6 20 flag reconfigure_accept
408 # DHCPv6 Session Initiation Protocol Options, RFC3319
409 define6 21 array domain sip_servers_names
410 define6 22 array ip6address sip_servers_addresses
412 # DHCPv6 DNS Configuration Options, RFC3646
413 define6 23 array ip6address name_servers
414 define6 24 array domain domain_search
416 # DHCPv6 Prefix Options, RFC6603
417 define6 25 norequest index embed ia_pd
422 define6 26 index embed prefix
426 embed ip6address prefix
430 # DHCPv6 Network Information Service Options, RFC3898
431 define6 27 array ip6address nis_servers
432 define6 28 array ip6address nisp_servers
433 define6 29 string nis_domain_name
434 define6 30 string nisp_domain_name
436 # DHCPv6 Simple Network Time Protocol Servers Option, RFC4075
437 define6 31 array ip6address sntp_servers
439 # DHCPv6 Information Refresh Time, RFC4242
440 define6 32 uint32 info_refresh_time
442 # DHCPv6 Broadcast and Multicast Control Server, RFC4280
443 define6 33 array domain bcms_server_d
444 define6 34 array ip6address bcms_server_a
446 # DHCP Civic Addresses Configuration Information, RFC4776
447 define6 36 encap geoconf_civic
449 embed uint16 country_code
450 # The rest of this option is not supported
452 # DHCP Relay Agent Remote-ID, RFC4649
453 define6 37 embed remote_id
454 embed uint32 enterprise_number
455 embed binhex remote_id
457 # DHCP Relay Agent Subscriber-ID, RFC4580
458 define6 38 binhex subscriber_id
460 # DHCPv6 Fully Qualified Domain Name, RFC4704
461 define6 39 embed fqdn
462 embed bitflags=00000NOS flags
463 embed optional domain fqdn
465 # DHCPv6 PANA Authentication Agnet, RC5192
466 define6 40 array ip6address pana_agent
468 # DHCPv6 Timezone options, RFC4883
469 define6 41 string posix_timezone
470 define6 42 string tzdb_timezone
472 # DHCPv6 Relay Agent Echo Request
473 define6 43 array uint16 ero
475 # Options 44-48 are used for Lease Query, RFC5007 and not for dhcpcd
477 # DHCPv6 Home Info Discovery in MIPv6, RFC6610
478 define6 49 domain mip6_hnidf
479 define6 50 encap mip6_vdinf
484 # DHCPv6 Lost Server, RFC5223
485 define6 51 domain lost_server
487 # DHCPv6 CAPWAP, RFC5417
488 define6 52 array ip6address capwap_ac
490 # DHCPv6 Relay-ID, RFC5460
491 define6 53 binhex relay_id
493 # DHCP Mobility Services, RFC5678
494 define6 54 encap mos_ip
495 encap 1 array ip6address is
496 encap 2 array ip6address cs
497 encap 3 array ip6address es
498 define6 55 encap mos_domain
503 # DHCPv6 Network Time Protocol Server, RFC5908
504 define6 56 encap ntp_server
505 encap 1 ip6address addr
506 encap 2 ip6address mcast_addr
507 encap 3 ip6address fqdn
509 # DHCPv6 LIS Discovery, RFC5986
510 define6 57 domain access_domain
512 # DHCPv6 SIP UA, RFC6011
513 define6 58 array domain sip_ua_cs_list
515 # DHCPv6 Network Boot, RFC5970
516 define6 59 string bootfile_url
517 # We presently cannot decode bootfile_param
518 define6 60 binhex bootfile_param
519 define6 61 array uint16 architecture_types
525 # DHCPv6 Coordinate LCI, RFC6225
526 # We have no means of expressing 6 bit lengths
527 define6 63 binhex geoloc
529 # DHCPv6 AFTR-Name, RFC6334
530 define6 64 domain aftr_name
532 # DHCPv6 Prefix Exclude Option, RFC6603
533 define6 67 embed pd_exclude
534 embed byte prefix_len
535 embed binhex subnetID
537 # DHCPv6 Home Info Discovery in MIPv6, RFC6610
538 define6 69 encap mip6_idinf
542 define6 70 encap mip6_udinf
546 define6 71 embed mip6_hnp
547 embed byte prefix_len
548 embed ip6address prefix
549 define6 72 ip6address mip6_haa
550 define6 73 domain mip6_haf
552 # DHCPv6 RDNSS Selection for MIF Nodes, RFC6731
553 define6 74 embed rdnss_selection
554 embed ip6address server
556 embed array domain domains
558 # DHCPv6 Kerberos, RFC6784
559 define6 75 string krb_principal_name
560 define6 76 string krb_realm_name
561 define6 78 embed krb_kdc
562 embed uint16 priority
564 embed byte transport_type
566 embed ip6address address
567 embed string realm_name
569 # DHCPv6 Client Link-Layer Address, RFC6939
570 # Section 7 states that clients MUST ignore the option 79
572 # DHCPv6 Relay-Triggered Reconfiguraion, RFC6977
573 define6 80 ip6address link_address
575 # DHCPv6 Radius, RFC7037
576 # Section 7 states that clients MUST ignore the option 81
578 # DHCPv6 SOL_MAX_RT, RFC7083
579 define6 82 request uint32 sol_max_rt
580 define6 83 request uint32 inf_max_rt
582 # DHCPv6 Softwire Address and Port-Mapped Clients, RFC7598
583 define6 89 embed s46_rule
584 embed bitflags=0000000F flags
586 embed byte prefix4_len
587 embed ipaddress ipv4_prefix
588 embed ip6address ipv6_prefix
589 define6 90 ip6address s64_br
590 define6 91 embed s46_dmr
591 embed byte prefix_len
593 define6 92 embed s46_v4v6bind
594 embed ipaddress ipv4_address
595 embed byte ipv6_prefix_len
596 embed binhex ipv6_prefix_and_options
597 # Cannot decode options after variable length address ...
599 define6 93 embed s46_portparams
603 define6 94 embed s46_cont_mape
606 define6 95 embed s46_cont_mapt
609 define6 96 embed s46_cont_lw
613 # DHCPv6 Address Selection Policy
614 # Currently not supported
616 # DHCPv6 MUD URL, draft-ietf-opsawg-mud
617 define6 112 string mudurl
619 # Options 86-65535 are unasssinged
621 ##############################################################################
622 # Vendor-Identifying Vendor Options
624 #vendopt 12345 encap frobozzco
625 #encap 1 string maze_location
626 #encap 2 byte grue_probability