aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/common.h')
-rw-r--r--networking/udhcp/common.h68
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*" */
291int FAST_FUNC udhcp_str2nip(const char *str, void *arg); 296int 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
293int FAST_FUNC udhcp_str2optset(const char *str, 302int 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
299void udhcp_init_header(struct dhcp_packet *packet, char type) FAST_FUNC; 309void 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
309int udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt, 319int 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
315void udhcp_sp_setup(void) FAST_FUNC; 323void udhcp_sp_setup(void) FAST_FUNC;
316void udhcp_sp_fd_set(struct pollfd *pfds, int extra_fd) FAST_FUNC; 324void udhcp_sp_fd_set(struct pollfd *pfds, int extra_fd) FAST_FUNC;