[gPXE] [Etherboot-developers] [PATCH] [tftp] Kick off TFTP RRQ from a process to avoid losing first packet
Thomas Horsten
thomas at horsten.com
Thu Jan 14 09:20:31 EST 2010
2010/1/14 Stefan Hajnoczi <stefanha at gmail.com>:
> Does this patch fix the issue? It should be equivalent to adding a new process.
Yes, it does fix it. However, it spins an extra time before the socket
is ready. With the process approach xfer_window() is true the first
time round, and I'm guessing this is because the timers get scheduled
ahead of the processes.
> There is still an issue because UDP deliver_iob() does not fail when
> the packet is dropped due to an ARP cache miss. This means TFTP
> cannot determine whether a packet it sent was handed to the network
> device. I haven't audited other UDP user code but it is possible we
> could change UDP so that users know when packets are hitting the wire
> versus waiting for ARP.
That would probably be good. Again the wait objects I mentioned
earlier, or even a simple callback in the socket structure would be an
idea.
Thomas
More information about the gPXE
mailing list