[U-Boot-Users] dhcp problems with Windows Server

Aras Vaichas arasv at magellan-technology.com
Thu Oct 12 01:46:39 CEST 2006


Wolfgang Denk wrote:
> In message <452C8358.40009 at magellan-technology.com> you wrote:
>> I'm not sure what the actual delay should be and I'm not sure where it should
>> go. Wolfgang, can you suggest a place to put a delay, and should it be wrapped
>> in a CONFIG_ option?
> 
> I don't want to add such a delay. The RFC does not include any timing
> information, which means that packets can be sent immediately. 

Wolfgang,

I fully understand that and no-one wants to have to include delays in their
system but unfortunately Microsoft didn't write their DHCP server code to allow
for a client which responds as quickly as U-Boot can.

No-one is ever going to be able to fix old copies of Windows Server, so I
suggest an interoperability patch which allows U-Boot to work better with
Windows Server DHCP service. A small delay at boot time is certainly a lot
cheaper than spending hours on the telephone for customer support.

Our product has a customer base of over 1000 units and most of those will,
unfortunately, use Windows Server 2000/2003 as their DHCP server. We've known
for a long time that certain DHCP servers were causing problems and we were
telling people that they should use a fixed IP address until they fixed their
DHCP service. It wasn't until we sent an engineer from Australia to France that
we knew the depth of this interoperability problem.

My testing shows that a delay of around 15ms before sending the "DHCP Request"
will work 100% of the time with the VMware Windows Server 2003 that I set up on
my PC so I am going to put a delay of 30ms in my U-Boot image for safety.

I will send a U-Boot upgrade package to several of our customer sites for
testing before I roll it out to all of our customers.


regards,

Aras Vaichas


--- current/net/bootp.c 2005-11-18 12:18:48.000000000 +1100
+++ u-boot-1.1.3-MAGARMv3/net/bootp.c   2006-10-11 16:35:51.000000000 +1000
@@ -844,6 +844,10 @@
        NetSetIP(iphdr, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, iplen);

        debug ("Transmitting DHCPREQUEST packet: len = %d\n", pktlen);
+       // delay a small amount because Windows Server 2003 has problems if you
reply too quickly
+       // 15ms was proven to be OK on my at91rm9200 system, so I'll double it
just in case
+        udelay(30000);
+
        NetSendPacket(NetTxPacket, pktlen);
 }




______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________




More information about the U-Boot mailing list