diff options
author | Ben Pfaff <blp@nicira.com> | 2011-07-21 17:03:03 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2011-07-26 17:09:07 -0700 |
commit | 82062a2047923e5c403fe42646e1c9eacbc73752 (patch) | |
tree | c0ca3129e4703affa5793b00fa696e0d689274e3 | |
parent | 13b630579b8b7c67356f46b963e1256d66db0abc (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.c | 2 |
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'. |