Page MenuHomeFreeBSD

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

Authored by namkhanh052005_gmail.com on Sun, Aug 9, 4:38 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Aug 18, 7:18 PM
Unknown Object (File)
Tue, Aug 18, 11:36 AM
Unknown Object (File)
Mon, Aug 17, 10:07 PM
Unknown Object (File)
Mon, Aug 17, 1:13 AM
Unknown Object (File)
Sun, Aug 16, 9:21 PM
Unknown Object (File)
Sun, Aug 16, 1:15 AM
Unknown Object (File)
Sat, Aug 15, 8:29 PM
Unknown Object (File)
Thu, Aug 13, 10:13 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