]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[efi] Try various possible SNP receive filters
authorCurtis Larsen <larsen@dixie.edu>
Tue, 5 Aug 2014 18:27:10 +0000 (19:27 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 5 Aug 2014 22:10:34 +0000 (23:10 +0100)
commit2ce1c70166e5bdcda6c17f184755b684fa1811c3
tree0f70ea86cd222748357f130d3b47999f9b48b607
parent7b3cc18462425ab816348103f1bfa2546d248d37
[efi] Try various possible SNP receive filters

The behavior observed in the Apple EFI (1.10) RecieveFilters() call
is:

  - failure if any of the PROMISCUOUS or MULTICAST filters are
    included

  - success if only UNICAST is included, however the result is
    UNICAST|BROADCAST

  - success if only UNICAST and BROADCAST are included

  - if UNICAST, or UNICAST|BROADCAST are used, but the previous call
    tried (and failed) to set UNICAST|BROADCAST|MULTICAST, then the
    result is UNICAST|BROADCAST|MULTICAST

Work around this apparently broken SNP implementation by trying
RecieveFilterMask, then falling back to UNICAST|BROADCAST|MULTICAST,
then UNICAST|BROADCAST, and finally UNICAST.

Modified-by: Michael Brown <mcb30@ipxe.org>
Tested-by: Curtis Larsen <larsen@dixie.edu>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/efi/snpnet.c