Re: [PATCH net-next v2 09/14] net: bridge: mcast: track active state, VLAN snooping
Ido Schimmel <[email protected]>
| Newsgroups | gmane.linux.network.bridge,gmane.linux.network,gmane.linux.kernel |
|---|---|
| Message-ID | <20260208161010.GI154003@shredder> |
On Fri, Feb 06, 2026 at 03:52:15AM +0100, Linus Lüssing wrote: > If VLAN aware multicast snooping is enabled then we need to perform a > few extra checks to figure out if multicast snooping is actually enabled > for a specific VLAN, as there is then an additional per VLAN multicast > snooping toggle. > > Signed-off-by: Linus Lüssing <[email protected]> > --- > net/bridge/br_multicast.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c > index 4bdc3838c3dc..2a2f54009e0f 100644 > --- a/net/bridge/br_multicast.c > +++ b/net/bridge/br_multicast.c > @@ -1143,6 +1143,26 @@ static void br_multicast_update_active(struct net_bridge_mcast *brmctx) > if (!br_opt_get(brmctx->br, BROPT_MULTICAST_ENABLED)) > force_inactive = true; Once you set 'force_inactive' the other checks become redundant, maybe just jump to br_ip{4,6}_multicast_update_active()? > > + if (br_opt_get(brmctx->br, BROPT_MCAST_VLAN_SNOOPING_ENABLED)) { > + /* with per-vlan snooping enabled there is an extra per-vlan > + * toggle to enable/disable snooping which we must check > + */ > + if (br_multicast_ctx_vlan_global_disabled(brmctx)) > + force_inactive = true; > + > + /* with per-vlan snooping enabled the non-vlan multicast > + * snooping context is inactive > + */ > + if (!br_multicast_ctx_is_vlan(brmctx)) > + force_inactive = true; > + } else { > + /* with per-vlan snooping disabled a vlan multicast > + * snooping context is inactive > + */ > + if (br_multicast_ctx_is_vlan(brmctx)) > + force_inactive = true; > + } > + > br_ip4_multicast_update_active(brmctx, force_inactive); > br_ip6_multicast_update_active(brmctx, force_inactive); > > -- > 2.51.0 >