net: bridge: allow IPv6 when multicast flood is disabled
authorMike Manning <mmanning@brocade.com>
Wed, 1 Mar 2017 09:55:28 +0000 (09:55 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 2 Mar 2017 04:55:57 +0000 (20:55 -0800)
Even with multicast flooding turned off, IPv6 ND should still work so
that IPv6 connectivity is provided. Allow this by continuing to flood
multicast traffic originated by us.

Fixes: b6cb5ac8331b ("net: bridge: add per-port multicast flood flag")
Cc: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: Mike Manning <mmanning@brocade.com>
Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_forward.c

index 6bfac29318f21e2d2a177fb6739d5e5a32b358b9..902af6ba481c999f81ed2fba488d91665e03c02e 100644 (file)
@@ -186,8 +186,9 @@ void br_flood(struct net_bridge *br, struct sk_buff *skb,
                /* Do not flood unicast traffic to ports that turn it off */
                if (pkt_type == BR_PKT_UNICAST && !(p->flags & BR_FLOOD))
                        continue;
+               /* Do not flood if mc off, except for traffic we originate */
                if (pkt_type == BR_PKT_MULTICAST &&
-                   !(p->flags & BR_MCAST_FLOOD))
+                   !(p->flags & BR_MCAST_FLOOD) && skb->dev != br->dev)
                        continue;
 
                /* Do not flood to ports that enable proxy ARP */