aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/options.h
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/options.h')
-rw-r--r--networking/udhcp/options.h123
1 files changed, 60 insertions, 63 deletions
diff --git a/networking/udhcp/options.h b/networking/udhcp/options.h
index d18a353d0..87440c30c 100644
--- a/networking/udhcp/options.h
+++ b/networking/udhcp/options.h
@@ -7,7 +7,7 @@
7# pragma GCC visibility push(hidden) 7# pragma GCC visibility push(hidden)
8#endif 8#endif
9 9
10#define TYPE_MASK 0x0F 10#define TYPE_MASK 0x0F
11 11
12enum { 12enum {
13 OPTION_IP = 1, 13 OPTION_IP = 1,
@@ -24,8 +24,8 @@ enum {
24 OPTION_S32 24 OPTION_S32
25}; 25};
26 26
27#define OPTION_REQ 0x10 /* have the client request this option */ 27#define OPTION_REQ 0x10 /* have the client request this option */
28#define OPTION_LIST 0x20 /* There can be a list of 1 or more of these */ 28#define OPTION_LIST 0x20 /* There can be a list of 1 or more of these */
29 29
30/*****************************************************************/ 30/*****************************************************************/
31/* Do not modify below here unless you know what you are doing!! */ 31/* Do not modify below here unless you know what you are doing!! */
@@ -34,67 +34,64 @@ enum {
34/* DHCP protocol -- see RFC 2131 */ 34/* DHCP protocol -- see RFC 2131 */
35#define DHCP_MAGIC 0x63825363 35#define DHCP_MAGIC 0x63825363
36 36
37
38/* DHCP option codes (partial list) */ 37/* DHCP option codes (partial list) */
39#define DHCP_PADDING 0x00 38#define DHCP_PADDING 0x00
40#define DHCP_SUBNET 0x01 39#define DHCP_SUBNET 0x01
41#define DHCP_TIME_OFFSET 0x02 40#define DHCP_TIME_OFFSET 0x02
42#define DHCP_ROUTER 0x03 41#define DHCP_ROUTER 0x03
43#define DHCP_TIME_SERVER 0x04 42#define DHCP_TIME_SERVER 0x04
44#define DHCP_NAME_SERVER 0x05 43#define DHCP_NAME_SERVER 0x05
45#define DHCP_DNS_SERVER 0x06 44#define DHCP_DNS_SERVER 0x06
46#define DHCP_LOG_SERVER 0x07 45#define DHCP_LOG_SERVER 0x07
47#define DHCP_COOKIE_SERVER 0x08 46#define DHCP_COOKIE_SERVER 0x08
48#define DHCP_LPR_SERVER 0x09 47#define DHCP_LPR_SERVER 0x09
49#define DHCP_HOST_NAME 0x0c 48#define DHCP_HOST_NAME 0x0c
50#define DHCP_BOOT_SIZE 0x0d 49#define DHCP_BOOT_SIZE 0x0d
51#define DHCP_DOMAIN_NAME 0x0f 50#define DHCP_DOMAIN_NAME 0x0f
52#define DHCP_SWAP_SERVER 0x10 51#define DHCP_SWAP_SERVER 0x10
53#define DHCP_ROOT_PATH 0x11 52#define DHCP_ROOT_PATH 0x11
54#define DHCP_IP_TTL 0x17 53#define DHCP_IP_TTL 0x17
55#define DHCP_MTU 0x1a 54#define DHCP_MTU 0x1a
56#define DHCP_BROADCAST 0x1c 55#define DHCP_BROADCAST 0x1c
57#define DHCP_NTP_SERVER 0x2a 56#define DHCP_NTP_SERVER 0x2a
58#define DHCP_WINS_SERVER 0x2c 57#define DHCP_WINS_SERVER 0x2c
59#define DHCP_REQUESTED_IP 0x32 58#define DHCP_REQUESTED_IP 0x32
60#define DHCP_LEASE_TIME 0x33 59#define DHCP_LEASE_TIME 0x33
61#define DHCP_OPTION_OVER 0x34 60#define DHCP_OPTION_OVERLOAD 0x34
62#define DHCP_MESSAGE_TYPE 0x35 61#define DHCP_MESSAGE_TYPE 0x35
63#define DHCP_SERVER_ID 0x36 62#define DHCP_SERVER_ID 0x36
64#define DHCP_PARAM_REQ 0x37 63#define DHCP_PARAM_REQ 0x37
65#define DHCP_MESSAGE 0x38 64#define DHCP_MESSAGE 0x38
66#define DHCP_MAX_SIZE 0x39 65#define DHCP_MAX_SIZE 0x39
67#define DHCP_T1 0x3a 66#define DHCP_T1 0x3a
68#define DHCP_T2 0x3b 67#define DHCP_T2 0x3b
69#define DHCP_VENDOR 0x3c 68#define DHCP_VENDOR 0x3c
70#define DHCP_CLIENT_ID 0x3d 69#define DHCP_CLIENT_ID 0x3d
71#define DHCP_FQDN 0x51 70#define DHCP_FQDN 0x51
72#define DHCP_END 0xFF 71#define DHCP_END 0xFF
73 72/* Offsets in option byte sequence */
74 73#define OPT_CODE 0
75#define BOOTREQUEST 1 74#define OPT_LEN 1
76#define BOOTREPLY 2 75#define OPT_DATA 2
77 76/* Bits in "overload" option */
78#define ETH_10MB 1 77#define OPTION_FIELD 0
79#define ETH_10MB_LEN 6 78#define FILE_FIELD 1
80 79#define SNAME_FIELD 2
81#define DHCPDISCOVER 1 /* client -> server */ 80
82#define DHCPOFFER 2 /* client <- server */ 81#define BOOTREQUEST 1
83#define DHCPREQUEST 3 /* client -> server */ 82#define BOOTREPLY 2
84#define DHCPDECLINE 4 /* client -> server */ 83
85#define DHCPACK 5 /* client <- server */ 84#define ETH_10MB 1
86#define DHCPNAK 6 /* client <- server */ 85#define ETH_10MB_LEN 6
87#define DHCPRELEASE 7 /* client -> server */ 86
88#define DHCPINFORM 8 /* client -> server */ 87#define DHCPDISCOVER 1 /* client -> server */
89 88#define DHCPOFFER 2 /* client <- server */
90#define OPTION_FIELD 0 89#define DHCPREQUEST 3 /* client -> server */
91#define FILE_FIELD 1 90#define DHCPDECLINE 4 /* client -> server */
92#define SNAME_FIELD 2 91#define DHCPACK 5 /* client <- server */
93 92#define DHCPNAK 6 /* client <- server */
94/* miscellaneous defines */ 93#define DHCPRELEASE 7 /* client -> server */
95#define OPT_CODE 0 94#define DHCPINFORM 8 /* client -> server */
96#define OPT_LEN 1
97#define OPT_DATA 2
98 95
99struct dhcp_option { 96struct dhcp_option {
100 uint8_t flags; 97 uint8_t flags;