Currently when a port goes in blocking state the multicast is not
disabled. Fix it by disabling a port if its state has transitioned to
blocking, this has effect for both user- and kernel-space stp.

Reported-by: Herbert Xu <herb...@gondor.apana.org.au>
Signed-off-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com>
---
note: this is on top of patch:
"bridge: multicast: start querier timer when running user-space stp"

 net/bridge/br_stp.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c
index e7ab74b405a1..1a73c5595f52 100644
--- a/net/bridge/br_stp.c
+++ b/net/bridge/br_stp.c
@@ -463,6 +463,8 @@ void br_port_state_selection(struct net_bridge *br)
 
                if (p->state != BR_STATE_BLOCKING)
                        br_multicast_enable_port(p);
+               else
+                       br_multicast_disable_port(p);
                if (p->state == BR_STATE_FORWARDING)
                        ++liveports;
        }
-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe netdev" in

Reply via email to