1 // Copyright 2017 Espressif Systems (Shanghai) PTE LTD
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 #pragma once
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 /** DHCP Options
20 
21     This macros are not part of the public dhcpserver.h interface.
22  **/
23 typedef enum
24 {
25     /* RFC 1497 Vendor Extensions */
26 
27     PAD = 0,
28     END = 255,
29 
30     SUBNET_MASK = 1,
31     TIME_OFFSET = 2,
32     ROUTER = 3,
33     TIME_SERVER = 4,
34     NAME_SERVER = 5,
35     DOMAIN_NAME_SERVER = 6,
36     LOG_SERVER = 7,
37     COOKIE_SERVER = 8,
38     LPR_SERVER = 9,
39     IMPRESS_SERVER = 10,
40     RESOURCE_LOCATION_SERVER = 11,
41     HOST_NAME = 12,
42     BOOT_FILE_SIZE = 13,
43     MERIT_DUMP_FILE = 14,
44     DOMAIN_NAME = 15,
45     SWAP_SERVER = 16,
46     ROOT_PATH = 17,
47     EXTENSIONS_PATH = 18,
48 
49     /* IP Layer Parameters per Host */
50 
51     IP_FORWARDING = 19,
52     NON_LOCAL_SOURCE_ROUTING = 20,
53     POLICY_FILTER = 21,
54     MAXIMUM_DATAGRAM_REASSEMBLY_SIZE = 22,
55     DEFAULT_IP_TIME_TO_LIVE = 23,
56     PATH_MTU_AGING_TIMEOUT = 24,
57     PATH_MTU_PLATEAU_TABLE = 25,
58 
59     /* IP Layer Parameters per Interface */
60 
61     INTERFACE_MTU = 26,
62     ALL_SUBNETS_ARE_LOCAL = 27,
63     BROADCAST_ADDRESS = 28,
64     PERFORM_MASK_DISCOVERY = 29,
65     MASK_SUPPLIER = 30,
66     PERFORM_ROUTER_DISCOVERY = 31,
67     ROUTER_SOLICITATION_ADDRESS = 32,
68     STATIC_ROUTE = 33,
69 
70     /* Link Layer Parameters per Interface */
71 
72     TRAILER_ENCAPSULATION = 34,
73     ARP_CACHE_TIMEOUT = 35,
74     ETHERNET_ENCAPSULATION = 36,
75 
76     /* TCP Parameters */
77 
78     TCP_DEFAULT_TTL = 37,
79     TCP_KEEPALIVE_INTERVAL = 38,
80     TCP_KEEPALIVE_GARBAGE = 39,
81 
82     /* Application and Service Parameters */
83 
84     NETWORK_INFORMATION_SERVICE_DOMAIN = 40,
85     NETWORK_INFORMATION_SERVERS = 41,
86     NETWORK_TIME_PROTOCOL_SERVERS = 42,
87     VENDOR_SPECIFIC_INFORMATION = 43,
88     NETBIOS_OVER_TCP_IP_NAME_SERVER = 44,
89     NETBIOS_OVER_TCP_IP_DATAGRAM_DISTRIBUTION_SERVER = 45,
90     NETBIOS_OVER_TCP_IP_NODE_TYPE = 46,
91     NETBIOS_OVER_TCP_IP_SCOPE = 47,
92     X_WINDOW_SYSTEM_FONT_SERVER = 48,
93     X_WINDOW_SYSTEM_DISPLAY_MANAGER = 49,
94     NETWORK_INFORMATION_SERVICE_PLUS_DOMAIN = 64,
95     NETWORK_INFORMATION_SERVICE_PLUS_SERVERS = 65,
96     MOBILE_IP_HOME_AGENT = 68,
97     SMTP_SERVER = 69,
98     POP3_SERVER = 70,
99     NNTP_SERVER = 71,
100     DEFAULT_WWW_SERVER = 72,
101     DEFAULT_FINGER_SERVER = 73,
102     DEFAULT_IRC_SERVER = 74,
103     STREETTALK_SERVER = 75,
104     STREETTALK_DIRECTORY_ASSISTANCE_SERVER = 76,
105 
106     /* DHCP Extensions */
107 
108     REQUESTED_IP_ADDRESS = 50,
109     IP_ADDRESS_LEASE_TIME = 51,
110     OPTION_OVERLOAD = 52,
111     TFTP_SERVER_NAME = 66,
112     BOOTFILE_NAME = 67,
113     DHCP_MESSAGE_TYPE = 53,
114     SERVER_IDENTIFIER = 54,
115     PARAMETER_REQUEST_LIST = 55,
116     MESSAGE = 56,
117     MAXIMUM_DHCP_MESSAGE_SIZE = 57,
118     RENEWAL_T1_TIME_VALUE = 58,
119     REBINDING_T2_TIME_VALUE = 59,
120     VENDOR_CLASS_IDENTIFIER = 60,
121     CLIENT_IDENTIFIER = 61,
122 
123     USER_CLASS = 77,
124     FQDN = 81,
125     DHCP_AGENT_OPTIONS = 82,
126     NDS_SERVERS = 85,
127     NDS_TREE_NAME = 86,
128     NDS_CONTEXT = 87,
129     CLIENT_LAST_TRANSACTION_TIME = 91,
130     ASSOCIATED_IP = 92,
131     USER_AUTHENTICATION_PROTOCOL = 98,
132     AUTO_CONFIGURE = 116,
133     NAME_SERVICE_SEARCH = 117,
134     SUBNET_SELECTION = 118,
135     DOMAIN_SEARCH = 119,
136     CLASSLESS_ROUTE = 121,
137 } dhcp_msg_option;
138 
139 #ifdef __cplusplus
140 }
141 #endif
142