|
1 /* bootp/dhcp defines */ |
|
2 |
|
3 #define BOOTP_SERVER 67 |
|
4 #define BOOTP_CLIENT 68 |
|
5 |
|
6 #define BOOTP_REQUEST 1 |
|
7 #define BOOTP_REPLY 2 |
|
8 |
|
9 #define RFC1533_COOKIE 99, 130, 83, 99 |
|
10 #define RFC1533_PAD 0 |
|
11 #define RFC1533_NETMASK 1 |
|
12 #define RFC1533_TIMEOFFSET 2 |
|
13 #define RFC1533_GATEWAY 3 |
|
14 #define RFC1533_TIMESERVER 4 |
|
15 #define RFC1533_IEN116NS 5 |
|
16 #define RFC1533_DNS 6 |
|
17 #define RFC1533_LOGSERVER 7 |
|
18 #define RFC1533_COOKIESERVER 8 |
|
19 #define RFC1533_LPRSERVER 9 |
|
20 #define RFC1533_IMPRESSSERVER 10 |
|
21 #define RFC1533_RESOURCESERVER 11 |
|
22 #define RFC1533_HOSTNAME 12 |
|
23 #define RFC1533_BOOTFILESIZE 13 |
|
24 #define RFC1533_MERITDUMPFILE 14 |
|
25 #define RFC1533_DOMAINNAME 15 |
|
26 #define RFC1533_SWAPSERVER 16 |
|
27 #define RFC1533_ROOTPATH 17 |
|
28 #define RFC1533_EXTENSIONPATH 18 |
|
29 #define RFC1533_IPFORWARDING 19 |
|
30 #define RFC1533_IPSOURCEROUTING 20 |
|
31 #define RFC1533_IPPOLICYFILTER 21 |
|
32 #define RFC1533_IPMAXREASSEMBLY 22 |
|
33 #define RFC1533_IPTTL 23 |
|
34 #define RFC1533_IPMTU 24 |
|
35 #define RFC1533_IPMTUPLATEAU 25 |
|
36 #define RFC1533_INTMTU 26 |
|
37 #define RFC1533_INTLOCALSUBNETS 27 |
|
38 #define RFC1533_INTBROADCAST 28 |
|
39 #define RFC1533_INTICMPDISCOVER 29 |
|
40 #define RFC1533_INTICMPRESPOND 30 |
|
41 #define RFC1533_INTROUTEDISCOVER 31 |
|
42 #define RFC1533_INTROUTESOLICIT 32 |
|
43 #define RFC1533_INTSTATICROUTES 33 |
|
44 #define RFC1533_LLTRAILERENCAP 34 |
|
45 #define RFC1533_LLARPCACHETMO 35 |
|
46 #define RFC1533_LLETHERNETENCAP 36 |
|
47 #define RFC1533_TCPTTL 37 |
|
48 #define RFC1533_TCPKEEPALIVETMO 38 |
|
49 #define RFC1533_TCPKEEPALIVEGB 39 |
|
50 #define RFC1533_NISDOMAIN 40 |
|
51 #define RFC1533_NISSERVER 41 |
|
52 #define RFC1533_NTPSERVER 42 |
|
53 #define RFC1533_VENDOR 43 |
|
54 #define RFC1533_NBNS 44 |
|
55 #define RFC1533_NBDD 45 |
|
56 #define RFC1533_NBNT 46 |
|
57 #define RFC1533_NBSCOPE 47 |
|
58 #define RFC1533_XFS 48 |
|
59 #define RFC1533_XDM 49 |
|
60 |
|
61 #define RFC2132_REQ_ADDR 50 |
|
62 #define RFC2132_LEASE_TIME 51 |
|
63 #define RFC2132_MSG_TYPE 53 |
|
64 #define RFC2132_SRV_ID 54 |
|
65 #define RFC2132_PARAM_LIST 55 |
|
66 #define RFC2132_MAX_SIZE 57 |
|
67 #define RFC2132_RENEWAL_TIME 58 |
|
68 #define RFC2132_REBIND_TIME 59 |
|
69 |
|
70 #define DHCPDISCOVER 1 |
|
71 #define DHCPOFFER 2 |
|
72 #define DHCPREQUEST 3 |
|
73 #define DHCPACK 5 |
|
74 |
|
75 #define RFC1533_VENDOR_MAJOR 0 |
|
76 #define RFC1533_VENDOR_MINOR 0 |
|
77 |
|
78 #define RFC1533_VENDOR_MAGIC 128 |
|
79 #define RFC1533_VENDOR_ADDPARM 129 |
|
80 #define RFC1533_VENDOR_ETHDEV 130 |
|
81 #define RFC1533_VENDOR_HOWTO 132 |
|
82 #define RFC1533_VENDOR_MNUOPTS 160 |
|
83 #define RFC1533_VENDOR_SELECTION 176 |
|
84 #define RFC1533_VENDOR_MOTD 184 |
|
85 #define RFC1533_VENDOR_NUMOFMOTD 8 |
|
86 #define RFC1533_VENDOR_IMG 192 |
|
87 #define RFC1533_VENDOR_NUMOFIMG 16 |
|
88 |
|
89 #define RFC1533_END 255 |
|
90 #define BOOTP_VENDOR_LEN 64 |
|
91 #define DHCP_OPT_LEN 312 |
|
92 |
|
93 struct bootp_t { |
|
94 struct ip ip; |
|
95 struct udphdr udp; |
|
96 uint8_t bp_op; |
|
97 uint8_t bp_htype; |
|
98 uint8_t bp_hlen; |
|
99 uint8_t bp_hops; |
|
100 uint32_t bp_xid; |
|
101 uint16_t bp_secs; |
|
102 uint16_t unused; |
|
103 struct in_addr bp_ciaddr; |
|
104 struct in_addr bp_yiaddr; |
|
105 struct in_addr bp_siaddr; |
|
106 struct in_addr bp_giaddr; |
|
107 uint8_t bp_hwaddr[16]; |
|
108 uint8_t bp_sname[64]; |
|
109 uint8_t bp_file[128]; |
|
110 uint8_t bp_vend[DHCP_OPT_LEN]; |
|
111 }; |
|
112 |
|
113 void bootp_input(struct mbuf *m); |