HomeFreeBSD

e1000: Correct promisc multicast filter handling

Description

e1000: Correct promisc multicast filter handling

There are a number of issues in the e1000 multicast filter handling
that have been present for a long time. Take the updated approach from
ixgbe(4) which does not have the issues.

The issues are outlined in the PR, in particular this solves crossing
over and under the hardware's filter limit, not programming the
hardware filter when we are above its limit, disabling SBP (show bad
packets) when the tunable is enabled and exiting promiscuous mode, and
an off-by-one error in the em_copy_maddr function.

PR: 140647
Reported by: jtl
Reviewed by: markj
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D29789

Details

Provenance
Kevin Bowling <kbowling@FreeBSD.org>Authored on Apr 16 2021, 11:15 PM
Reviewer
markj
Differential Revision
D29789: e1000: Correct promiscuous multicast filter handling
Parents
rGdeecaa144526: ixgbe: Clean up unneeded set in ixgbe_if_multi_set
Branches
Unknown
Tags
Unknown