Blame


1 87a52e04 2005-12-26 devnull
2 87a52e04 2005-12-26 devnull enum
3 87a52e04 2005-12-26 devnull {
4 87a52e04 2005-12-26 devnull OfferTimeout= 60, /* when an offer times out */
5 87a52e04 2005-12-26 devnull MaxLease= 60*60, /* longest lease for dynamic binding */
6 87a52e04 2005-12-26 devnull MinLease= 15*60, /* shortest lease for dynamic binding */
7 87a52e04 2005-12-26 devnull StaticLease= 30*60, /* lease for static binding */
8 87a52e04 2005-12-26 devnull
9 87a52e04 2005-12-26 devnull IPUDPHDRSIZE= 28, /* size of an IP plus UDP header */
10 87a52e04 2005-12-26 devnull MINSUPPORTED= 576, /* biggest IP message the client must support */
11 87a52e04 2005-12-26 devnull
12 87a52e04 2005-12-26 devnull /* lengths of some bootp fields */
13 87a52e04 2005-12-26 devnull Maxhwlen= 16,
14 87a52e04 2005-12-26 devnull Maxfilelen= 128,
15 87a52e04 2005-12-26 devnull Maxoptlen= 312-4,
16 87a52e04 2005-12-26 devnull
17 87a52e04 2005-12-26 devnull /* bootp types */
18 87a52e04 2005-12-26 devnull Bootrequest= 1,
19 87a52e04 2005-12-26 devnull Bootreply= 2,
20 87a52e04 2005-12-26 devnull
21 87a52e04 2005-12-26 devnull /* bootp flags */
22 87a52e04 2005-12-26 devnull Fbroadcast= 1<<15,
23 87a52e04 2005-12-26 devnull
24 87a52e04 2005-12-26 devnull /* dhcp types */
25 87a52e04 2005-12-26 devnull Discover= 1,
26 87a52e04 2005-12-26 devnull Offer= 2,
27 87a52e04 2005-12-26 devnull Request= 3,
28 87a52e04 2005-12-26 devnull Decline= 4,
29 87a52e04 2005-12-26 devnull Ack= 5,
30 87a52e04 2005-12-26 devnull Nak= 6,
31 87a52e04 2005-12-26 devnull Release= 7,
32 87a52e04 2005-12-26 devnull Inform= 8,
33 87a52e04 2005-12-26 devnull
34 87a52e04 2005-12-26 devnull /* bootp option types */
35 87a52e04 2005-12-26 devnull OBend= 255,
36 87a52e04 2005-12-26 devnull OBpad= 0,
37 87a52e04 2005-12-26 devnull OBmask= 1,
38 87a52e04 2005-12-26 devnull OBtimeoff= 2,
39 87a52e04 2005-12-26 devnull OBrouter= 3,
40 87a52e04 2005-12-26 devnull OBtimeserver= 4,
41 87a52e04 2005-12-26 devnull OBnameserver= 5,
42 87a52e04 2005-12-26 devnull OBdnserver= 6,
43 87a52e04 2005-12-26 devnull OBlogserver= 7,
44 87a52e04 2005-12-26 devnull OBcookieserver= 8,
45 87a52e04 2005-12-26 devnull OBlprserver= 9,
46 87a52e04 2005-12-26 devnull OBimpressserver= 10,
47 87a52e04 2005-12-26 devnull OBrlserver= 11,
48 87a52e04 2005-12-26 devnull OBhostname= 12, /* 0xc0 */
49 87a52e04 2005-12-26 devnull OBbflen= 13,
50 87a52e04 2005-12-26 devnull OBdumpfile= 14,
51 87a52e04 2005-12-26 devnull OBdomainname= 15,
52 87a52e04 2005-12-26 devnull OBswapserver= 16, /* 0x10 */
53 87a52e04 2005-12-26 devnull OBrootpath= 17,
54 87a52e04 2005-12-26 devnull OBextpath= 18,
55 87a52e04 2005-12-26 devnull OBipforward= 19,
56 87a52e04 2005-12-26 devnull OBnonlocal= 20,
57 87a52e04 2005-12-26 devnull OBpolicyfilter= 21,
58 87a52e04 2005-12-26 devnull OBmaxdatagram= 22,
59 87a52e04 2005-12-26 devnull OBttl= 23,
60 87a52e04 2005-12-26 devnull OBpathtimeout= 24,
61 87a52e04 2005-12-26 devnull OBpathplateau= 25,
62 87a52e04 2005-12-26 devnull OBmtu= 26,
63 87a52e04 2005-12-26 devnull OBsubnetslocal= 27,
64 87a52e04 2005-12-26 devnull OBbaddr= 28,
65 87a52e04 2005-12-26 devnull OBdiscovermask= 29,
66 87a52e04 2005-12-26 devnull OBsupplymask= 30,
67 87a52e04 2005-12-26 devnull OBdiscoverrouter= 31,
68 87a52e04 2005-12-26 devnull OBrsserver= 32, /* 0x20 */
69 87a52e04 2005-12-26 devnull OBstaticroutes= 33,
70 87a52e04 2005-12-26 devnull OBtrailerencap= 34,
71 87a52e04 2005-12-26 devnull OBarptimeout= 35,
72 87a52e04 2005-12-26 devnull OBetherencap= 36,
73 87a52e04 2005-12-26 devnull OBtcpttl= 37,
74 87a52e04 2005-12-26 devnull OBtcpka= 38,
75 87a52e04 2005-12-26 devnull OBtcpkag= 39,
76 87a52e04 2005-12-26 devnull OBnisdomain= 40,
77 fa325e9b 2020-01-10 cross OBniserver= 41,
78 87a52e04 2005-12-26 devnull OBntpserver= 42,
79 87a52e04 2005-12-26 devnull OBvendorinfo= 43, /* 0x2b */
80 87a52e04 2005-12-26 devnull OBnetbiosns= 44,
81 87a52e04 2005-12-26 devnull OBnetbiosdds= 45,
82 87a52e04 2005-12-26 devnull OBnetbiostype= 46,
83 87a52e04 2005-12-26 devnull OBnetbiosscope= 47,
84 87a52e04 2005-12-26 devnull OBxfontserver= 48, /* 0x30 */
85 87a52e04 2005-12-26 devnull OBxdispmanager= 49,
86 87a52e04 2005-12-26 devnull OBnisplusdomain= 64, /* 0x40 */
87 87a52e04 2005-12-26 devnull OBnisplusserver= 65,
88 87a52e04 2005-12-26 devnull OBhomeagent= 68,
89 87a52e04 2005-12-26 devnull OBsmtpserver= 69,
90 87a52e04 2005-12-26 devnull OBpop3server= 70,
91 87a52e04 2005-12-26 devnull OBnntpserver= 71,
92 87a52e04 2005-12-26 devnull OBwwwserver= 72,
93 87a52e04 2005-12-26 devnull OBfingerserver= 73,
94 87a52e04 2005-12-26 devnull OBircserver= 74,
95 87a52e04 2005-12-26 devnull OBstserver= 75,
96 87a52e04 2005-12-26 devnull OBstdaserver= 76,
97 87a52e04 2005-12-26 devnull
98 87a52e04 2005-12-26 devnull /* dhcp options */
99 87a52e04 2005-12-26 devnull ODipaddr= 50, /* 0x32 */
100 87a52e04 2005-12-26 devnull ODlease= 51,
101 87a52e04 2005-12-26 devnull ODoverload= 52,
102 87a52e04 2005-12-26 devnull ODtype= 53, /* 0x35 */
103 87a52e04 2005-12-26 devnull ODserverid= 54, /* 0x36 */
104 87a52e04 2005-12-26 devnull ODparams= 55, /* 0x37 */
105 87a52e04 2005-12-26 devnull ODmessage= 56,
106 87a52e04 2005-12-26 devnull ODmaxmsg= 57,
107 87a52e04 2005-12-26 devnull ODrenewaltime= 58,
108 87a52e04 2005-12-26 devnull ODrebindingtime= 59,
109 87a52e04 2005-12-26 devnull ODvendorclass= 60,
110 87a52e04 2005-12-26 devnull ODclientid= 61, /* 0x3d */
111 87a52e04 2005-12-26 devnull ODtftpserver= 66,
112 87a52e04 2005-12-26 devnull ODbootfile= 67,
113 87a52e04 2005-12-26 devnull
114 87a52e04 2005-12-26 devnull /* plan9 vendor info options */
115 87a52e04 2005-12-26 devnull OP9fs= 128, // plan9 file servers
116 87a52e04 2005-12-26 devnull OP9auth= 129, // plan9 auth servers
117 87a52e04 2005-12-26 devnull };
118 87a52e04 2005-12-26 devnull
119 87a52e04 2005-12-26 devnull /* a lease that never expires */
120 87a52e04 2005-12-26 devnull #define Lforever 0xffffffffU
121 87a52e04 2005-12-26 devnull
122 87a52e04 2005-12-26 devnull /* dhcp states */
123 87a52e04 2005-12-26 devnull enum {
124 87a52e04 2005-12-26 devnull Sinit,
125 87a52e04 2005-12-26 devnull Sselecting,
126 87a52e04 2005-12-26 devnull Srequesting,
127 87a52e04 2005-12-26 devnull Sbound,
128 87a52e04 2005-12-26 devnull Srenewing,
129 cbeb0b26 2006-04-01 devnull Srebinding
130 fa325e9b 2020-01-10 cross };
131 87a52e04 2005-12-26 devnull
132 87a52e04 2005-12-26 devnull typedef struct Bootp Bootp;
133 87a52e04 2005-12-26 devnull struct Bootp
134 87a52e04 2005-12-26 devnull {
135 87a52e04 2005-12-26 devnull uchar op; /* opcode */
136 87a52e04 2005-12-26 devnull uchar htype; /* hardware type */
137 87a52e04 2005-12-26 devnull uchar hlen; /* hardware address len */
138 87a52e04 2005-12-26 devnull uchar hops; /* hops */
139 87a52e04 2005-12-26 devnull uchar xid[4]; /* a random number */
140 87a52e04 2005-12-26 devnull uchar secs[2]; /* elapsed since client started booting */
141 87a52e04 2005-12-26 devnull uchar flags[2];
142 87a52e04 2005-12-26 devnull uchar ciaddr[IPv4addrlen]; /* client IP address (client tells server) */
143 87a52e04 2005-12-26 devnull uchar yiaddr[IPv4addrlen]; /* client IP address (server tells client) */
144 87a52e04 2005-12-26 devnull uchar siaddr[IPv4addrlen]; /* server IP address */
145 87a52e04 2005-12-26 devnull uchar giaddr[IPv4addrlen]; /* gateway IP address */
146 87a52e04 2005-12-26 devnull uchar chaddr[Maxhwlen]; /* client hardware address */
147 87a52e04 2005-12-26 devnull char sname[64]; /* server host name (optional) */
148 87a52e04 2005-12-26 devnull char file[Maxfilelen]; /* boot file name */
149 87a52e04 2005-12-26 devnull uchar optmagic[4];
150 87a52e04 2005-12-26 devnull uchar optdata[Maxoptlen];
151 87a52e04 2005-12-26 devnull };