Kea 1.5.0
dhcp4.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2004-2018 Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (c) 1995-2003 by Internet Software Consortium
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * Internet Systems Consortium, Inc.
10 * 950 Charter Street
11 * Redwood City, CA 94063
12 * <info@isc.org>
13 * https://www.isc.org/
14 *
15 * This software has been written for Internet Systems Consortium
16 * by Ted Lemon in cooperation with Vixie Enterprises. To learn more
17 * about Internet Systems Consortium, see ``https://www.isc.org''.
18 * To learn more about Vixie Enterprises, see ``http://www.vix.com''.
19 */
20
21/*
22 * NOTE: This files is imported from ISC DHCP. It uses C notation.
23 * Format kept for easier merge.
24 */
25
26#ifndef DHCP_H
27#define DHCP_H
28
29#include <stdint.h>
30
37
38namespace isc {
39namespace dhcp {
40
41/* IPv4 Broadcast address */
42#define DHCP_IPV4_BROADCAST_ADDRESS "255.255.255.255"
43
44/* BOOTP (rfc951) message types */
47 BOOTREPLY = 2
48};
49
50/* Possible values for flags field... */
51static const uint16_t BOOTP_BROADCAST = 32768L;
52
54enum HType {
57 HTYPE_DOCSIS = 1,
63 HTYPE_FDDI = 8
65};
66
67/* DHCP Option codes: */
149// DHO_RAPID_COMMIT = 80,
152// DHO_ISNS = 83,
153 // 84 is removed/unassigned
159 DHO_AUTHENTICATE = 90, /* RFC3118, was 210 */
162 DHO_SYSTEM = 93, /* RFC4578 */
163 DHO_NDI = 94, /* RFC4578 */
164// DHO_LDAP = 95,
165 // 96 is removed/unassigned
166 DHO_UUID_GUID = 97, /* RFC4578 */
171 // 102-111 are removed/unassigned
174 DHO_URL = 114,
175 // 115 is removed/unassigned
178 DHO_SUBNET_SELECTION = 118, /* RFC3011 */
179 DHO_DOMAIN_SEARCH = 119, /* RFC3397 */
180// DHO_SIP_SERVERS = 120,
181// DHO_CLASSLESS_STATIC_ROUTE = 121,
182// DHO_CCC = 122,
183// DHO_GEOCONF = 123,
186 // 126-127 are removed/unassigned
187 // 128-135 have multiple definitions including PXE
191// DHO_IPV4_ADDR_MOS = 139,
192// DHO_IPV4_FQDN_MOS = 140,
194// DHO_IPV4_ADDR_ANDSF = 142,
195 // 143 is removed/unassigned
196// DHO_GEOLOC = 144,
197// DHO_FORCERENEW_NONCE_CAPABLE = 145,
199 // 147-149 are removed/unassigned
200 // 150 have multiple definitions
201// DHO_STATUS_CODE = 151,
202// DHO_BASE_TIME = 152,
203// DHO_START_TIME_OF_STATE = 153,
204// DHO_QUERY_START_TIME = 154,
205// DHO_QUERY_END_TIME = 155,
206// DHO_DHCP_STATE = 156,
207// DHO_DATA_SOURCE = 157,
208// DHO_V4_PCP_SERVER = 158,
211 // 161-209 are removed/unassigned
212// DHO_PATH_PREFIX = 210,
213// DHO_REBOOT_TIME = 211,
214 DHO_6RD = 212,
216 // 214-219 are removed/unassigned
217// DHO_SUBNET_ALLOC = 220,
218// DHO_VSS = 221,
219 // 222-223 are removed/unassigned
220 // 224-254 are reserved for private use
221
222 DHO_END = 255
224
225/* DHCP message types. */
236// DHCPFORCERENEW = 9,
243// DHCPACTIVELEASEQUERY = 16,
248
249static const uint16_t DHCP4_CLIENT_PORT = 68;
250static const uint16_t DHCP4_SERVER_PORT = 67;
251
254static const uint32_t DHCP_OPTIONS_COOKIE = 0x63825363;
255
256/* Relay Agent Information option subtypes: */
257
258static const uint16_t RAI_OPTION_AGENT_CIRCUIT_ID = 1; // RFC3046
259static const uint16_t RAI_OPTION_REMOTE_ID = 2; // RFC3046
260/* option 3 is reserved and will never be assigned */
261static const uint16_t RAI_OPTION_DOCSIS_DEVICE_CLASS = 4; // RFC3256
262static const uint16_t RAI_OPTION_LINK_SELECTION = 5; // RFC3527
263static const uint16_t RAI_OPTION_SUBSCRIBER_ID = 6; //RFC3993
264static const uint16_t RAI_OPTION_RADIUS = 7; //RFC4014
265static const uint16_t RAI_OPTION_AUTH = 8; //RFC4030
266static const uint16_t RAI_OPTION_VSI = 9; // RFC4243
267static const uint16_t RAI_OPTION_RELAY_FLAGS = 10; // RFC5010
268static const uint16_t RAI_OPTION_SERVER_ID_OVERRIDE = 11; // RFC5107
269static const uint16_t RAI_OPTION_RELAY_ID = 12; //RFC6925
270static const uint16_t RAI_OPTION_ACCESS_TECHNO_TYPE = 13; // RFC7839
271static const uint16_t RAI_OPTION_ACCESS_NETWORK_NAME = 14; // RFC7839
272static const uint16_t RAI_OPTION_ACCESS_POINT_NAME = 15; // RFC7839
273static const uint16_t RAI_OPTION_ACCESS_POINT_BSSID = 16; // RFC7839
274static const uint16_t RAI_OPTION_OPERATOR_ID = 17; // RFC7839
275static const uint16_t RAI_OPTION_OPERATOR_REALM = 18; // RFC7839
276static const uint16_t RAI_OPTION_RELAY_PORT = 19; // RFC8357
277static const uint16_t RAI_OPTION_VIRTUAL_SUBNET_SELECT = 151; //RFC6607
278static const uint16_t RAI_OPTION_VIRTUAL_SUBNET_SELECT_CTRL = 152; //RFC6607
279
280// TODO: Following are leftovers from dhcp.h import from ISC DHCP
281// They will be converted to C++-style defines once they will start
282// to be used.
283#if 0
284/* FQDN suboptions: */
285#define FQDN_NO_CLIENT_UPDATE 1
286#define FQDN_SERVER_UPDATE 2
287#define FQDN_ENCODED 3
288#define FQDN_RCODE1 4
289#define FQDN_RCODE2 5
290#define FQDN_HOSTNAME 6
291#define FQDN_DOMAINNAME 7
292#define FQDN_FQDN 8
293#define FQDN_SUBOPTION_COUNT 8
294
295/* Enterprise Suboptions: */
296#define VENDOR_ISC_SUBOPTIONS 2495
297
298#endif
299
300/* Client identifier types */
301static const uint8_t CLIENT_ID_OPTION_TYPE_DUID = 255;
302
303} // end of isc::dhcp namespace
304} // end of isc namespace
305
306#endif /* DHCP_H */
DHCPOptionType
Definition: dhcp4.h:68
@ DHO_NNTP_SERVER
Definition: dhcp4.h:140
@ DHO_NON_LOCAL_SOURCE_ROUTING
Definition: dhcp4.h:89
@ DHO_STREETTALK_SERVER
Definition: dhcp4.h:144
@ DHO_IMPRESS_SERVERS
Definition: dhcp4.h:79
@ DHO_DHCP_MAX_MESSAGE_SIZE
Definition: dhcp4.h:126
@ DHO_DHCP_MESSAGE
Definition: dhcp4.h:125
@ DHO_DIRECTORY_AGENT
Definition: dhcp4.h:147
@ DHO_BOOT_SIZE
Definition: dhcp4.h:82
@ DHO_NETBIOS_NODE_TYPE
Definition: dhcp4.h:115
@ DHO_FONT_SERVERS
Definition: dhcp4.h:117
@ DHO_SUBNET_MASK
Definition: dhcp4.h:70
@ DHO_6RD
Definition: dhcp4.h:214
@ DHO_ROUTERS
Definition: dhcp4.h:72
@ DHO_NWIP_DOMAIN_NAME
Definition: dhcp4.h:131
@ DHO_NAME_SERVICE_SEARCH
Definition: dhcp4.h:177
@ DHO_LOG_SERVERS
Definition: dhcp4.h:76
@ DHO_DOMAIN_NAME
Definition: dhcp4.h:84
@ DHO_NETBIOS_SCOPE
Definition: dhcp4.h:116
@ DHO_TCODE
Definition: dhcp4.h:170
@ DHO_TFTP_SERVER_NAME
Definition: dhcp4.h:135
@ DHO_V4_PORTPARAMS
Definition: dhcp4.h:209
@ DHO_DOMAIN_NAME_SERVERS
Definition: dhcp4.h:75
@ DHO_IP_FORWARDING
Definition: dhcp4.h:88
@ DHO_VENDOR_CLASS_IDENTIFIER
Definition: dhcp4.h:129
@ DHO_TRAILER_ENCAPSULATION
Definition: dhcp4.h:103
@ DHO_TIME_SERVERS
Definition: dhcp4.h:73
@ DHO_SERVICE_SCOPE
Definition: dhcp4.h:148
@ DHO_GEOCONF_CIVIC
Definition: dhcp4.h:168
@ DHO_NETINFO_ADDR
Definition: dhcp4.h:172
@ DHO_DHCP_REBINDING_TIME
Definition: dhcp4.h:128
@ DHO_DHCP_MESSAGE_TYPE
Definition: dhcp4.h:122
@ DHO_INTERFACE_MTU
Definition: dhcp4.h:95
@ DHO_UUID_GUID
Definition: dhcp4.h:166
@ DHO_DHCP_SERVER_IDENTIFIER
Definition: dhcp4.h:123
@ DHO_SIP_UA_CONF_SERVICE_DOMAINS
Definition: dhcp4.h:193
@ DHO_HOST_NAME
Definition: dhcp4.h:81
@ DHO_DEFAULT_TCP_TTL
Definition: dhcp4.h:106
@ DHO_STATIC_ROUTES
Definition: dhcp4.h:102
@ DHO_DHCP_CLIENT_IDENTIFIER
Definition: dhcp4.h:130
@ DHO_COOKIE_SERVERS
Definition: dhcp4.h:77
@ DHO_ROOT_PATH
Definition: dhcp4.h:86
@ DHO_NTP_SERVERS
Definition: dhcp4.h:111
@ DHO_BOOT_FILE_NAME
Definition: dhcp4.h:136
@ DHO_VIVCO_SUBOPTIONS
Definition: dhcp4.h:184
@ DHO_AUTO_CONFIG
Definition: dhcp4.h:176
@ DHO_ROUTER_SOLICITATION_ADDRESS
Definition: dhcp4.h:101
@ DHO_PATH_MTU_AGING_TIMEOUT
Definition: dhcp4.h:93
@ DHO_NDI
Definition: dhcp4.h:163
@ DHO_RDNSS_SELECT
Definition: dhcp4.h:198
@ DHO_DHCP_REQUESTED_ADDRESS
Definition: dhcp4.h:119
@ DHO_NISP_SERVER_ADDR
Definition: dhcp4.h:134
@ DHO_RESOURCE_LOCATION_SERVERS
Definition: dhcp4.h:80
@ DHO_NETINFO_TAG
Definition: dhcp4.h:173
@ DHO_END
Definition: dhcp4.h:222
@ DHO_PAD
Definition: dhcp4.h:69
@ DHO_NDS_TREE_NAME
Definition: dhcp4.h:155
@ DHO_ALL_SUBNETS_LOCAL
Definition: dhcp4.h:96
@ DHO_TCP_KEEPALIVE_INTERVAL
Definition: dhcp4.h:107
@ DHO_DHCP_OPTION_OVERLOAD
Definition: dhcp4.h:121
@ DHO_SMTP_SERVER
Definition: dhcp4.h:138
@ DHO_POLICY_FILTER
Definition: dhcp4.h:90
@ DHO_DHCP_AGENT_OPTIONS
Definition: dhcp4.h:151
@ DHO_TIME_OFFSET
Definition: dhcp4.h:71
@ DHO_PATH_MTU_PLATEAU_TABLE
Definition: dhcp4.h:94
@ DHO_BCMCS_DOMAIN_NAME_LIST
Definition: dhcp4.h:157
@ DHO_PERFORM_MASK_DISCOVERY
Definition: dhcp4.h:98
@ DHO_WWW_SERVER
Definition: dhcp4.h:141
@ DHO_SYSTEM
Definition: dhcp4.h:162
@ DHO_ROUTER_DISCOVERY
Definition: dhcp4.h:100
@ DHO_NDS_SERVERS
Definition: dhcp4.h:154
@ DHO_ASSOCIATED_IP
Definition: dhcp4.h:161
@ DHO_VENDOR_ENCAPSULATED_OPTIONS
Definition: dhcp4.h:112
@ DHO_NDS_CONTEXT
Definition: dhcp4.h:156
@ DHO_NAME_SERVERS
Definition: dhcp4.h:74
@ DHO_CLIENT_LAST_TRANSACTION_TIME
Definition: dhcp4.h:160
@ DHO_SUBNET_SELECTION
Definition: dhcp4.h:178
@ DHO_DOMAIN_SEARCH
Definition: dhcp4.h:179
@ DHO_IRC_SERVER
Definition: dhcp4.h:143
@ DHO_NIS_DOMAIN
Definition: dhcp4.h:109
@ DHO_LPR_SERVERS
Definition: dhcp4.h:78
@ DHO_DEFAULT_IP_TTL
Definition: dhcp4.h:92
@ DHO_NETBIOS_DD_SERVER
Definition: dhcp4.h:114
@ DHO_HOME_AGENT_ADDRS
Definition: dhcp4.h:137
@ DHO_URL
Definition: dhcp4.h:174
@ DHO_BCMCS_IPV4_ADDR
Definition: dhcp4.h:158
@ DHO_MERIT_DUMP
Definition: dhcp4.h:83
@ DHO_V4_LOST
Definition: dhcp4.h:189
@ DHO_V4_CAPTIVE_PORTAL
Definition: dhcp4.h:210
@ DHO_TCP_KEEPALIVE_GARBAGE
Definition: dhcp4.h:108
@ DHO_X_DISPLAY_MANAGER
Definition: dhcp4.h:118
@ DHO_IEEE802_3_ENCAPSULATION
Definition: dhcp4.h:105
@ DHO_USER_AUTH
Definition: dhcp4.h:167
@ DHO_STDASERVER
Definition: dhcp4.h:145
@ DHO_DHCP_PARAMETER_REQUEST_LIST
Definition: dhcp4.h:124
@ DHO_PCODE
Definition: dhcp4.h:169
@ DHO_USER_CLASS
Definition: dhcp4.h:146
@ DHO_ARP_CACHE_TIMEOUT
Definition: dhcp4.h:104
@ DHO_POP3_SERVER
Definition: dhcp4.h:139
@ DHO_NWIP_SUBOPTIONS
Definition: dhcp4.h:132
@ DHO_CAPWAP_AC_V4
Definition: dhcp4.h:190
@ DHO_MAX_DGRAM_REASSEMBLY
Definition: dhcp4.h:91
@ DHO_FQDN
Definition: dhcp4.h:150
@ DHO_EXTENSIONS_PATH
Definition: dhcp4.h:87
@ DHO_MASK_SUPPLIER
Definition: dhcp4.h:99
@ DHO_NIS_SERVERS
Definition: dhcp4.h:110
@ DHO_FINGER_SERVER
Definition: dhcp4.h:142
@ DHO_BROADCAST_ADDRESS
Definition: dhcp4.h:97
@ DHO_AUTHENTICATE
Definition: dhcp4.h:159
@ DHO_VIVSO_SUBOPTIONS
Definition: dhcp4.h:185
@ DHO_NISP_DOMAIN_NAME
Definition: dhcp4.h:133
@ DHO_DHCP_RENEWAL_TIME
Definition: dhcp4.h:127
@ DHO_NETBIOS_NAME_SERVERS
Definition: dhcp4.h:113
@ DHO_SWAP_SERVER
Definition: dhcp4.h:85
@ DHO_PANA_AGENT
Definition: dhcp4.h:188
@ DHO_DHCP_LEASE_TIME
Definition: dhcp4.h:120
@ DHO_V4_ACCESS_DOMAIN
Definition: dhcp4.h:215
BOOTPTypes
Definition: dhcp4.h:45
@ BOOTREQUEST
Definition: dhcp4.h:46
@ BOOTREPLY
Definition: dhcp4.h:47
DHCPMessageType
Definition: dhcp4.h:226
@ DHCPLEASEQUERYSTATUS
Definition: dhcp4.h:244
@ DHCPTLS
Definition: dhcp4.h:245
@ DHCPREQUEST
Definition: dhcp4.h:230
@ DHCPLEASEQUERYDONE
Definition: dhcp4.h:242
@ DHCPLEASEUNKNOWN
Definition: dhcp4.h:239
@ DHCP_TYPES_EOF
Definition: dhcp4.h:246
@ DHCPOFFER
Definition: dhcp4.h:229
@ DHCPLEASEACTIVE
Definition: dhcp4.h:240
@ DHCPLEASEQUERY
Definition: dhcp4.h:237
@ DHCPDECLINE
Definition: dhcp4.h:231
@ DHCPNAK
Definition: dhcp4.h:233
@ DHCPRELEASE
Definition: dhcp4.h:234
@ DHCPLEASEUNASSIGNED
Definition: dhcp4.h:238
@ DHCPDISCOVER
Definition: dhcp4.h:228
@ DHCPBULKLEASEQUERY
Definition: dhcp4.h:241
@ DHCP_NOTYPE
Message Type option missing.
Definition: dhcp4.h:227
@ DHCPINFORM
Definition: dhcp4.h:235
@ DHCPACK
Definition: dhcp4.h:232
HType
Possible values for hardware type (htype) field.
Definition: dhcp4.h:54
@ HTYPE_UNDEFINED
not specified or undefined
Definition: dhcp4.h:55
@ HTYPE_IEEE802
IEEE 802.2 Token Ring.
Definition: dhcp4.h:62
@ HTYPE_FDDI
FDDI.
Definition: dhcp4.h:63
@ HTYPE_DOCSIS
The traffic captures we have from cable modems as well as this list by IANA: http://www....
Definition: dhcp4.h:57
@ HTYPE_ETHER
Ethernet 10Mbps.
Definition: dhcp4.h:56
Defines the logger used by the top-level component of kea-dhcp-ddns.