diff options
Diffstat (limited to 'networking/udhcp/common.h')
-rw-r--r-- | networking/udhcp/common.h | 68 |
1 files changed, 38 insertions, 30 deletions
diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h index 13059f106..7ad603d33 100644 --- a/networking/udhcp/common.h +++ b/networking/udhcp/common.h | |||
@@ -122,9 +122,9 @@ enum { | |||
122 | //#define DHCP_LOG_SERVER 0x07 /* port 704 UDP log (not syslog) | 122 | //#define DHCP_LOG_SERVER 0x07 /* port 704 UDP log (not syslog) |
123 | //#define DHCP_COOKIE_SERVER 0x08 /* "quote of the day" server */ | 123 | //#define DHCP_COOKIE_SERVER 0x08 /* "quote of the day" server */ |
124 | //#define DHCP_LPR_SERVER 0x09 | 124 | //#define DHCP_LPR_SERVER 0x09 |
125 | #define DHCP_HOST_NAME 0x0c /* either client informs server or server gives name to client */ | 125 | #define DHCP_HOST_NAME 0x0c /* 12: either client informs server or server gives name to client */ |
126 | //#define DHCP_BOOT_SIZE 0x0d | 126 | //#define DHCP_BOOT_SIZE 0x0d |
127 | //#define DHCP_DOMAIN_NAME 0x0f /* server gives domain suffix */ | 127 | //#define DHCP_DOMAIN_NAME 0x0f /* 15: server gives domain suffix */ |
128 | //#define DHCP_SWAP_SERVER 0x10 | 128 | //#define DHCP_SWAP_SERVER 0x10 |
129 | //#define DHCP_ROOT_PATH 0x11 | 129 | //#define DHCP_ROOT_PATH 0x11 |
130 | //#define DHCP_IP_TTL 0x17 | 130 | //#define DHCP_IP_TTL 0x17 |
@@ -135,35 +135,40 @@ enum { | |||
135 | //#define DHCP_NIS_SERVER 0x29 | 135 | //#define DHCP_NIS_SERVER 0x29 |
136 | //#define DHCP_NTP_SERVER 0x2a | 136 | //#define DHCP_NTP_SERVER 0x2a |
137 | //#define DHCP_WINS_SERVER 0x2c | 137 | //#define DHCP_WINS_SERVER 0x2c |
138 | #define DHCP_REQUESTED_IP 0x32 /* sent by client if specific IP is wanted */ | 138 | #define DHCP_REQUESTED_IP 0x32 /* 50: sent by client if specific IP is wanted */ |
139 | #define DHCP_LEASE_TIME 0x33 | 139 | #define DHCP_LEASE_TIME 0x33 /* 51: */ |
140 | #define DHCP_OPTION_OVERLOAD 0x34 | 140 | #define DHCP_OPTION_OVERLOAD 0x34 /* 52: */ |
141 | #define DHCP_MESSAGE_TYPE 0x35 | 141 | #define DHCP_MESSAGE_TYPE 0x35 /* 53: */ |
142 | #define DHCP_SERVER_ID 0x36 /* by default server's IP */ | 142 | #define DHCP_SERVER_ID 0x36 /* 54: server's IP */ |
143 | #define DHCP_PARAM_REQ 0x37 /* list of options client wants */ | 143 | #define DHCP_PARAM_REQ 0x37 /* 55: list of options client wants */ |
144 | //#define DHCP_ERR_MESSAGE 0x38 /* error message when sending NAK etc */ | 144 | //#define DHCP_ERR_MESSAGE 0x38 /* 56: error message when sending NAK etc */ |
145 | #define DHCP_MAX_SIZE 0x39 | 145 | #define DHCP_MAX_SIZE 0x39 /* 57: */ |
146 | #define DHCP_VENDOR 0x3c /* client's vendor (a string) */ | 146 | #define DHCP_VENDOR 0x3c /* 60: client's vendor (a string) */ |
147 | #define DHCP_CLIENT_ID 0x3d /* by default client's MAC addr, but may be arbitrarily long */ | 147 | #define DHCP_CLIENT_ID 0x3d /* 61: by default client's MAC addr, but may be arbitrarily long */ |
148 | //#define DHCP_TFTP_SERVER_NAME 0x42 /* same as 'sname' field */ | 148 | //#define DHCP_TFTP_SERVER_NAME 0x42 /* 66: same as 'sname' field */ |
149 | //#define DHCP_BOOT_FILE 0x43 /* same as 'file' field */ | 149 | //#define DHCP_BOOT_FILE 0x43 /* 67: same as 'file' field */ |
150 | //#define DHCP_USER_CLASS 0x4d /* RFC 3004. set of LASCII strings. "I am a printer" etc */ | 150 | //#define DHCP_USER_CLASS 0x4d /* 77: RFC 3004. set of LASCII strings. "I am a printer" etc */ |
151 | #define DHCP_FQDN 0x51 /* client asks to update DNS to map its FQDN to its new IP */ | 151 | #define DHCP_FQDN 0x51 /* 81: client asks to update DNS to map its FQDN to its new IP */ |
152 | //#define DHCP_DOMAIN_SEARCH 0x77 /* RFC 3397. set of ASCIZ string, DNS-style compressed */ | 152 | //#define DHCP_DOMAIN_SEARCH 0x77 /* 119: RFC 3397. set of ASCIZ string, DNS-style compressed */ |
153 | //#define DHCP_SIP_SERVERS 0x78 /* RFC 3361. flag byte, then: 0: domain names, 1: IP addrs */ | 153 | //#define DHCP_SIP_SERVERS 0x78 /* 120: RFC 3361. flag byte, then: 0: domain names, 1: IP addrs */ |
154 | //#define DHCP_STATIC_ROUTES 0x79 /* RFC 3442. (mask,ip,router) tuples */ | 154 | //#define DHCP_STATIC_ROUTES 0x79 /* 121: RFC 3442. (mask,ip,router) tuples */ |
155 | //#define DHCP_VLAN_ID 0x84 /* 802.1P VLAN ID */ | 155 | //#define DHCP_VLAN_ID 0x84 /* 132: 802.1P VLAN ID */ |
156 | //#define DHCP_VLAN_PRIORITY 0x85 /* 802.1Q VLAN priority */ | 156 | //#define DHCP_VLAN_PRIORITY 0x85 /* 133: 802.1Q VLAN priority */ |
157 | //#define DHCP_PXE_CONF_FILE 0xd1 /* RFC 5071 Configuration File */ | 157 | //#define DHCP_PXE_CONF_FILE 0xd1 /* 209: RFC 5071 Configuration File */ |
158 | //#define DHCP_PXE_PATH_PREFIX 0xd2 /* RFC 5071 Configuration File */ | 158 | //#define DHCP_PXE_PATH_PREFIX 0xd2 /* 210: RFC 5071 Configuration File */ |
159 | //#define DHCP_MS_STATIC_ROUTES 0xf9 /* Microsoft's pre-RFC 3442 code for 0x79? */ | 159 | //#define DHCP_REBOOT_TIME 0xd3 /* 211: RFC 5071 Reboot time */ |
160 | //#define DHCP_WPAD 0xfc /* MSIE's Web Proxy Autodiscovery Protocol */ | 160 | //#define DHCP_MS_STATIC_ROUTES 0xf9 /* 249: Microsoft's pre-RFC 3442 code for 0x79? */ |
161 | #define DHCP_END 0xff | 161 | //#define DHCP_WPAD 0xfc /* 252: MSIE's Web Proxy Autodiscovery Protocol */ |
162 | #define DHCP_END 0xff /* 255: */ | ||
162 | 163 | ||
163 | /* Offsets in option byte sequence */ | 164 | /* Offsets in option byte sequence */ |
164 | #define OPT_CODE 0 | 165 | #define OPT_CODE 0 |
165 | #define OPT_LEN 1 | 166 | #define OPT_LEN 1 |
166 | #define OPT_DATA 2 | 167 | #define OPT_DATA 2 |
168 | /* Offsets in option byte sequence for DHCPv6 */ | ||
169 | #define D6_OPT_CODE 0 | ||
170 | #define D6_OPT_LEN 2 | ||
171 | #define D6_OPT_DATA 4 | ||
167 | /* Bits in "overload" option */ | 172 | /* Bits in "overload" option */ |
168 | #define OPTION_FIELD 0 | 173 | #define OPTION_FIELD 0 |
169 | #define FILE_FIELD 1 | 174 | #define FILE_FIELD 1 |
@@ -290,10 +295,15 @@ void udhcp_dump_packet(struct dhcp_packet *packet) FAST_FUNC; | |||
290 | /* 2nd param is "uint32_t*" */ | 295 | /* 2nd param is "uint32_t*" */ |
291 | int FAST_FUNC udhcp_str2nip(const char *str, void *arg); | 296 | int FAST_FUNC udhcp_str2nip(const char *str, void *arg); |
292 | /* 2nd param is "struct option_set**" */ | 297 | /* 2nd param is "struct option_set**" */ |
298 | #if !ENABLE_UDHCPC6 | ||
299 | #define udhcp_str2optset(str, arg, optflags, option_strings, dhcpv6) \ | ||
300 | udhcp_str2optset(str, arg, optflags, option_strings) | ||
301 | #endif | ||
293 | int FAST_FUNC udhcp_str2optset(const char *str, | 302 | int FAST_FUNC udhcp_str2optset(const char *str, |
294 | void *arg, | 303 | void *arg, |
295 | const struct dhcp_optflag *optflags, | 304 | const struct dhcp_optflag *optflags, |
296 | const char *option_strings); | 305 | const char *option_strings, |
306 | bool dhcpv6); | ||
297 | 307 | ||
298 | #if ENABLE_UDHCPC || ENABLE_UDHCPD | 308 | #if ENABLE_UDHCPC || ENABLE_UDHCPD |
299 | void udhcp_init_header(struct dhcp_packet *packet, char type) FAST_FUNC; | 309 | void udhcp_init_header(struct dhcp_packet *packet, char type) FAST_FUNC; |
@@ -308,9 +318,7 @@ int udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt, | |||
308 | 318 | ||
309 | int udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt, | 319 | int udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt, |
310 | uint32_t source_nip, int source_port, | 320 | uint32_t source_nip, int source_port, |
311 | uint32_t dest_nip, int dest_port, | 321 | uint32_t dest_nip, int dest_port) FAST_FUNC; |
312 | int send_flags | ||
313 | ) FAST_FUNC; | ||
314 | 322 | ||
315 | void udhcp_sp_setup(void) FAST_FUNC; | 323 | void udhcp_sp_setup(void) FAST_FUNC; |
316 | void udhcp_sp_fd_set(struct pollfd *pfds, int extra_fd) FAST_FUNC; | 324 | void udhcp_sp_fd_set(struct pollfd *pfds, int extra_fd) FAST_FUNC; |