[U-Boot] [PATCH] net: BOOTP retry timeout improvements

Joe Hershberger joe.hershberger at gmail.com
Wed Aug 6 22:03:57 CEST 2014


On Fri, Jul 25, 2014 at 6:30 PM, Stephen Warren <swarren at wwwdotorg.org>
wrote:
>
> From: Stephen Warren <swarren at nvidia.com>
>
> Currently, the BOOTP code sends out its initial request as soon as the
> Ethernet driver indicates "link up". If this packet is lost or not
> replied to for some reason, the code waits for a 1s timeout before
> retrying. For some reason, such early packets are often lost on my
> system, so this causes an annoying delay.
>
> To optimize this, modify the BOOTP code to have very short timeouts for
> the first packet transmitted, but gradually increase the timeout each
> time a timeout occurs. This way, if the first packet is lost, the second
> packet is transmitted quite quickly and hence the overall delay is low.
> However, if there's still no response, we don't keep spewing out packets
> at an insane speed.
>
> It's arguably more correct to try and find out why the first packet is
> lost. However, it seems to disappear inside my Ethenet chip; the TX chip
> indicates no error during TX (not that it has much in the way of
> reporting...), yet wireshark on the RX side doesn't see any packet.
> FWIW, I'm using an ASIX USB Ethernet adapter. Perhaps "link up" is
> reported too early or based on the wrong condition in HW, and we should
> add some fixed extra delay into the driver. However, this would slow down
> every link up event even if it ends up not being needed in some cases.
> Having BOOTP retry quickly applies the fix/WAR to every possible
> Ethernet device, and is quite simple to implement, so seems a better
> solution.
>
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
> ---

Acked-by: Joe Hershberger <joe.hershberger at ni.com>


More information about the U-Boot mailing list