Page MenuHomeFreeBSD

ixl(4): fix multicast promiscuous mode state tracking and filter management
ClosedPublic

Authored by Yogesh.Bhosale_intel.com on Sep 15 2025, 12:20 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Oct 11, 12:55 AM
Unknown Object (File)
Sat, Oct 11, 12:55 AM
Unknown Object (File)
Fri, Oct 10, 6:15 PM
Unknown Object (File)
Tue, Oct 7, 3:04 AM
Unknown Object (File)
Fri, Oct 3, 8:06 AM
Unknown Object (File)
Fri, Oct 3, 6:42 AM
Unknown Object (File)
Thu, Oct 2, 5:36 PM
Unknown Object (File)
Sat, Sep 27, 4:28 AM

Details

Reviewers
kbowling
gowtham.kumar.ks_intel.com
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Commits
rG46a8a1f08f88: ixl(4): fix multicast promiscuous mode state tracking and filter management
Summary

This change reapplies the improvements from commit 89e7335 and adds
additional fixes and code optimizations on top of it.

The ixl driver supports up to 128 multicast filters in hardware. When this
limit is exceeded, the driver should enable multicast promiscuous mode.
When the count drops below 128, it should disable promiscuous mode and
restore individual filters.

The driver previously had problems that could corrupt multicast filters list.
The main issue was that ixl_dis_multi_promisc() would attempt to disable
promiscuous mode without checking if it was actually enabled, potentially
corrupting existing filters. There was also no state tracking across driver
functions, leading to redundant operations.

This change adds an IXL_FLAGS_MC_PROMISC flag to track the multicast
promiscuous mode state. The flag is set when enabling promiscuous mode and
cleared when disabling it. Early return checks prevent redundant operations
when the mode is already in the desired state, avoiding filter corruption
and unnecessary hardware calls.

Signed-off-by: Yogesh Bhosale yogesh.bhosale@intel.com

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Owners added a reviewer: Restricted Owners Package.Sep 15 2025, 12:20 PM
kbowling added a subscriber: kbowling.

Looks good thanks for chasing it down

sys/dev/ixl/if_ixl.c
1494–1498

Nit: use C /* style comment

This revision is now accepted and ready to land.Wed, Oct 15, 3:29 PM
kgalazka added inline comments.
sys/dev/ixl/if_ixl.c
1494–1498

Fixed while merging