Page MenuHomeFreeBSD

if_bridge: learn multicast-router ports from IGMP queries
Needs ReviewPublic

Authored by namkhanh052005_gmail.com on Sun, Aug 9, 4:27 PM.
Tags
None
Referenced Files
F167204423: D58745.diff
Wed, Aug 19, 10:29 PM
Unknown Object (File)
Wed, Aug 19, 4:59 PM
Unknown Object (File)
Wed, Aug 19, 8:59 AM
Unknown Object (File)
Tue, Aug 18, 8:24 PM
Unknown Object (File)
Tue, Aug 18, 1:51 PM
Unknown Object (File)
Tue, Aug 18, 6:27 AM
Unknown Object (File)
Mon, Aug 17, 7:29 PM
Unknown Object (File)
Sun, Aug 16, 9:20 PM

Details

Reviewers
ivy
Summary

Learns multicast-router ports from observed IGMP membership queries
(struct bridge_mdb_router, keyed by VLAN, aged independently of listener
state) and extends the forwarding path to deliver learned groups to
listener ports and to router ports on the same VLAN, so pruning does not
blackhole traffic a router needs to relay. Adds the mdb_routers counter.

Router forwarding is additive: it can only add destinations to a frame that
was already going to be pruned, never remove one. With no router ports
learned, delivery is unchanged from D4.

Depends on D58744

Test Plan

mdb_router_forward ATF test: in a 4-jail topology, a router port (queries
seen, no join) receives a learned group while a genuinely idle port stays
pruned. Two bugs were found and fixed during VM verification, both in the
test scaffolding rather than the kernel change: a missing <sys/types.h>
include and a missing multicast route for the router jail. Full
regression 21/23 after fixes (+1 vs. D5). 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 75483
Build 72366: arc lint + arc unit