[pxe] Implicitly open network device in PXENV_UDP_OPEN
authorMichael Brown <mcb30@ipxe.org>
Tue, 22 Mar 2016 17:33:21 +0000 (17:33 +0000)
committerMichael Brown <mcb30@ipxe.org>
Tue, 22 Mar 2016 17:33:21 +0000 (17:33 +0000)
commit3df598849b53c8bf5e87b6c300fdee6d0c0480f1
tree5a283e56bd9294d98003b008a2688b503ee5a101
parentee3122bc54631711e192c934734f3f5be40c2fa9
[pxe] Implicitly open network device in PXENV_UDP_OPEN

Some end-user configurations have been observed in which the first NBP
(such as GRUB2) uses the UNDI API and then transfers control to a
second NBP (such as pxelinux) which uses the UDP API.  The first NBP
closes the network device using PXENV_UNDI_CLOSE, which renders the
UDP API unable to transmit or receive packets.

The correct behaviour under these circumstances is (as often) simply
not documented by the PXE specification.  Testing with the Intel PXE
stack suggests that PXENV_UDP_OPEN will implicitly reopen the network
device if necessary, so match this behaviour.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/x86/interface/pxe/pxe_udp.c