diff options
Diffstat (limited to 'networking/udhcp/options.h')
-rw-r--r-- | networking/udhcp/options.h | 123 |
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 | ||
12 | enum { | 12 | enum { |
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 | ||
99 | struct dhcp_option { | 96 | struct dhcp_option { |
100 | uint8_t flags; | 97 | uint8_t flags; |