Re: [U-Boot-Users] PATCH for U-Boot 1.3.3 DHCP fails withnetgearWGR614v6

In message 200807120112.18889.rgetz@blackfin.uclinux.org you wrote:
Hmm.. The list was copied every time
But until now none of the messages made it to the list, it seems.
It looks like my mails take longer to get to sourceforge than it takes to go somewhere specific (like Ben), but his responses hit the list before mine .... weird - I'll have to check my mail logs...
This message came through without significant delay.
I have a DHCP server (made by netgear) that does:
U-Boot ---> DHCPDISCOVER ---> Server / U-Boot <--- DHCPOFFER <--- Server / U-Boot ---> DHCPREQUEST ---> Server | U-Boot <--- ARP <--- Server | U-Boot ---> I'm here ---> Server | U-Boot <--- DHCPNAK <--- Server / U-Boot not configured
Before U-Boot receives a DHCPACK packet, it starts using the IP number in the DHCPOFFER to respond to the ARP. It should not respond to the ARP, since it has not received the DHCPACK packet yet. It also uses it when it sends the DHCPREQUEST packet.
I looked a few other dhcp clients, and they always leave the source IP as 0.0.0.0 for the DHCPREQUEST packet, and do not listen/send that IP until they receive a DHCPACK.
This is what the patch I sent to Ben does - don't set the network up during the DHCPREQUEST phase.
--- net/bootp.c.new 2008-07-11 12:05:18.000000000 -0400 +++ ./net/bootp.c 2008-07-11 18:58:15.000000000 -0400 @@ -924,8 +924,6 @@ if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC)) DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp);
BootpCopyNetParams(bp); /* Store net params from reply */
NetSetTimeout(TIMEOUT * CFG_HZ, BootpTimeout); DhcpSendRequestPkt(bp);
#ifdef CFG_BOOTFILE_PREFIX
Hm... the line in question is there right from the initial version of the file, i. e. it is not a spefic fix to any known issue.
So:
Acked-by: Wolfgang Denk wd@denx.de
Ben: feel free to add this fix for the current release.
Best regards,
Wolfgang Denk
participants (1)
-
Wolfgang Denk