Hi everyone,
I am currently working on a pxe boot loader that must use the PXE UDP interface.
Well, it works (I can get UDP packets from network), but I miss A LOT of packets, which is not the case when I do use the TFTP interface.
Perhaps is this due to the non-blocking PXENV_UDP_READ function: I need to loop calling this function until it returns success.
I also tried to halt between all non-success calls, counting on the fact that the NIC will raise an interruption each time it will receive a packet, but as of now, nothing worked as good as I expected.
Has anybody used this PXE UDP interface to read packets ?
Is there a specific trick to configure the PXE stack ?
Perhaps shouldn't I loop to read, so is there a way to have a blocking read function, or can I be notified that a packet has been received and is available ?
Thanks to anybody that could have any clue on this.
PXE UDP stack
Re: PXE UDP stack
Well: I faced the problem for weeks.... And found the solution right after having created this post ...
The point was that I used too big packets to fit in an ethernet frame. Apparently, pxe stacks have only one single packet buffer, which means that the the second partof the IP packet was lost in lots of cases.
I did reduce my UDP packet data size (to 1460), and it now works...
Sorry for asking a question and answering few hours later... but maybe this info could be useful for somebody...
The point was that I used too big packets to fit in an ethernet frame. Apparently, pxe stacks have only one single packet buffer, which means that the the second partof the IP packet was lost in lots of cases.
I did reduce my UDP packet data size (to 1460), and it now works...
Sorry for asking a question and answering few hours later... but maybe this info could be useful for somebody...