1# Copyright (c) 2006-2015 Roy Marples
2# All rights reserved
3
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
8
9##############################################################################
10# DHCP RFC2132 options unless otheriwse stated
11define 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
14define 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
17define 249	rfc3442			ms_classless_static_routes
18define 33	request array ipaddress	static_routes
19define 3	request array ipaddress	routers
20define 2	uint32			time_offset
21define 4	array ipaddress		time_servers
22define 5	array ipaddress		ien116_name_servers
23define 6	array ipaddress		domain_name_servers
24define 7	array ipaddress		log_servers
25define 8	array ipaddress		cookie_servers
26define 9	array ipaddress		lpr_servers
27define 10	array ipaddress		impress_servers
28define 11	array ipaddress		resource_location_servers
29define 12	dname			host_name
30define 13	uint16			boot_size
31define 14	string			merit_dump
32# Technically domain_name is not an array, but many servers expect clients
33# to treat it as one.
34define 15	array dname		domain_name
35define 16	ipaddress		swap_server
36define 17	string			root_path
37define 18	string			extensions_path
38define 19	byte			ip_forwarding
39define 20	byte			non_local_source_routing
40define 21	array ipaddress		policy_filter
41define 22	int16			max_dgram_reassembly
42define 23	uint16			default_ip_ttl
43define 24	uint32			path_mtu_aging_timeout
44define 25	array uint16		path_mtu_plateau_table
45define 26	uint16			interface_mtu
46define 27	byte			all_subnets_local
47define 28	request ipaddress	broadcast_address
48define 29	byte			perform_mask_discovery
49define 30	byte			mask_supplier
50define 31	byte			router_discovery
51define 32	ipaddress		router_solicitation_address
52define 34	byte			trailer_encapsulation
53define 35	uint32			arp_cache_timeout
54define 36	uint16			ieee802_3_encapsulation
55define 37	byte			default_tcp_ttl
56define 38	uint32			tcp_keepalive_interval
57define 39	byte			tcp_keepalive_garbage
58define 40	string			nis_domain
59define 41	array ipaddress		nis_servers
60define 42	array ipaddress		ntp_servers
61define 43	binhex			vendor_encapsulated_options
62define 44	array ipaddress		netbios_name_servers
63define 45	ipaddress		netbios_dd_server
64define 46	byte			netbios_node_type
65define 47	string			netbios_scope
66define 48	array ipaddress		font_servers
67define 49	array ipaddress		x_display_manager
68define 50	ipaddress		dhcp_requested_address
69define 51	request uint32		dhcp_lease_time
70define 52	byte			dhcp_option_overload
71define 53	byte			dhcp_message_type
72define 54	ipaddress		dhcp_server_identifier
73define 55	array byte		dhcp_parameter_request_list
74define 56	string			dhcp_message
75define 57	uint16			dhcp_max_message_size
76define 58	request uint32		dhcp_renewal_time
77define 59	request uint32		dhcp_rebinding_time
78define 60	binhex			vendor_class_identifier
79define 61	binhex			dhcp_client_identifier
80define 64	string			nisplus_domain
81define 65	array ipaddress		nisplus_servers
82define 66	dname			tftp_server_name
83define 67	string			bootfile_name
84define 68	array ipaddress		mobile_ip_home_agent
85define 69	array ipaddress		smtp_server
86define 70	array ipaddress		pop_server
87define 71	array ipaddress		nntp_server
88define 72	array ipaddress		www_server
89define 73	array ipaddress		finger_server
90define 74	array ipaddress		irc_server
91define 75	array ipaddress		streettalk_server
92define 76	array ipaddress		streettalk_directory_assistance_server
93
94# DHCP User Class, RFC3004
95define 77	binhex			user_class
96
97# DHCP SLP Directory Agent, RFC2610
98define 78	embed			slp_agent
99embed		byte			mandatory
100embed		array ipaddress		address
101define 79	embed			slp_service
102embed		byte			mandatory
103embed		ascii			scope_list
104
105# DHCP Rapid Commit, RFC4039
106define 80	norequest flag		rapid_commit
107
108# DHCP Fully Qualified Domain Name, RFC4702
109define 81	embed			fqdn
110embed		byte			flags
111embed		byte			rcode1
112embed		byte			rcode2
113embed		domain			fqdn
114
115# Option 82 is for Relay Agents and DHCP servers
116
117# Options 83 ad 84 are unused, RFC3679
118
119# DHCP Novell Directory Services, RFC2241
120define 85	array ipaddress		nds_servers
121define 86	raw			nds_tree_name
122define 87	raw			nds_context
123
124# DHCP Broadcast and Multicast Control Server, RFC4280
125define 88	array domain		bcms_controller_names
126define 89	array ipaddress		bcms_controller_address
127
128# DHCP Authentication, RFC3118
129define 90	embed			auth
130embed		byte			protocol
131embed		byte			algorithm
132embed		byte			rdm
133embed		binhex:8		replay
134embed		binhex			information
135
136# DHCP Leasequery, RFC4388
137define 91	uint32			client_last_transaction_time
138define 92	array ipaddress		associated_ip
139
140# DHCP Options for Intel Preboot eXecution Environent (PXE), RFC4578
141# Options 93, 94 and 97 are used but of no use to dhcpcd
142
143# Option 95 used by Apple but never published RFC3679
144# Option 96 is unused, RFC3679
145
146# DHCP The Open Group's User Authentication Protocol, RFC2485
147define 98	string			uap_servers
148
149# DHCP Civic Addresses Configuration Information, RFC4776
150define 99	encap			geoconf_civic
151embed		byte			what
152embed		uint16			country_code
153# The rest of this option is not supported
154
155# DHCP Timezone, RFC4883
156define 100	string			posix_timezone
157define 101	string			tzdb_timezone
158
159# Options 102-115 are unused, RFC3679
160
161# DHCP Auto-Configuration, RFC2563
162define 116	byte			auto_configure
163
164# DHCP Name Service Search, RFC2937
165define 117	array uint16		name_service_search
166
167# DHCP Subnet Selection, RFC3011
168define 118	ipaddress		subnet_selection
169
170# DHCP Domain Search, RFC3397
171define 119	array domain		domain_search
172
173# DHCP Session Initiated Protocol Servers, RFC3361
174define 120	rfc3361			sip_server
175
176# Option 121 is defined at the top of this file
177
178# DHCP CableLabs Client, RFC3495
179define 122	encap			tsp
180encap 1		ipaddress		dhcp_server
181encap 2		ipaddress		dhcp_secondary_server
182encap 3		rfc3361			provisioning_server
183encap 4		embed			as_req_as_rep_backoff
184embed		uint32			nominal
185embed		uint32			maximum
186embed		uint32			retry
187encap 5		embed			ap_req_ap_rep_backoff
188embed		uint32			nominal
189embed		uint32			maximum
190embed		uint32			retry
191encap 6		domain			kerberos_realm
192encap 7		byte			ticket_granting_server_utilization
193encap 8		byte			provisioning_timer
194
195# DHCP Coordinate LCI, RFC6225
196# We have no means of expressing 6 bit lengths
197define 123	binhex			geoconf
198
199# DHCP Vendor-Identifying Vendor Options, RFC3925
200define 124	binhex			vivco
201define 125	embed			vivso
202embed		uint32			enterprise_number
203# Vendor options are shared between DHCP/DHCPv6
204# Their code is matched to the enterprise number defined above
205# see the end of this file for an example
206
207# Options 126 and 127 are unused, RFC3679
208
209# DHCP Options for Intel Preboot eXecution Environent (PXE), RFC4578
210# Options 128-135 are used but of no use to dhcpcd
211
212# DHCP PANA Authentication Agent, RFC5192
213define 136	array ipaddress		pana_agent
214
215# DHCP Lost Server, RFC5223
216define 137	domain			lost_server
217
218# DHCP CAPWAP, RFC5417
219define 138	array ipaddress		capwap_ac
220
221# DHCP Mobility Services, RFC5678
222define 139	encap			mos_ip
223encap 1		array ipaddress		is
224encap 2		array ipaddress		cs
225encap 3		array ipaddress		es
226define 140	encap			mos_domain
227encap 1		domain			is
228encap 2		domain			cs
229encap 3		domain			es
230
231# DHCP SIP UA, RFC6011
232define 141	array domain		sip_ua_cs_list
233
234# DHCP ANDSF, RFC6153
235define 142	array ipaddress		andsf
236define 143	array ip6address	andsf6
237
238# DHCP Coordinate LCI, RFC6225
239# We have no means of expressing 6 bit lengths
240define 144	binhex			geoloc
241
242# DHCP FORCERENEW Nonce Capability, RFC6704
243define 145	array byte		forcerenew_nonce_capable
244
245# DHCP RDNSS Selection for MIF Nodes, RFC6731
246define 146	embed			rdnss_selection
247embed		byte			prf
248embed		ipaddress		primary
249embed		ipaddress		secondary
250embed		array domain		domains
251
252# Options 147, 148 and 149 are unused, RFC3942
253
254# DHCP TFTP Server Address, RFC5859
255define 150	array ipaddress		tftp_servers
256
257# Options 151-157 are used for Lease Query, RFC6926 and not for dhcpcd
258# Options 158-174 are unused, RFC3942
259# Options 175-177 are tentativel assigned for Etherboot
260# Options 178-207 are unused, RFC3942
261
262# DHCP PXELINUX, RFC5071
263define 208	binhex			pxelinux_magic
264define 209	string			config_file
265define 210	string			path_prefix
266define 211	uint32			reboot_time
267
268# DHCP IPv6 Rapid Deployment on IPv4 Infrastructures, RFC5969
269define 212	rfc5969			sixrd
270
271# DHCP Access Network Domain Name, RFC5986
272define 213	domain			access_domain
273
274# Options 214-219 are unused, RFC3942
275
276# DHCP Subnet Allocation, RFC6656
277# Option 220 looks specific to Cisco hardware.
278
279# DHCP Virtual Subnet Selection, RFC6607
280define 221	encap			vss
281encap 0		string			nvt
282encap 1		binhex			vpn_id
283encap 255	flag			global
284
285# Web Proxy Auto-Discovery
286define 252  string          wpad_url
287
288# Options 222 and 223 are unused, RFC3942
289# Options 224-254 are reserved for Private Use
290# Option 255 End
291
292##############################################################################
293# DHCPv6 options, RFC3315
294define6 1	binhex			client_id
295define6 2	binhex			server_id
296
297define6 3	norequest index embed	ia_na
298embed		binhex:4		iaid
299embed		uint32			t1
300embed		uint32			t2
301encap 5		option
302encap 13	option
303
304define6 4	norequest index embed	ia_ta
305embed		uint32			iaid
306encap 5		option
307encap 13	option
308
309define6 5	norequest index embed	ia_addr
310embed		ip6address		ia_addr
311embed		uint32			pltime
312embed		uint32			vltime
313encap 13	option
314
315define6 6	array uint16		option_request
316define6 7	byte			preference
317define6 8	uint16			elased_time
318define6 9	binhex			dhcp_relay_msg
319
320# Option 10 is unused
321
322define6 11	embed			auth
323embed		byte			protocol
324embed		byte			algorithm
325embed		byte			rdm
326embed		binhex:8		replay
327embed		binhex			information
328
329define6 12	ip6address		unicast
330
331define6 13	norequest embed		status_code
332embed		uint16			status_code
333embed		string			message
334
335define6 14	norequest flag		rapid_commit
336define6 15	binhex			user_class
337
338define6 16	binhex			vivco
339define6 17	embed			vivso
340embed		uint32			enterprise_number
341# Vendor options are shared between DHCP/DHCPv6
342# Their code is matched to the enterprise number defined above
343# See the end of this file for an example
344
345define6 18	binhex			interface_id
346define6 19	byte			reconfigure_msg
347define6 20	flag			reconfigure_accept
348
349# DHCPv6 Session Initiation Protocol Options, RFC3319
350define6 21	array domain		sip_servers_names
351define6 22	array ip6address	sip_servers_addresses
352
353# DHCPv6 DNS Configuration Options, RFC3646
354define6 23	array ip6address	name_servers
355define6 24	array domain		domain_search
356
357# DHCPv6 Prefix Options, RFC6603
358define6 25	norequest index embed	ia_pd
359embed		binhex:4		iaid
360embed		uint32			t1
361embed		uint32			t2
362encap 26	option
363define6 26	index embed		prefix
364embed		uint32			pltime
365embed		uint32			vltime
366embed		byte			length
367embed		ip6address		prefix
368encap 13	option
369encap 67	option
370
371# DHCPv6 Network Information Service Options, RFC3898
372define6 27	array ip6address	nis_servers
373define6 28	array ip6address	nisp_servers
374define6 29	string			nis_domain_name
375define6 30	string			nisp_domain_name
376
377# DHCPv6 Simple Network Time Protocol Servers Option, RFC4075
378define6 31	array ip6address	sntp_servers
379
380# DHCPv6 Information Refresh Time, RFC4242
381define6 32	uint32			info_refresh_time
382
383# DHCPv6 Broadcast and Multicast Control Server, RFC4280
384define6 33	array domain		bcms_server_d
385define6 34	array ip6address	bcms_server_a
386
387# DHCP Civic Addresses Configuration Information, RFC4776
388define6 36	encap			geoconf_civic
389embed		byte			what
390embed		uint16			country_code
391# The rest of this option is not supported
392
393# DHCP Relay Agent Remote-ID, RFC4649
394define6 37	embed			remote_id
395embed		uint32			enterprise_number
396embed		binhex			remote_id
397
398# DHCP Relay Agent Subscriber-ID, RFC4580
399define6 38	binhex			subscriber_id
400
401# DHCPv6 Fully Qualified Domain Name, RFC4704
402define6 39	embed			fqdn
403embed		byte			flags
404embed		domain			fqdn
405
406# DHCPv6 PANA Authentication Agnet, RC5192
407define6 40	array ip6address	pana_agent
408
409# DHCPv6 Timezone options, RFC4883
410define6 41	string			posix_timezone
411define6 42	string			tzdb_timezone
412
413# DHCPv6 Relay Agent Echo Request
414define6 43	array uint16		ero
415
416# Options 44-48 are used for Lease Query, RFC5007 and not for dhcpcd
417
418# DHCPv6 Home Info Discovery in MIPv6, RFC6610
419define6 49	domain			mip6_hnidf
420define6 50	encap			mip6_vdinf
421encap 71	option
422encap 72	option
423encap 73	option
424
425# DHCPv6 Lost Server, RFC5223
426define6 51	domain			lost_server
427
428# DHCPv6 CAPWAP, RFC5417
429define6 52	array ip6address	capwap_ac
430
431# DHCPv6 Relay-ID, RFC5460
432define6 53	binhex			relay_id
433
434# DHCP Mobility Services, RFC5678
435define6 54	encap			mos_ip
436encap 1		array ip6address	is
437encap 2		array ip6address	cs
438encap 3		array ip6address	es
439define6 55 	encap			mos_domain
440encap 1		domain			is
441encap 2		domain			cs
442encap 3		domain			es
443
444# DHCPv6 Network Time Protocol Server, RFC5908
445define6 56	encap			ntp_server
446encap 1		ip6address		addr
447encap 2		ip6address		mcast_addr
448encap 3		ip6address		fqdn
449
450# DHCPv6 LIS Discovery, RFC5986
451define6 57	domain			access_domain
452
453# DHCPv6 SIP UA, RFC6011
454define6 58	array domain		sip_ua_cs_list
455
456# DHCPv6 Network Boot, RFC5970
457define6 59	string			bootfile_url
458# We presently cannot decode bootfile_param
459define6 60	binhex			bootfile_param
460define6 61	array uint16		architecture_types
461define6 62	embed			nii
462embed		byte			type
463embed		byte			major
464embed		byte			minor
465
466# DHCPv6 Coordinate LCI, RFC6225
467# We have no means of expressing 6 bit lengths
468define6 63	binhex			geoloc
469
470# DHCPv6 AFTR-Name, RFC6334
471define6 64	domain			aftr_name
472
473# DHCPv6 Prefix Exclude Option, RFC6603
474define6 67	embed			pd_exclude
475embed		byte			prefix_len
476embed		binhex			subnetID
477
478# DHCPv6 Home Info Discovery in MIPv6, RFC6610
479define6 69	encap			mip6_idinf
480encap 71	option
481encap 72	option
482encap 73	option
483define6 70	encap			mip6_udinf
484encap 71	option
485encap 72	option
486encap 73	option
487define6	71	embed			mip6_hnp
488embed		byte			prefix_len
489embed		ip6address		prefix
490define6 72	ip6address		mip6_haa
491define6 73	domain			mip6_haf
492
493# DHCPv6 RDNSS Selection for MIF Nodes, RFC6731
494define6 74	embed			rdnss_selection
495embed		ip6address		server
496embed		byte			prf
497embed		array domain		domains
498
499# DHCPv6 Kerberos, RFC6784
500define6 75	string			krb_principal_name
501define6 76	string			krb_realm_name
502define6 78	embed			krb_kdc
503embed		uint16			priority
504embed		uint16			weight
505embed		byte			transport_type
506embed		uint16			port
507embed		ip6address		address
508embed		string			realm_name
509
510# DHCPv6 Client Link-Layer Address, RFC6939
511# Section 7 states that clients MUST ignore the option 79
512
513# DHCPv6 Relay-Triggered Reconfiguraion, RFC6977
514define6 80	ip6address		link_address
515
516# DHCPv6 Radius, RFC7037
517# Section 7 states that clients MUST ignore the option 81
518
519# DHCPv6 SOL_MAX_RT, RFC7083
520define6 82	request uint32		sol_max_rt
521define6	83	request uint32		inf_max_rt
522
523# DHCPv6 Address Selection Policy
524# Currently not supported
525
526# Options 86-65535 are unasssinged
527
528##############################################################################
529# Vendor-Identifying Vendor Options
530# An example:
531#vendopt 12345	encap			frobozzco
532#encap 1	string			maze_location
533#encap 2	byte			grue_probability
534