[ipxe-devel] PXENV_UDP_WRITE

Frediano Ziglio frediano.ziglio at citrix.com
Tue Feb 21 17:44:31 UTC 2012


On Wed, 2012-02-15 at 23:29 +0000, Michael Brown wrote:
> On Wednesday 15 Feb 2012 16:34:40 Simon Rowe wrote:
> > On Sunday 12 February 2012 13:38:43 Michael Brown wrote:
> > > PXE will never block on PXENV_UDP_WRITE.  As you describe, an ARP request
> > > will be sent instead of the UDP packet.  Since UDP is an unreliable
> > > protocol,  the caller must be prepared to retransmit the UDP packet, at
> > > which point hopefully the ARP response will have been received and the
> > > UDP packet can be sent.
> > 
> > Is returning AX=0 from PXENV_UDP_WRITE the correct action or should some
> > indication be given to the caller that the UDP packet was discarded?
> 
> Probably the latter.  It looks as though the error gets hidden in 
> udp_xfer_deliver().  Could you try the attached (untested) patch and see if it 
> does what you expect?
> 
> Thanks,
> 
> Michael

Hi Michael,
  patch propagate error correctly. I don't know if
PXENV_STATUS_TFTP_FILE_NOT_FOUND (0x3B) is the right error to expect,
specification define only PXENV_STATUS_ARP_TIMEOUT and
PXENV_STATUS_TFTP_CANNOT_ARP_ADDRESS errors for ARP.

Note also that if you call UDP_WRITE without UDP_OPEN ipxe returns
success and does not send any packet.

Regards
  Frediano



More information about the ipxe-devel mailing list