On Mon, Jun 21, 2010 at 5:25 PM, H. Peter Anvin <h...@zytor.com> wrote: > On 06/21/2010 03:08 AM, Stefan Hajnoczi wrote: >> >> The UDP packet is destined for an IP that is not in the ARP cache. >> gPXE does not queue UDP TX packets, it will drop the packet and >> silently ignore this return this error when no link layer destination >> is known yet (udp_xfer_deliver_iob ignores the error). >> >> I imagine the reasoning behind ignoring the error is that application >> protocols using UDP must deal with retransmit anyway, which leads to >> the next point: I can't see PXELINUX retransmitting the DNS UDP >> packet. The code in core/fs/pxe/dnsresolv.c has timeout logic but it >> isn't kicking in. Any idea what is happening on the SYSLINUX side? >> > > For what it's worth, this behavior is inconsistent with vendor PXE > stacks, and has forced me to cut the timeouts significantly in PXELINUX > in order to not get unacceptable performance. This has a somewhat bad > impact on high latency networks.
Yes it's weird and can have negative effects. I noticed this quirk when Thomas Horsten was debugging compatibility and speed with QEMU's built-in TFTP server. Relying on the application code to timeout and retransmit slows the boot down. Nice, I just retested the latest syslinux.git and see your fix is working here: http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=commitdiff;h=4e7d836b8cdc0e785ac6e0a78b258c4e193d2222 Stefan _______________________________________________ gPXE-devel mailing list gPXE-devel@etherboot.org http://etherboot.org/mailman/listinfo/gpxe-devel