# Copyright (c) 2006-2015 Roy Marples
# All rights reserved

# DHCP option definitions for dhcpcd(8)
# These are used to translate DHCP options into shell variables
# for use in dhcpcd-run-hooks(8)
# See dhcpcd.conf(5) for details

##############################################################################
# DHCP RFC2132 options unless otheriwse stated
define 1	request ipaddress	subnet_mask
# RFC3442 states that the CSR has to come before all other routes
# For completeness we also specify static routes then routers
define 121	rfc3442			classless_static_routes
# Option 249 is an IANA assigned private number used by Windows DHCP servers
# to provide the exact same information as option 121, classless static routes
define 249	rfc3442			ms_classless_static_routes
define 33	request array ipaddress	static_routes
define 3	request array ipaddress	routers
define 2	uint32			time_offset
define 4	array ipaddress		time_servers
define 5	array ipaddress		ien116_name_servers
define 6	array ipaddress		domain_name_servers
define 7	array ipaddress		log_servers
define 8	array ipaddress		cookie_servers
define 9	array ipaddress		lpr_servers
define 10	array ipaddress		impress_servers
define 11	array ipaddress		resource_location_servers
define 12	dname			host_name
define 13	uint16			boot_size
define 14	string			merit_dump
# Technically domain_name is not an array, but many servers expect clients
# to treat it as one.
define 15	array dname		domain_name
define 16	ipaddress		swap_server
define 17	string			root_path
define 18	string			extensions_path
define 19	byte			ip_forwarding
define 20	byte			non_local_source_routing
define 21	array ipaddress		policy_filter
define 22	int16			max_dgram_reassembly
define 23	uint16			default_ip_ttl
define 24	uint32			path_mtu_aging_timeout
define 25	array uint16		path_mtu_plateau_table
define 26	uint16			interface_mtu
define 27	byte			all_subnets_local
define 28	request ipaddress	broadcast_address
define 29	byte			perform_mask_discovery
define 30	byte			mask_supplier
define 31	byte			router_discovery
define 32	ipaddress		router_solicitation_address
define 34	byte			trailer_encapsulation
define 35	uint32			arp_cache_timeout
define 36	uint16			ieee802_3_encapsulation
define 37	byte			default_tcp_ttl
define 38	uint32			tcp_keepalive_interval
define 39	byte			tcp_keepalive_garbage
define 40	string			nis_domain
define 41	array ipaddress		nis_servers
define 42	array ipaddress		ntp_servers
define 43	binhex			vendor_encapsulated_options
define 44	array ipaddress		netbios_name_servers
define 45	ipaddress		netbios_dd_server
define 46	byte			netbios_node_type
define 47	string			netbios_scope
define 48	array ipaddress		font_servers
define 49	array ipaddress		x_display_manager
define 50	ipaddress		dhcp_requested_address
define 51	request uint32		dhcp_lease_time
define 52	byte			dhcp_option_overload
define 53	byte			dhcp_message_type
define 54	ipaddress		dhcp_server_identifier
define 55	array byte		dhcp_parameter_request_list
define 56	string			dhcp_message
define 57	uint16			dhcp_max_message_size
define 58	request uint32		dhcp_renewal_time
define 59	request uint32		dhcp_rebinding_time
define 60	binhex			vendor_class_identifier
define 61	binhex			dhcp_client_identifier
define 64	string			nisplus_domain
define 65	array ipaddress		nisplus_servers
define 66	dname			tftp_server_name
define 67	string			bootfile_name
define 68	array ipaddress		mobile_ip_home_agent
define 69	array ipaddress		smtp_server
define 70	array ipaddress		pop_server
define 71	array ipaddress		nntp_server
define 72	array ipaddress		www_server
define 73	array ipaddress		finger_server
define 74	array ipaddress		irc_server
define 75	array ipaddress		streettalk_server
define 76	array ipaddress		streettalk_directory_assistance_server

# DHCP User Class, RFC3004
define 77	binhex			user_class

# DHCP SLP Directory Agent, RFC2610
define 78	embed			slp_agent
embed		byte			mandatory
embed		array ipaddress		address
define 79	embed			slp_service
embed		byte			mandatory
embed		ascii			scope_list

# DHCP Rapid Commit, RFC4039
define 80	norequest flag		rapid_commit

# DHCP Fully Qualified Domain Name, RFC4702
define 81	embed			fqdn
embed		byte			flags
embed		byte			rcode1
embed		byte			rcode2
embed		domain			fqdn

# Option 82 is for Relay Agents and DHCP servers

# Options 83 ad 84 are unused, RFC3679

# DHCP Novell Directory Services, RFC2241
define 85	array ipaddress		nds_servers
define 86	raw			nds_tree_name
define 87	raw			nds_context

# DHCP Broadcast and Multicast Control Server, RFC4280
define 88	array domain		bcms_controller_names
define 89	array ipaddress		bcms_controller_address

# DHCP Authentication, RFC3118
define 90	embed			auth
embed		byte			protocol
embed		byte			algorithm
embed		byte			rdm
embed		binhex:8		replay
embed		binhex			information

# DHCP Leasequery, RFC4388
define 91	uint32			client_last_transaction_time
define 92	array ipaddress		associated_ip

# DHCP Options for Intel Preboot eXecution Environent (PXE), RFC4578
# Options 93, 94 and 97 are used but of no use to dhcpcd

# Option 95 used by Apple but never published RFC3679
# Option 96 is unused, RFC3679

# DHCP The Open Group's User Authentication Protocol, RFC2485
define 98	string			uap_servers

# DHCP Civic Addresses Configuration Information, RFC4776
define 99	encap			geoconf_civic
embed		byte			what
embed		uint16			country_code
# The rest of this option is not supported

# DHCP Timezone, RFC4883
define 100	string			posix_timezone
define 101	string			tzdb_timezone

# Options 102-115 are unused, RFC3679

# DHCP Auto-Configuration, RFC2563
define 116	byte			auto_configure

# DHCP Name Service Search, RFC2937
define 117	array uint16		name_service_search

# DHCP Subnet Selection, RFC3011
define 118	ipaddress		subnet_selection

# DHCP Domain Search, RFC3397
define 119	array domain		domain_search

# DHCP Session Initiated Protocol Servers, RFC3361
define 120	rfc3361			sip_server

# Option 121 is defined at the top of this file

# DHCP CableLabs Client, RFC3495
define 122	encap			tsp
encap 1		ipaddress		dhcp_server
encap 2		ipaddress		dhcp_secondary_server
encap 3		rfc3361			provisioning_server
encap 4		embed			as_req_as_rep_backoff
embed		uint32			nominal
embed		uint32			maximum
embed		uint32			retry
encap 5		embed			ap_req_ap_rep_backoff
embed		uint32			nominal
embed		uint32			maximum
embed		uint32			retry
encap 6		domain			kerberos_realm
encap 7		byte			ticket_granting_server_utilization
encap 8		byte			provisioning_timer

# DHCP Coordinate LCI, RFC6225
# We have no means of expressing 6 bit lengths
define 123	binhex			geoconf

# DHCP Vendor-Identifying Vendor Options, RFC3925
define 124	binhex			vivco
define 125	embed			vivso
embed		uint32			enterprise_number
# Vendor options are shared between DHCP/DHCPv6
# Their code is matched to the enterprise number defined above
# see the end of this file for an example

# Options 126 and 127 are unused, RFC3679

# DHCP Options for Intel Preboot eXecution Environent (PXE), RFC4578
# Options 128-135 are used but of no use to dhcpcd

# DHCP PANA Authentication Agent, RFC5192
define 136	array ipaddress		pana_agent

# DHCP Lost Server, RFC5223
define 137	domain			lost_server

# DHCP CAPWAP, RFC5417
define 138	array ipaddress		capwap_ac

# DHCP Mobility Services, RFC5678
define 139	encap			mos_ip
encap 1		array ipaddress		is
encap 2		array ipaddress		cs
encap 3		array ipaddress		es
define 140	encap			mos_domain
encap 1		domain			is
encap 2		domain			cs
encap 3		domain			es

# DHCP SIP UA, RFC6011
define 141	array domain		sip_ua_cs_list

# DHCP ANDSF, RFC6153
define 142	array ipaddress		andsf
define 143	array ip6address	andsf6

# DHCP Coordinate LCI, RFC6225
# We have no means of expressing 6 bit lengths
define 144	binhex			geoloc

# DHCP FORCERENEW Nonce Capability, RFC6704
define 145	array byte		forcerenew_nonce_capable

# DHCP RDNSS Selection for MIF Nodes, RFC6731
define 146	embed			rdnss_selection
embed		byte			prf
embed		ipaddress		primary
embed		ipaddress		secondary
embed		array domain		domains

# Options 147, 148 and 149 are unused, RFC3942

# DHCP TFTP Server Address, RFC5859
define 150	array ipaddress		tftp_servers

# Options 151-157 are used for Lease Query, RFC6926 and not for dhcpcd
# Options 158-174 are unused, RFC3942
# Options 175-177 are tentativel assigned for Etherboot
# Options 178-207 are unused, RFC3942

# DHCP PXELINUX, RFC5071
define 208	binhex			pxelinux_magic
define 209	string			config_file
define 210	string			path_prefix
define 211	uint32			reboot_time

# DHCP IPv6 Rapid Deployment on IPv4 Infrastructures, RFC5969
define 212	rfc5969			sixrd

# DHCP Access Network Domain Name, RFC5986
define 213	domain			access_domain

# Options 214-219 are unused, RFC3942

# DHCP Subnet Allocation, RFC6656
# Option 220 looks specific to Cisco hardware.

# DHCP Virtual Subnet Selection, RFC6607
define 221	encap			vss
encap 0		string			nvt
encap 1		binhex			vpn_id
encap 255	flag			global

# Web Proxy Auto-Discovery
define 252  string          wpad_url

# Options 222 and 223 are unused, RFC3942
# Options 224-254 are reserved for Private Use
# Option 255 End

##############################################################################
# DHCPv6 options, RFC3315
define6 1	binhex			client_id
define6 2	binhex			server_id

define6 3	norequest index embed	ia_na
embed		binhex:4		iaid
embed		uint32			t1
embed		uint32			t2
encap 5		option
encap 13	option

define6 4	norequest index embed	ia_ta
embed		uint32			iaid
encap 5		option
encap 13	option

define6 5	norequest index embed	ia_addr
embed		ip6address		ia_addr
embed		uint32			pltime
embed		uint32			vltime
encap 13	option

define6 6	array uint16		option_request
define6 7	byte			preference
define6 8	uint16			elased_time
define6 9	binhex			dhcp_relay_msg

# Option 10 is unused

define6 11	embed			auth
embed		byte			protocol
embed		byte			algorithm
embed		byte			rdm
embed		binhex:8		replay
embed		binhex			information

define6 12	ip6address		unicast

define6 13	norequest embed		status_code
embed		uint16			status_code
embed		string			message

define6 14	norequest flag		rapid_commit
define6 15	binhex			user_class

define6 16	binhex			vivco
define6 17	embed			vivso
embed		uint32			enterprise_number
# Vendor options are shared between DHCP/DHCPv6
# Their code is matched to the enterprise number defined above
# See the end of this file for an example

define6 18	binhex			interface_id
define6 19	byte			reconfigure_msg
define6 20	flag			reconfigure_accept

# DHCPv6 Session Initiation Protocol Options, RFC3319
define6 21	array domain		sip_servers_names
define6 22	array ip6address	sip_servers_addresses

# DHCPv6 DNS Configuration Options, RFC3646
define6 23	array ip6address	name_servers
define6 24	array domain		domain_search

# DHCPv6 Prefix Options, RFC6603
define6 25	norequest index embed	ia_pd
embed		binhex:4		iaid
embed		uint32			t1
embed		uint32			t2
encap 26	option
define6 26	index embed		prefix
embed		uint32			pltime
embed		uint32			vltime
embed		byte			length
embed		ip6address		prefix
encap 13	option
encap 67	option

# DHCPv6 Network Information Service Options, RFC3898
define6 27	array ip6address	nis_servers
define6 28	array ip6address	nisp_servers
define6 29	string			nis_domain_name
define6 30	string			nisp_domain_name

# DHCPv6 Simple Network Time Protocol Servers Option, RFC4075
define6 31	array ip6address	sntp_servers

# DHCPv6 Information Refresh Time, RFC4242
define6 32	uint32			info_refresh_time

# DHCPv6 Broadcast and Multicast Control Server, RFC4280
define6 33	array domain		bcms_server_d
define6 34	array ip6address	bcms_server_a

# DHCP Civic Addresses Configuration Information, RFC4776
define6 36	encap			geoconf_civic
embed		byte			what
embed		uint16			country_code
# The rest of this option is not supported

# DHCP Relay Agent Remote-ID, RFC4649
define6 37	embed			remote_id
embed		uint32			enterprise_number
embed		binhex			remote_id

# DHCP Relay Agent Subscriber-ID, RFC4580
define6 38	binhex			subscriber_id

# DHCPv6 Fully Qualified Domain Name, RFC4704
define6 39	embed			fqdn
embed		byte			flags
embed		domain			fqdn

# DHCPv6 PANA Authentication Agnet, RC5192
define6 40	array ip6address	pana_agent

# DHCPv6 Timezone options, RFC4883
define6 41	string			posix_timezone
define6 42	string			tzdb_timezone

# DHCPv6 Relay Agent Echo Request
define6 43	array uint16		ero

# Options 44-48 are used for Lease Query, RFC5007 and not for dhcpcd

# DHCPv6 Home Info Discovery in MIPv6, RFC6610
define6 49	domain			mip6_hnidf
define6 50	encap			mip6_vdinf
encap 71	option
encap 72	option
encap 73	option

# DHCPv6 Lost Server, RFC5223
define6 51	domain			lost_server

# DHCPv6 CAPWAP, RFC5417
define6 52	array ip6address	capwap_ac

# DHCPv6 Relay-ID, RFC5460
define6 53	binhex			relay_id

# DHCP Mobility Services, RFC5678
define6 54	encap			mos_ip
encap 1		array ip6address	is
encap 2		array ip6address	cs
encap 3		array ip6address	es
define6 55 	encap			mos_domain
encap 1		domain			is
encap 2		domain			cs
encap 3		domain			es

# DHCPv6 Network Time Protocol Server, RFC5908
define6 56	encap			ntp_server
encap 1		ip6address		addr
encap 2		ip6address		mcast_addr
encap 3		ip6address		fqdn

# DHCPv6 LIS Discovery, RFC5986
define6 57	domain			access_domain

# DHCPv6 SIP UA, RFC6011
define6 58	array domain		sip_ua_cs_list

# DHCPv6 Network Boot, RFC5970
define6 59	string			bootfile_url
# We presently cannot decode bootfile_param
define6 60	binhex			bootfile_param
define6 61	array uint16		architecture_types
define6 62	embed			nii
embed		byte			type
embed		byte			major
embed		byte			minor

# DHCPv6 Coordinate LCI, RFC6225
# We have no means of expressing 6 bit lengths
define6 63	binhex			geoloc

# DHCPv6 AFTR-Name, RFC6334
define6 64	domain			aftr_name

# DHCPv6 Prefix Exclude Option, RFC6603
define6 67	embed			pd_exclude
embed		byte			prefix_len
embed		binhex			subnetID

# DHCPv6 Home Info Discovery in MIPv6, RFC6610
define6 69	encap			mip6_idinf
encap 71	option
encap 72	option
encap 73	option
define6 70	encap			mip6_udinf
encap 71	option
encap 72	option
encap 73	option
define6	71	embed			mip6_hnp
embed		byte			prefix_len
embed		ip6address		prefix
define6 72	ip6address		mip6_haa
define6 73	domain			mip6_haf

# DHCPv6 RDNSS Selection for MIF Nodes, RFC6731
define6 74	embed			rdnss_selection
embed		ip6address		server
embed		byte			prf
embed		array domain		domains

# DHCPv6 Kerberos, RFC6784
define6 75	string			krb_principal_name
define6 76	string			krb_realm_name
define6 78	embed			krb_kdc
embed		uint16			priority
embed		uint16			weight
embed		byte			transport_type
embed		uint16			port
embed		ip6address		address
embed		string			realm_name

# DHCPv6 Client Link-Layer Address, RFC6939
# Section 7 states that clients MUST ignore the option 79

# DHCPv6 Relay-Triggered Reconfiguraion, RFC6977
define6 80	ip6address		link_address

# DHCPv6 Radius, RFC7037
# Section 7 states that clients MUST ignore the option 81

# DHCPv6 SOL_MAX_RT, RFC7083
define6 82	request uint32		sol_max_rt
define6	83	request uint32		inf_max_rt

# DHCPv6 Address Selection Policy
# Currently not supported

# Options 86-65535 are unasssinged

##############################################################################
# Vendor-Identifying Vendor Options
# An example:
#vendopt 12345	encap			frobozzco
#encap 1	string			maze_location
#encap 2	byte			grue_probability
