Page MenuHomeFreeBSD

if_bridge: widen IGMPv3 record handling to conservative ASM reduction
Needs ReviewPublic

Authored by namkhanh052005_gmail.com on Aug 9 2026, 4:38 PM.
Tags
None
Referenced Files
F171329868: D58746.id183732.diff
Thu, Sep 10, 11:24 AM
Unknown Object (File)
Wed, Sep 9, 8:51 PM
Unknown Object (File)
Tue, Sep 8, 4:57 PM
Unknown Object (File)
Sat, Sep 5, 4:20 PM
Unknown Object (File)
Wed, Sep 2, 11:00 AM
Unknown Object (File)
Wed, Sep 2, 7:37 AM
Unknown Object (File)
Tue, Sep 1, 1:39 PM
Unknown Object (File)
Mon, Aug 31, 4:44 PM

Details

Reviewers
ivy
Summary

Widens the IGMPv3 record handling from D3, which created (*,G) state only
for EXCLUDE-mode records with an empty source list. Any record expressing
positive interest now creates or refreshes (*,G) state: EXCLUDE with any
source list, and INCLUDE-family or ALLOW_NEW_SOURCES with a non-empty
list. Revocation-only records (BLOCK_OLD_SOURCES, and the empty-list
TO_IN that constitutes the IGMPv3 leave) still drive no state change and
are left to the existing aging path, matching IGMPv2 leave handling.

Before this change, a legitimate source-specific (SSM-style) join produced
a record class the bridge ignored, so that listener's traffic could be
pruned away entirely once another port made the group known to the MDB.

The reduction is to (*,G) only; source lists are never used to narrow
delivery, so a source-specific joiner receives a superset of what it asked
for. Per-source (SSM) forwarding fidelity remains deferred.

Depends on D58745

Test Plan

mdb_igmpv3_source_join ATF test uses IP_ADD_SOURCE_MEMBERSHIP (a genuine
INCLUDE-mode record) and confirms state creation and correct delivery.
Manual check of the leave path: state survives the joiner's departure
rather than being removed eagerly. Full regression 22/24, +1 over D6.
Built and booted on both bases; ATF passes.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Warnings
SeverityLocationCodeMessage
Warningtests/sys/net/if_bridge_test.sh:CHMOD1Invalid Executable
Unit
No Test Coverage
Build Status
Buildable 75484
Build 72367: arc lint + arc unit