aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2011-07-21 17:03:03 -0700
committerBen Pfaff <blp@nicira.com>2011-07-26 17:09:07 -0700
commit82062a2047923e5c403fe42646e1c9eacbc73752 (patch)
treec0ca3129e4703affa5793b00fa696e0d689274e3
parent13b630579b8b7c67356f46b963e1256d66db0abc (diff)
mac-learning: Fix inverted logic in is_learning_vlan().
When a bit is set in flood_vlans, that VLAN must be flooded, but the logic here was reversed in the case where there were any flooded VLANs at all. Thus, if a single VLAN was configured to be flooded, all VLANs except that one were actually flooded. The common case where no VLANs were to be flooded was handled correctly. Reported-by: David Tsai <dtsai@nicira.com>
-rw-r--r--lib/mac-learning.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/mac-learning.c b/lib/mac-learning.c
index bb84cfcc..efd1dd4b 100644
--- a/lib/mac-learning.c
+++ b/lib/mac-learning.c
@@ -149,7 +149,7 @@ mac_learning_set_flood_vlans(struct mac_learning *ml,
static bool
is_learning_vlan(const struct mac_learning *ml, uint16_t vlan)
{
- return vlan_bitmap_contains(ml->flood_vlans, vlan);
+ return !ml->flood_vlans || !bitmap_is_set(ml->flood_vlans, vlan);
}
/* Returns true if 'src_mac' may be learned on 'vlan' for 'ml'.