[ipxe-devel] Problem with accessing iPXE via UNDI

Michael Brown mbrown at fensystems.co.uk
Wed Jul 10 18:20:27 UTC 2013


On Wednesday 10 Jul 2013 15:30:08 H. Peter Anvin wrote:
> The most recent version of Syslinux supports a builtin TCP/IP stack
> which is used to handle HTTP-based protocols.  This works well on
> traditional PXE stacks, but it fails horribly on iPXE.  The reason seems
> to be that iPXE, with its own builtin TCP stack, sends an RST in
> response to any incoming TCP packet with a port number it doesn't
> recognize, even though it has an NBP as an UNDI stack listener open.

Interesting.  Calling PXENV_UNDI_OPEN (or attempting to transmit a packet via 
PXENV_UNDI_TRANSMIT) will call netdev_rx_freeze() on the relevant network 
device.  Once this has been done, net_poll() will leave any received packets 
on the device's RX queue, and will not pass them up the stack.  They should 
never reach the TCP layer.

Are you sure that the RST is coming from iPXE?  If iPXE is built with 
DEBUG=tcp:3, do you see any messages corresponding to the RST packets?

Michael



More information about the ipxe-devel mailing list