diff options
author | Ben Pfaff <blp@nicira.com> | 2011-04-08 13:19:33 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2011-04-25 17:11:29 -0700 |
commit | 0fb7b9156ac7d319a51890630857698ad1877335 (patch) | |
tree | 2354a9b660f00b6728b91e40e35a2e9bcb7dc3aa /lib/mac-learning.c | |
parent | 08fd19f01b22226e25a5112b13eb951190ea8d00 (diff) |
vlan-bitmap: New data structure.
Diffstat (limited to 'lib/mac-learning.c')
-rw-r--r-- | lib/mac-learning.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/mac-learning.c b/lib/mac-learning.c index 42864ce0..a57bbc75 100644 --- a/lib/mac-learning.c +++ b/lib/mac-learning.c @@ -29,6 +29,7 @@ #include "tag.h" #include "timeval.h" #include "util.h" +#include "vlan-bitmap.h" #include "vlog.h" VLOG_DEFINE_THIS_MODULE(mac_learning); @@ -143,10 +144,7 @@ mac_learning_destroy(struct mac_learning *ml) bool mac_learning_set_flood_vlans(struct mac_learning *ml, unsigned long *bitmap) { - bool ret = (bitmap == NULL - ? ml->flood_vlans != NULL - : (ml->flood_vlans == NULL - || !bitmap_equal(bitmap, ml->flood_vlans, 4096))); + bool ret = vlan_bitmap_equal(ml->flood_vlans, bitmap); bitmap_free(ml->flood_vlans); ml->flood_vlans = bitmap; @@ -157,7 +155,7 @@ mac_learning_set_flood_vlans(struct mac_learning *ml, unsigned long *bitmap) static bool is_learning_vlan(const struct mac_learning *ml, uint16_t vlan) { - return !(ml->flood_vlans && bitmap_is_set(ml->flood_vlans, vlan)); + return vlan_bitmap_contains(ml->flood_vlans, vlan); } /* Returns true if 'src_mac' may be learned on 'vlan' for 'ml'. |