There are at least two SNP implementations that potentially do not play well with snpnet.c expectations (iPXE's own and some versions of at least one vendor's implementation).  iPXE returns a pointer that has nothing to do with the data transmitted.  Another vendor fails to ever return a null in some versions.<br>
<br>Rather than wait for a null pointer to come back every polling interval, freeing matching non-null pointers as it goes, instead on every transmit wait for a non-null pointer and free the iobuf regardless of the actual pointer returned.  This more approximates the behavior of the UEFI core PXE stack.<br>
<br><a href="https://git.ipxe.org/vendor/xcat/ipxe.git/commitdiff/03281fe80a9346acdd6f34f8744740520017113b">https://git.ipxe.org/vendor/xcat/ipxe.git/commitdiff/03281fe80a9346acdd6f34f8744740520017113b</a><br>