1# Copyright (c) 2006-2021 Roy Marples <roy@marples.name>
2# All rights reserved
3
4# Bare essentials for automatic IP configuration
5
6##############################################################################
7# DHCP RFC2132 options unless otheriwse stated
8define 1	request ipaddress	subnet_mask
9# RFC3442 states that the CSR has to come before all other routes
10# For completeness we also specify static routes then routers
11define 121	rfc3442			classless_static_routes
12define 3	request array ipaddress	routers
13define 6	array ipaddress		domain_name_servers
14define 12	dname			host_name
15define 15	array dname		domain_name
16define 26	uint16			interface_mtu
17define 28	request ipaddress	broadcast_address
18define 33	request array ipaddress	static_routes
19define 50	ipaddress		dhcp_requested_address
20define 51	request uint32		dhcp_lease_time
21define 52	byte			dhcp_option_overload
22define 53	byte			dhcp_message_type
23define 54	ipaddress		dhcp_server_identifier
24define 55	array byte		dhcp_parameter_request_list
25define 56	string			dhcp_message
26define 57	uint16			dhcp_max_message_size
27define 58	request uint32		dhcp_renewal_time
28define 59	request uint32		dhcp_rebinding_time
29define 60	string			vendor_class_identifier
30define 61	binhex			dhcp_client_identifier
31
32# DHCP Rapid Commit, RFC4039
33define 80	norequest flag		rapid_commit
34
35# DHCP Fully Qualified Domain Name, RFC4702
36define 81	embed			fqdn
37embed		bitflags=0000NEOS	flags
38embed		byte			rcode1
39embed		byte			rcode2
40# dhcpcd always sets the E bit which means the fqdn itself is always
41# RFC1035 encoded.
42# The server MUST use the encoding as specified by the client as noted
43# in RFC4702 Section 2.1.
44embed		optional domain		fqdn
45
46# DHCP Domain Search, RFC3397
47define 119	array domain		domain_search
48
49# Option 249 is an IANA assigned private number used by Windows DHCP servers
50# to provide the exact same information as option 121, classless static routes
51define 249	rfc3442			ms_classless_static_routes
52
53##############################################################################
54# ND6 options, RFC4861
55definend 1	binhex			source_address
56definend 2	binhex			target_address
57
58definend 3	index embed		prefix_information
59embed		byte			length
60embed		bitflags=LAH		flags
61embed		uint32			vltime
62embed		uint32			pltime
63embed		uint32			reserved
64embed		array ip6address	prefix
65
66# option 4 is only for Redirect messages
67
68definend 5	embed			mtu
69embed		uint16			reserved
70embed		uint32			mtu
71
72# ND6 options, RFC6101
73definend 25	index embed		rdnss
74embed		uint16			reserved
75embed		uint32			lifetime
76embed		array ip6address	servers
77
78definend 31	index embed		dnssl
79embed		uint16			reserved
80embed		uint32			lifetime
81embed		domain			search
82
83##############################################################################
84# DHCPv6 options, RFC3315
85define6 1	binhex			client_id
86define6 2	binhex			server_id
87
88define6 3	norequest index embed	ia_na
89embed		binhex:4		iaid
90embed		uint32			t1
91embed		uint32			t2
92encap 5		option
93encap 13	option
94
95define6 4	norequest index embed	ia_ta
96embed		uint32			iaid
97encap 5		option
98encap 13	option
99
100define6 5	norequest index embed	ia_addr
101embed		ip6address		ia_addr
102embed		uint32			pltime
103embed		uint32			vltime
104encap 13	option
105
106define6 12	ip6address		unicast
107
108define6 13	norequest embed		status_code
109embed		uint16			status_code
110embed		optional string		message
111
112define6 18	binhex			interface_id
113define6 19	byte			reconfigure_msg
114define6 20	flag			reconfigure_accept
115
116# DHCPv6 DNS Configuration Options, RFC3646
117define6 23	array ip6address	name_servers
118define6 24	array domain		domain_search
119
120# DHCPv6 Fully Qualified Domain Name, RFC4704
121define6 39	embed			fqdn
122embed		bitflags=00000NOS	flags
123embed		optional domain		fqdn
124
125# DHCPv6 SOL_MAX_RT, RFC7083
126define6 82	request uint32		sol_max_rt
127define6	83	request uint32		inf_max_rt
128