<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>Re: [U-Boot-Users] [PATCH] DHCP Client Fix</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Ben,<BR>
<BR>
Just a note...one of the ways that I came up with this solution that is presented in this patch was from observing a Fedora Linux machine and an Apple MacBook Pro interact with the same routers because these computers were able to get an IP address through either Linksys DHCP server consistently.&nbsp; There were some differences in the data that was included in each of the DHCP negotiation packets but it was the difference you see in the patch that allowed U-Boot to work with the new firmware. After doing some research on DHCP IP assignments, this seemed like a viable solution according to the spec.<BR>
<BR>
Justin<BR>
<BR>
<BR>
&gt;Wolfgang Denk wrote:<BR>
&gt;&gt;Dear Justin,<BR>
&gt;&gt;<BR>
&gt;&gt;in message &lt;4155D0DA4B6B044891B3F19311C7E7B89C45E4@EXCHANGE1.886llc.local&gt; you wrote:<BR>
&gt;&gt;&nbsp;<BR>
&gt;&gt;&gt;I recently upgraded the firmware on some of my old Linksys WRT54G<BR>
&gt;&gt;&gt;routers (version 5) from firmware version 1.0.6 to firmware version<BR>
&gt;&gt;&gt;1.02.2, both of which are released by Linksys and U-Boot was no longer<BR>
&gt;&gt;&gt;able to get an IP address using DHCP.&nbsp; However, with the older firmware<BR>
&gt;&gt;&gt;(version 1.0.6), U-Boot was still able to get an IP through DHCP.<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;Using a hub and a packet sniffer, I was able to locate the problem.&nbsp; The<BR>
&gt;&gt;&gt;U-Boot code will bind to an IP address offered by the DHCP server<BR>
&gt;&gt;&gt;prematurely and the DHCP server will not respond with an ACK, rendering<BR>
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;<BR>
&gt;&gt;I have to admit that I'm not sure if this is a bug in&nbsp; U-Boot&nbsp; or&nbsp; in<BR>
&gt;&gt;the&nbsp; Linksys&nbsp; router&nbsp; (which I have under special observation as they<BR>
&gt;&gt;explicitely and intentionally violate the U-Boot GPL).<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;&gt;the system without an IP address.&nbsp; This is no longer valid when using a<BR>
&gt;&gt;&gt;Linksys router as DHCP server.&nbsp; I modified the code to operate the way<BR>
&gt;&gt;&gt;the Linux DHCP client does by not binding to the offered IP until the<BR>
&gt;&gt;&gt;DHCP client receives the ACK sent by the server, ending the<BR>
&gt;&gt;&gt;conversation.&nbsp; After making the appropriate changes, DCHP service was<BR>
&gt;&gt;&gt;restored for all flavors of the Linksys firmware that I have available<BR>
&gt;&gt;&gt;(v 1.02.2 and v1.0.6 for the version 5 router, v8.00.2 for the version 8<BR>
&gt;&gt;&gt;router).&nbsp; It has also been tested on an AirPort Extreme router running<BR>
&gt;&gt;&gt;DHCP.<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;Attached is the patch with the code changes that were made. Any feed<BR>
&gt;&gt;&gt;back would be appreciated.<BR>
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;I'm waiting for feedback (or a pull request?) from the network<BR>
&gt;&gt;custodian.<BR>
&gt;&gt;<BR>
&gt;&gt;Ben???<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;This looks promising.&nbsp; I'll provide feedback after doing some testing tomorrow.<BR>
&gt;<BR>
&gt;regards,<BR>
&gt;Ben&nbsp; </FONT>
</P>

</BODY>
</HTML>