On Wed, Jun 17, 2015 at 04:28:31AM -0700, Nikolay Aleksandrov wrote:
> From: Satish Ashok <sas...@cumulusnetworks.com>
> 
> When STP is running in user-space and querier is configured, the
> querier timer is not started when a port goes to forwarding state.
> 
> Signed-off-by: Satish Ashok <sas...@cumulusnetworks.com>
> Signed-off-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com>
> Fixes: eb1d16414339 ("bridge: Add core IGMP snooping support")
> ---
>  net/bridge/br_stp.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c
> index fb3ebe615513..1e2f2f1ff6b0 100644
> --- a/net/bridge/br_stp.c
> +++ b/net/bridge/br_stp.c
> @@ -456,6 +456,9 @@ void br_port_state_selection(struct net_bridge *br)
>                               p->topology_change_ack = 0;
>                               br_make_blocking(p);
>                       }
> +             } else if (br->stp_enabled == BR_USER_STP &&
> +                        p->state == BR_STATE_FORWARDING) {
> +                     br_multicast_enable_port(p);
>               }

Minor nit, the stp_enabled check appears to be redundant since
you're in the else clause.

More importantly, I'm not sure about the logic.  For kernel STP,
we enable the port as soon as we get out of blocking.  IIRC enabling
the port just means that we start tracking subscriptions/queries
so it should be OK to do even while we're listening/learning.

In any case the logic should be identical whether we use kernel
STP or user-space STP.

So how about removing br_multicast_enable_port from br_make_forward
and just add it here for both kernel and user-space STP?

Thanks,
-- 
Email: Herbert Xu <herb...@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to