|
@@ -0,0 +1,24 @@
|
|
|
|
|
+From: Felix Fietkau <[email protected]>
|
|
|
|
|
+Date: Mon, 17 Feb 2025 12:21:08 +0100
|
|
|
|
|
+Subject: [PATCH] net: bridge: locally receive all multicast packets if
|
|
|
|
|
+ IFF_ALLMULTI is set
|
|
|
|
|
+
|
|
|
|
|
+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 <[email protected]>
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+--- a/net/bridge/br_input.c
|
|
|
|
|
++++ b/net/bridge/br_input.c
|
|
|
|
|
+@@ -152,6 +152,8 @@ int br_handle_frame_finish(struct net *n
|
|
|
|
|
+ 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;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|