diff options
author | Mike Manning <mmanning@brocade.com> | 2017-03-01 09:55:28 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-22 12:56:57 +0100 |
commit | e89adaa7d0cf27f8c0abb47a01589c244628055f (patch) | |
tree | 26b6901c00eb6aaed5d2130fecd8004c3a6adc91 /net | |
parent | da2da823497cafbe2ac19290f88b698116f67363 (diff) | |
download | linux-stable-e89adaa7d0cf27f8c0abb47a01589c244628055f.tar.gz linux-stable-e89adaa7d0cf27f8c0abb47a01589c244628055f.tar.bz2 linux-stable-e89adaa7d0cf27f8c0abb47a01589c244628055f.zip |
net: bridge: allow IPv6 when multicast flood is disabled
[ Upstream commit 8953de2f02ad7b15e4964c82f9afd60f128e4e98 ]
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/bridge/br_forward.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c index 7cb41aee4c82..8498e3503605 100644 --- a/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c @@ -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 */ |