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