aboutsummaryrefslogtreecommitdiff
path: root/index.html
blob: 4f2f8a504bdc58001f8d46b66818c2f18a2e82a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<HTML>
<HEAD>
<TITLE>udhcp Server/Client Package</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<CENTER><H1>udhcp Server/Client Package</H1></CENTER>
The udhcp Server/Client Package (licensed under the GPL -- see <A HREF="COPYING">COPYING</A> for details) was originally designed to run on a 
<A HREF="http://www.moreton.com.au/MBWEB/product/nettel/nettel.htm">NETtel</A> (which
runs on Greg Ungerer's <A HREF="http://www.moretonbay.com/coldfire/linux-coldfire.html">
uClinux-coldfire linux port</A>).
<BR><BR>
<H2>Call for testing</H2>
<P>The 0.9.x version of udhcp is basically a complete rewrite of the previous versions and has matured very quickly. I'd like to get a list together of both known interoptability, and platforms that udhcp compiles/works on. I've noticed that win98 often requests unicast packets when it can only receive broadcast packets, so I started a unicast blacklist within the server, and I'm suspected that win95 will go in there too. If I notice that this behavior is too widespread, I'll probably just drop unicasting altogether. As soon as the list is more or less complete, I'll release a stable version of udhcp</P>

<P>If you have something to add to the list, let
 <A HREF="mailto:Russ.Dill@asu.edu">me</A> know</P>

<A HREF="client_interopt.html">Client Interoptability list</A><BR>
<A HREF="server_interopt.html">Server Interoptability list</A><BR>
<A HREF="client_platforms.html">Working client platforms</A><BR>
<A HREF="server_platforms.html">Working server platforms</A><BR>

<H2>Download</H2>
Download the latest version (includes client):
<A HREF="source/udhcp-0.9.8.tar.gz">udhcp-0.9.8.tar.gz</A> (43k) 31 Oct, 2002
<BR>

<A HREF="cvs.html">Download</A> the CVS version of udhcp or <A HREF="http://busybox.net/cgi-bin/cvsweb/udhcp/ ">browse</A> the CVS.
<BR>

Download on old version of udhcp: 
<A HREF="source/dhcpd-0.8.25.tgz">dhcpd-0.8.25.tgz</A> (22k) 20 January, 2000
<BR>

Download a windows port by Daniel Parnell
<A HREF="source/dhcpd-win-0.8.25.tgz">dhcpd-win-0.8.25.tgz</A> (65k) 6 April, 2000
<BR>

Download the old development version:
<A HREF="source/dhcpd-0.8.29.tgz">dhcpd-0.8.29.tgz</A> (22k) 6 April, 2000
<BR>
<UL>
0.9.8 (021031)<BR>
<LI> split up README files (me)
<LI> use /dev/urandom to seed xid's (instead of time(0)) (me)
<LI> fixed renew behavior (me)
<LI> udhcp now fits nicely into busybox (Glenn McGrath as well as myself)
<LI> updated client manpage (me)
<LI> both client and server now use sockets for signal handling,
  hopefully, this will be the last needed change in signal
  handling, I'm fairly certain all the possible races are now
  closed. (me)
<LI> The server now restarts the auto_time timer when it receives
  a SIGUSR1 (write out config file). (me)
<LI> Improve signal handling (David Poole)
<LI> Fix to config file parsing (Matt Kraai)
<LI> Fix load lease logic (me)
<LI> Fix clear_lease logic (me)
<LI> -h is now an alias for -H (udhcp bug #1253)
<LI> Shorter timeout on not receiving offers (me)
<LI> Improved signal behavior by client (me)
<LI> Would never assign end address (Keith Smith)
<LI> Was improperly reporting yiaddr as siaddr (ben)
  udhcp bug#1256
<LI> Fixed reading of client id (David Poole)
<LI> change sys_errlist[] to strerror() as it aparently doesn't exist  (Erik Anderson)
<LI> fixed get_raw_packet so it returns -2 on non fatal errors (Ted Lemon)
<LI> Improved (hopefully) NAKing behavior (me)
<LI> Added -b option (Jouni Malinen)
<LI> Compute checksums correctly on big endian hosts  (Jouni Malinen)
<BR><BR>
0.9.7 (020526) <BR>
<LI> Use add_lease in read_leases, sanitizes leases more, and clears out exprired ones if there is no more room (me)
<LI> Moved udhcpd.leases to /var/lib/misc/udhcpd.leases (Debian bug #147747)
<LI> Change (obsolete) AF_INET in arping.c to PF_PACKET (Debian bug #127049)
<LI> Added script hook for DHCPNAK (nak), as well as providing the message option  (me)
<LI> Generate the paramaters request list by seeing what options in options.c are ored with OPTION_REQ in options.c
<LI> Fix dhcp renew forgetfullness on client (bug #1230)
<LI> Fix dhcp release bug on client (bug #1231)
<LI> Set option request list for DHCP renew (bug #1233)
<LI> Set BOOTREQUEST/REPLY properly
<LI> Change client-identifier field to popularly expected behavior (me)
<LI> Only reopen port on errors (me)
<LI> Change fork/close/setsid structures to daemon() (me)
<LI> Allow user to specify udhcpd config file at run time (Steven, me)
<LI> Write pidfile after changing it (Steven CTR Carr)
<LI> Added env var docs to udhcpc man page (Matt)
<LI> Standardized lowercase udhcp in documentation (me)
<LI> Accept packets without a UDP checksum (me)
<LI> Accept packets with extra garbage (me)
<LI> Better error handling in files.c (me)
<LI> Combined read_interface function to reduce COMBINED_BINARY size (me)
<LI> Drop calc_length(), some servers choke on smaller packets (me)
<LI> Try to clean some fat out (me)
<BR><BR>
0.9.6 (011001) <BR>
<LI> Added bootp paramaters to server (me)
<LI> Added bootp paramaters to client (me)
<LI> Added vendor id to client (me)
<LI> Better pidfile handling in client and server (me)
<LI> Added man pages (Matt Kraai)
<BR><BR>
0.9.5 (010914)<BR>
<LI> Fixed $HOME and $PATH env passing (me)
<LI> Fixed client to only listen for raw packets on correct interface (me)
<LI> added --quit,-q option to quit after a lease is obtained (me)
<LI> Fixed 100% CPU utilization by client when interface is down (me)
<BR><BR>
0.9.4 (010827)<BR>
<LI> Force broadcast to broken clients that request unicast (ie, MSFT 98) (me)
<LI> Make install rules (Adam J. Richter)
<LI> One scripts, instead of many (Adam)
<LI> Removed script paramater info files (env vars only) (Adam)
<LI> Controlling of forking behavior in client (Adam)
<LI> General script.c/dhcpc.c cleanups (Adam)
<BR><BR>
0.9.3 (010820)<BR>
<LI> Increased debugging verbosity (me)
<LI> Cut trailing whitespace when reading config file (me)
<LI> added hostname option to client (me)
<LI> fixed a strncpy bug in script.c (me)
<LI> fixed a leaky socket in dhcpc.c (me)
<LI> fixed a leaky socket in dhcpd.c (me)
<BR><BR>
0.9.2 (010810)<BR>
<LI> Added raw sockets to client (me)
<LI> alignment fixes (Mark Huang)
<LI> compiler warning fixes (Mark Huang)
<LI> client now sends parameter list (Mark Huang/me)
<LI> added ipttl option
<LI> Does now not request broadcast packets
<BR><BR>
0.9.1 (010806)<BR>
<LI> Added udhcpc client
<LI> reorganized functions/files
<LI> listening socket now only binds to one interface
<BR><BR>
0.9.0 (010720) Major rewrite, current changes, goals:<BR>
<LI> should not segfault on bogus packets.
<LI> Options can be read from sname and file fields.
<LI> supports all DHCP messages (release, decline, inform).
<LI> IP block is now specified by a range of IP's.
<LI> Leases file now contains lease time (relative, or absolute).
<LI> Just about any DHCP option is now supported.
<LI> DNS entries are no longer read from resolv.conf
<LI> Lease file can be written periodically when the process receives a SIGUSR1
<LI> arpping should be supported on all arches.
<LI> support for DHCP relays.
<LI> DHCP messages can be unicast if the client requests it.
<LI> many, many, many other things.
</UL>

<BR>Development is quite active right now, so I'd really like to know what you think.
<BR>

<H2>Why would I want to use the udhcp server/client</H2>
<P>The udhcp server/client is targeted deliberately at embedded environments...
Other linux DHCP servers out there (such as the ISC DHCP server) are targeted
at larger systems such as PCs (with more RAM/disk space/etc.).
As a result, the udhcp package does not have as large a feature set
as some of these DHCP packages.</P>
<BR>
<P>Compiled against uClibc, both the server and client binaries are around 18k and when
compiled as one combined binary, has a size of 28k. udhcp is a perfect fit for embedded
systems requring DHCP capabilities.</P>
<BR>
<P>The udhcp server lease file is in binary format making the additional storage space required 
for IP and MAC addresses minimal. It also has the option of storing lease times in absolute 
form, or relative form, for systems without a clock. The lease file can also be saved 
periodically or by using a signal for systems with flash memory.</P>
<BR>
<P>The client accepts all options on the command line, and calls external scripts to handle the
configuration of interfaces to allow for the ultimate flexibility.</P>
<BR>

<H2>Documentation</H2>
The operation is fairly straightforward, and the latest README can be found <a href="README">here.</a><BR>
<LU>
<LI>Server README <a href="README.udhcpd">README.udhcpd</a>
<LI>Client README <a href="README.udhcpc">README.udhcpc</a>
<LI>Dump leases README <a href="README.dumpleases">README.dumpleases</a>
<LI>Sample server config file <a href="udhcpd.conf">udhcpd.conf</a>
</LU>

<H2>Mailing List</H2>
udhcp now has a <a href=/lists/udhcp>mailing list</a><br>
To subscribe, click  <a href="http://codepoet.org/mailman/listinfo/udhcp">here</a><br>

<H2>Links</H2>
<BR>
<A HREF="http://www.uclibc.org">uClibc</A>
<BR>
<A HREF="http://www.busybox.net">Busybox</A>
<BR>
<A HREF="http://www.lineo.com">Lineo</A>
<BR>
<A HREF="http://www.snapgear.com">SnapGear</A>
<BR>
<A HREF="http://opensource.lineo.com/projects.html">Other Lineo opensoure projects</A>

<H2>Sponsors</H2>
<BR>
<A HREF="http://opensource.se">opensource.se</A>
Embedded open source consulting in Europe.<BR>
<A HREF="http://i-netinnovations.com">http://i-netinnovations.com/</A>
Web hosting (they host busybox.net and uclibc.org).<BR>
<A HREF="http://www.codepoet-consulting.com">Codepoet Consulting</A>
Custom Linux, embedded Linux, BusyBox, and uClibc development.<BR>



<BR><BR>
<HR>
<a HREF="http://bugs.busybox.net/db/pa/ludhcp.html">Bugs</a>? 
<a HREF="http://bugs.busybox.net/Reporting.html">Submit them.</a><BR>
Have a question/comment? Have a patch? Email me:
<TABLE><TR>
<TD><A HREF="mailto:Russ.Dill@asu.edu">Russ Dill</A></TD>
</TR><TR>
<TD><A HREF="mailto:matthewr@moreton.com.au">Matthew Ramsay</A></TD>
</TR></TABLE>
<BR><BR><I>$Id: index.html,v 1.19 2004/12/04 02:13:37 vapier Exp $</I>
</BODY>
</HTML>