[ovs-dev] [PATCH] ofproto: Fix detection of in-use VLANs based on the flow table.

Justin Pettit jpettit at nicira.com
Wed Jan 4 18:47:06 UTC 2012


Looks good.  Thanks.

--Justin


On Jan 4, 2012, at 10:18 AM, Ben Pfaff wrote:

> I swear I tested this, but the code was obviously wrong.
> 
> I haven't tested the new version yet, but I will before I commit it.
> 
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> Reported-by: Brendan Kelley <bkelley at nicira.com>
> Bug #8729.
> ---
> AUTHORS           |    1 +
> ofproto/ofproto.c |    8 +++++---
> 2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/AUTHORS b/AUTHORS
> index ac34b20..821f780 100644
> --- a/AUTHORS
> +++ b/AUTHORS
> @@ -64,6 +64,7 @@ Alexey I. Froloff       raorn at altlinux.org
> Bob Ball                bob.ball at citrix.com
> Brad Hall               brad at nicira.com
> Brandon Heller          brandonh at stanford.edu
> +Brendan Kelley          bkelley at nicira.com
> Bryan Fulton            bryan at nicira.com
> Bryan Osoro             bosoro at nicira.com
> Cedric Hobbs            cedric at nicira.com
> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> index b6f9207..0027a8e 100644
> --- a/ofproto/ofproto.c
> +++ b/ofproto/ofproto.c
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 2009, 2010, 2011 Nicira Networks.
> + * Copyright (c) 2009, 2010, 2011, 2012 Nicira Networks.
>  * Copyright (c) 2010 Jean Tourrilhes - HP-Labs.
>  *
>  * Licensed under the Apache License, Version 2.0 (the "License");
> @@ -3191,7 +3191,8 @@ ofoperation_complete(struct ofoperation *op, int error)
>             if (op->victim) {
>                 ofproto_rule_destroy__(op->victim);
>             }
> -            if (!(rule->cr.wc.vlan_tci_mask & htons(VLAN_VID_MASK))
> +            if ((rule->cr.wc.vlan_tci_mask & htons(VLAN_VID_MASK))
> +                == htons(VLAN_VID_MASK)
>                 && ofproto->vlan_bitmap) {
>                 uint16_t vid = vlan_tci_to_vid(rule->cr.flow.vlan_tci);
> 
> @@ -3336,7 +3337,8 @@ ofproto_get_vlan_usage(struct ofproto *ofproto, unsigned long int *vlan_bitmap)
>         const struct cls_table *table;
> 
>         HMAP_FOR_EACH (table, hmap_node, &cls->tables) {
> -            if (!(table->wc.vlan_tci_mask & htons(VLAN_VID_MASK))) {
> +            if ((table->wc.vlan_tci_mask & htons(VLAN_VID_MASK))
> +                == htons(VLAN_VID_MASK)) {
>                 const struct cls_rule *rule;
> 
>                 HMAP_FOR_EACH (rule, hmap_node, &table->rules) {
> -- 
> 1.7.2.5
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev




More information about the dev mailing list