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 <b...@nicira.com> Reported-by: Brendan Kelley <bkel...@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 ra...@altlinux.org Bob Ball bob.b...@citrix.com Brad Hall b...@nicira.com Brandon Heller brand...@stanford.edu +Brendan Kelley bkel...@nicira.com Bryan Fulton br...@nicira.com Bryan Osoro bos...@nicira.com Cedric Hobbs ced...@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@openvswitch.org http://openvswitch.org/mailman/listinfo/dev