[syslinux] PXELINUX 4.10-pre*

Eric W. Biederman ebiederm at xmission.com
Wed May 4 12:10:30 PDT 2011


"H. Peter Anvin" <hpa at zytor.com> writes:

> On 05/04/2011 04:20 AM, Michael Brown wrote:
>> 
>> iPXE's UNDI driver uses VMware in interrupt-driven mode, as far as I remember.  
>> There are two workarounds that were added to cope with strange behaviour from 
>> VMware:
>> 
>> 1. Ignore packets with FrameLength==0 or FrameLength<BufferLength, both of 
>> which have been observed.

There are some weird cases here as FrameLength is only supposed to be
valid on the first fragment and ipxe looks at it on every fragment.

undiif.c only looks at FrameLength on the first fragment.

Right now undiif.c truncates packets to FrameLength which isn't quite
the same as ignoring them but close.

>> 2. Treat unexpected values of FuncFlag as equivalent to ISR_OUT_DONE.

pxelinux 4.10 already implements this.

>> Both of these fixes are commented in arch/i386/drivers/undinet.c, and neither 
>> requires specific detection of the VMware PXE stack.
>> 
>
> OK, both of these seem very reasonable.

My coworkers running under vmware were seeing some really bad download
times with the gpxe+pxelinux.0 combination.  Something like an hour
instead of 15s for a 1GB http transfer.  So I would be surprised if we
have fully figured out how to perform well on top of vmware.

Eric




More information about the Syslinux mailing list