On 2/17/25 13:26, Felix Fietkau wrote: > If multicast snooping is enabled, multicast packets may not always end up on > the local bridge interface, if the host is not a member of the multicast > group. Similar to how IFF_PROMISC allows all packets to be received locally, > let IFF_ALLMULTI allow all multicast packets to be received. > > Signed-off-by: Felix Fietkau <nbd@xxxxxxxx> > --- > net/bridge/br_input.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c > index 232133a0fd21..7fa2da6985b5 100644 > --- a/net/bridge/br_input.c > +++ b/net/bridge/br_input.c > @@ -155,6 +155,8 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb > pkt_type = BR_PKT_MULTICAST; > if (br_multicast_rcv(&brmctx, &pmctx, vlan, skb, vid)) > goto drop; > + if (br->dev->flags & IFF_ALLMULTI) > + local_rcv = true; > } > } > This doesn't look like a bug fix, IMO it should be for net-next. Also you might miss a mcast stat increase, see the multicast code below, the only case that this would cover is the missing "else" branch of: if ((mdst && mdst->host_joined) || br_multicast_is_router(brmctx, skb)) { local_rcv = true; DEV_STATS_INC(br->dev, multicast); } So I'd suggest to augment the condition and include this ALLMULTI check there, maybe with a comment to mention that all other cases are covered by the current code so people are not surprised. By the way what is the motivation for supporting this flag? I mean you can make the bridge mcast router and it will receive all mcast anyway. Thanks, Nik