diff options
Diffstat (limited to 'networking/udhcp/options.h')
-rw-r--r-- | networking/udhcp/options.h | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/networking/udhcp/options.h b/networking/udhcp/options.h deleted file mode 100644 index 3ca4dc42d..000000000 --- a/networking/udhcp/options.h +++ /dev/null | |||
@@ -1,119 +0,0 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* options.h */ | ||
3 | #ifndef UDHCP_OPTIONS_H | ||
4 | #define UDHCP_OPTIONS_H 1 | ||
5 | |||
6 | PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN | ||
7 | |||
8 | |||
9 | enum { | ||
10 | OPTION_IP = 1, | ||
11 | OPTION_IP_PAIR, | ||
12 | OPTION_STRING, | ||
13 | #if ENABLE_FEATURE_UDHCP_RFC3397 | ||
14 | OPTION_STR1035, /* RFC1035 compressed domain name list */ | ||
15 | #endif | ||
16 | OPTION_BOOLEAN, | ||
17 | OPTION_U8, | ||
18 | OPTION_U16, | ||
19 | OPTION_S16, | ||
20 | OPTION_U32, | ||
21 | OPTION_S32, | ||
22 | OPTION_STATIC_ROUTES, | ||
23 | |||
24 | OPTION_TYPE_MASK = 0x0f, | ||
25 | /* Client requests this option by default */ | ||
26 | OPTION_REQ = 0x10, | ||
27 | /* There can be a list of 1 or more of these */ | ||
28 | OPTION_LIST = 0x20, | ||
29 | }; | ||
30 | |||
31 | /* DHCP option codes (partial list). See RFC 2132 and | ||
32 | * http://www.iana.org/assignments/bootp-dhcp-parameters/ | ||
33 | * Commented out options are handled by common option machinery, | ||
34 | * uncommented ones have spacial cases (grep for them to see). | ||
35 | */ | ||
36 | #define DHCP_PADDING 0x00 | ||
37 | #define DHCP_SUBNET 0x01 | ||
38 | //#define DHCP_TIME_OFFSET 0x02 /* (localtime - UTC_time) in seconds. signed */ | ||
39 | //#define DHCP_ROUTER 0x03 | ||
40 | //#define DHCP_TIME_SERVER 0x04 /* RFC 868 time server (32-bit, 0 = 1.1.1900) */ | ||
41 | //#define DHCP_NAME_SERVER 0x05 /* IEN 116 _really_ ancient kind of NS */ | ||
42 | //#define DHCP_DNS_SERVER 0x06 | ||
43 | //#define DHCP_LOG_SERVER 0x07 /* port 704 UDP log (not syslog) | ||
44 | //#define DHCP_COOKIE_SERVER 0x08 /* "quote of the day" server */ | ||
45 | //#define DHCP_LPR_SERVER 0x09 | ||
46 | #define DHCP_HOST_NAME 0x0c /* either client informs server or server gives name to client */ | ||
47 | //#define DHCP_BOOT_SIZE 0x0d | ||
48 | //#define DHCP_DOMAIN_NAME 0x0f /* server gives domain suffix */ | ||
49 | //#define DHCP_SWAP_SERVER 0x10 | ||
50 | //#define DHCP_ROOT_PATH 0x11 | ||
51 | //#define DHCP_IP_TTL 0x17 | ||
52 | //#define DHCP_MTU 0x1a | ||
53 | //#define DHCP_BROADCAST 0x1c | ||
54 | //#define DHCP_NIS_DOMAIN 0x28 | ||
55 | //#define DHCP_NIS_SERVER 0x29 | ||
56 | //#define DHCP_NTP_SERVER 0x2a | ||
57 | //#define DHCP_WINS_SERVER 0x2c | ||
58 | #define DHCP_REQUESTED_IP 0x32 /* sent by client if specific IP is wanted */ | ||
59 | #define DHCP_LEASE_TIME 0x33 | ||
60 | #define DHCP_OPTION_OVERLOAD 0x34 | ||
61 | #define DHCP_MESSAGE_TYPE 0x35 | ||
62 | #define DHCP_SERVER_ID 0x36 /* by default server's IP */ | ||
63 | #define DHCP_PARAM_REQ 0x37 /* list of options client wants */ | ||
64 | //#define DHCP_ERR_MESSAGE 0x38 /* error message when sending NAK etc */ | ||
65 | #define DHCP_MAX_SIZE 0x39 | ||
66 | #define DHCP_VENDOR 0x3c /* client's vendor (a string) */ | ||
67 | #define DHCP_CLIENT_ID 0x3d /* by default client's MAC addr, but may be arbitrarily long */ | ||
68 | //#define DHCP_TFTP_SERVER_NAME 0x42 /* same as 'sname' field */ | ||
69 | //#define DHCP_BOOT_FILE 0x43 /* same as 'file' field */ | ||
70 | //#define DHCP_USER_CLASS 0x4d /* RFC 3004. set of LASCII strings. "I am a printer" etc */ | ||
71 | #define DHCP_FQDN 0x51 /* client asks to update DNS to map its FQDN to its new IP */ | ||
72 | //#define DHCP_DOMAIN_SEARCH 0x77 /* RFC 3397. set of ASCIZ string, DNS-style compressed */ | ||
73 | //#define DHCP_STATIC_ROUTES 0x79 /* RFC 3442. (mask,ip,router) tuples */ | ||
74 | //#define DHCP_WPAD 0xfc /* MSIE's Web Proxy Autodiscovery Protocol */ | ||
75 | #define DHCP_END 0xff | ||
76 | |||
77 | /* Offsets in option byte sequence */ | ||
78 | #define OPT_CODE 0 | ||
79 | #define OPT_LEN 1 | ||
80 | #define OPT_DATA 2 | ||
81 | /* Bits in "overload" option */ | ||
82 | #define OPTION_FIELD 0 | ||
83 | #define FILE_FIELD 1 | ||
84 | #define SNAME_FIELD 2 | ||
85 | |||
86 | /* DHCP_MESSAGE_TYPE values */ | ||
87 | #define DHCPDISCOVER 1 /* client -> server */ | ||
88 | #define DHCPOFFER 2 /* client <- server */ | ||
89 | #define DHCPREQUEST 3 /* client -> server */ | ||
90 | #define DHCPDECLINE 4 /* client -> server */ | ||
91 | #define DHCPACK 5 /* client <- server */ | ||
92 | #define DHCPNAK 6 /* client <- server */ | ||
93 | #define DHCPRELEASE 7 /* client -> server */ | ||
94 | #define DHCPINFORM 8 /* client -> server */ | ||
95 | #define DHCP_MINTYPE DHCPDISCOVER | ||
96 | #define DHCP_MAXTYPE DHCPINFORM | ||
97 | |||
98 | |||
99 | struct dhcp_option { | ||
100 | uint8_t flags; | ||
101 | uint8_t code; | ||
102 | }; | ||
103 | |||
104 | extern const struct dhcp_option dhcp_options[]; | ||
105 | extern const char dhcp_option_strings[]; | ||
106 | extern const uint8_t dhcp_option_lengths[]; | ||
107 | |||
108 | uint8_t *get_option(struct dhcp_packet *packet, int code) FAST_FUNC; | ||
109 | int end_option(uint8_t *optionptr) FAST_FUNC; | ||
110 | void add_option_string(uint8_t *optionptr, uint8_t *string) FAST_FUNC; | ||
111 | void add_simple_option(uint8_t *optionptr, uint8_t code, uint32_t data) FAST_FUNC; | ||
112 | #if ENABLE_FEATURE_UDHCP_RFC3397 | ||
113 | char *dname_dec(const uint8_t *cstr, int clen, const char *pre) FAST_FUNC; | ||
114 | uint8_t *dname_enc(const uint8_t *cstr, int clen, const char *src, int *retlen) FAST_FUNC; | ||
115 | #endif | ||
116 | |||
117 | POP_SAVED_FUNCTION_VISIBILITY | ||
118 | |||
119 | #endif | ||