Looks good.

--Justin


On Feb 19, 2012, at 12:43 AM, Ethan Jackson wrote:

> When STP is enabled on a bridge, the STP module puts its ports in
> an STP_LISTENING state until STP converges.  This causes all
> traffic destined for these ports to be dropped.  If STP is disabled
> on the bridge, but not explicitly disabled on its ports, the bridge
> fails to remove the STP state from these ports.  Therefore, if a
> port is in an STP_LISTENING state, it will remain in that state and
> continue to drop all traffic indefinitely.  This patch fixes the
> issue.
> 
> Signed-off-by: Ethan Jackson <et...@nicira.com>
> 
> Bug #9157.
> ---
> ofproto/ofproto-dpif.c |    8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index 1fe5da6..b5e316b 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -190,6 +190,8 @@ static struct ofbundle ofpp_none_bundle = {
> 
> static void stp_run(struct ofproto_dpif *ofproto);
> static void stp_wait(struct ofproto_dpif *ofproto);
> +static int set_stp_port(struct ofport *,
> +                        const struct ofproto_port_stp_settings *);
> 
> static bool ofbundle_includes_vlan(const struct ofbundle *, uint16_t vlan);
> 
> @@ -1155,6 +1157,12 @@ set_stp(struct ofproto *ofproto_, const struct 
> ofproto_stp_settings *s)
>         stp_set_max_age(ofproto->stp, s->max_age);
>         stp_set_forward_delay(ofproto->stp, s->fwd_delay);
>     }  else {
> +        struct ofport *ofport;
> +
> +        HMAP_FOR_EACH (ofport, hmap_node, &ofproto->up.ports) {
> +            set_stp_port(ofport, NULL);
> +        }
> +
>         stp_destroy(ofproto->stp);
>         ofproto->stp = NULL;
>     }
> -- 
> 1.7.9.1
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to