[ipxe-devel] PXENV_UDP_WRITE

Michael Brown mbrown at fensystems.co.uk
Tue Mar 13 16:20:08 UTC 2012


On Tuesday 13 Mar 2012 15:48:13 Frediano Ziglio wrote:
> > What is your motivation for wanting PXENV_UDP_WRITE to block?
> 
> Here at Citrix we support a product called PVS (Provisioning System)
> that has software that allow pc to download disk images while booting.
> The part of software that handle PXE booting expects this UDP behaviour.
> 
> I think your patch is an improve cause packet get transmitted just after
> the ARP reply arrives. But caller should know that this packet as been
> queued in order to avoid trying sending a new one.
> Also ARP should know that client does not want to send packet anymore
> and dequeue the packet.

So the problem is that PVS retransmits immediately if PXENV_UDP_WRITE returns 
any kind of error, and this results in PVS effectively sending lots of 
duplicates of the first packet?

If so, then the only sensible solution would seem to be to treat ARP enqueing 
as a "success", and change "return -EAGAIN;" in arp_tx() to "return 0;".  This 
would result in PVS thinking that the packet had been transmitted 
successfully; in practice the packet would end up being transmitted as soon as 
the ARP response arrived.

Could you let me know if this change solves your problem?

Michael



More information about the ipxe-devel mailing list