
Hello,
I'm seeing problems with the DHCP mechanism in U-Boot and the DHCP server on Windows Server 2000/2003. We use U-Boot 1.2 on an at91rm9200 based platform with the DM9161 PHY.
Now I understand that this may not be a U-Boot problem, but for the sake of interoperability it may be a good idea to try and fix it as many people use Windows Server ...
Normally we use Un*x DHCP servers and I get 100% success rate but with the Microsoft version of DHCP I see about a 75% success rate. i.e. 1 in 4 requests will fail.
Looking at the packets with Ethereal, it looks like the DHCP server isn't sending the final "DHCP ACK" for the "DHCP Request" from the U-Boot. Something that U-Boot is sending in the "DHCP Request" to the Windows Server is causing it to fail occasionally.
As a comparison, I used udhcpc from Busybox to make the DHCP request and I get a 100% success rate.
There are some obvious differences between the requests from the two pieces of software. (my test Windows Server 2003 DHCP server is on 10.1.1.1 and is offering 10.1.1.2). As I am not a low level DHCP packet expert, perhaps someone else can make sense of this. I will also start studying the BOOTP options fields and try and understand if any of the U-Boot DHCP packet options are incorrect.
** U-Boot DHCP sequence **
DHCP Discover: Seconds Elapsed = 1 Your (client) IP address: 0.0.0.0 (0.0.0.0) Next server IP address: 0.0.0.0 (0.0.0.0) Option 53: DHCP Message Type = Discover Option 57: Maximum DHCP Message Size = 576 Option 55: Parameter Request List 1 = Subnet Mask 3 = Router 12 = Host name 17 = Root Path
DHCP Request: Seconds Elapsed = 1 Your (client) IP address: 10.1.1.2 (10.1.1.2) Next server IP address: 10.1.1.1 (10.1.1.1) Option 53: DHCP Message Type = DHCP Request Option 57: Maximum DHCP Message Size = 576 Option 54: Server Identifier = 10.1.1.1 Option 50: Requested IP Address = 10.1.1.2 Option 55: Parameter Request List 1 = Subnet Mask 3 = Router 12 = Host name 17 = Root Path
** udhcpc DHCP sequence **
DHCP Discover: Seconds Elapsed = 0 Your (client) IP address: 0.0.0.0 (0.0.0.0) Next server IP address: 0.0.0.0 (0.0.0.0) Option 53: DHCP Message Type = DHCP Discover Option 61: Client Identifier Hardware type: Ethernet Client MAC address: ... Option 60: Vendor class identifier = "udhcp 0.9.9-pre" Option 55: Parameter Request List 1 = Subnet Mask 3 = Router 6 = Domain Name Server 12 = Host Name 15 = Domain Name 28 = Broadcast Address 40 = Network Information Service Domain 41 = Network Information Service Servers 42 = Network Time Protocol Servers
DHCP Request: Seconds Elapsed = 0 Your (client) IP address: 0.0.0.0 (0.0.0.0) Next server IP address: 0.0.0.0 (0.0.0.0) Option 53: DHCP Message Type = DHCP Request Option 61: Client Identifier Hardware type: Ethernet Client MAC address: ... Option 60: Vendor class identifier = "udhcp 0.9.9-pre" Option 50: Requested IP Address = 10.1.1.2 Option 54: Server Identifier = 10.1.1.1 Option 55: Parameter Request List 1 = Subnet Mask 3 = Router 6 = Domain Name Server 12 = Host Name 15 = Domain Name 28 = Broadcast Address 40 = Network Information Service Domain 41 = Network Information Service Servers 42 = Network Time Protocol Servers
regards,
Aras Vaichas
______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________