]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[efi] Add support for driving EFI_MANAGED_NETWORK_PROTOCOL devices
authorMichael Brown <mcb30@ipxe.org>
Fri, 22 Mar 2024 15:30:45 +0000 (15:30 +0000)
committerMichael Brown <mcb30@ipxe.org>
Mon, 25 Mar 2024 17:58:33 +0000 (17:58 +0000)
commitdcad73ca5ad3e1fe011c52a24036f67ad69fadc1
treeecb05e55a634d6d63cc46f6f3a02eb3930e30eb6
parentda5188f3ea73900f1c6a4e44a8345b48320d396f
[efi] Add support for driving EFI_MANAGED_NETWORK_PROTOCOL devices

We want exclusive access to the network device, both for performance
reasons and because we perform operations such as EAPoL that affect
the entire link.  We currently drive the network card via either a
native hardware driver or via the SNP or NII/UNDI interfaces, both of
which grant us this exclusive access.

Add an alternative driver that drives the network card non-exclusively
via the EFI_MANAGED_NETWORK_PROTOCOL interface.  This can function as
a fallback for situations where neither SNP nor NII/UNDI interfaces
are functional, and also opens up the possibility of non-destructively
installing a temporary network device over which to download the
autoexec.ipxe script.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/Makefile.efi
src/drivers/net/efi/mnp.c [new file with mode: 0644]
src/drivers/net/efi/mnpnet.c [new file with mode: 0644]
src/drivers/net/efi/mnpnet.h [new file with mode: 0644]
src/drivers/net/efi/snp.c
src/drivers/net/efi/snpnet.c
src/drivers/net/efi/snpnet.h
src/drivers/net/efi/snponly.c
src/include/ipxe/errfile.h