X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fmac-learning.c;h=a57bbc7599f93210c533cd74ab9308aeab5c543e;hb=0fb7b9156ac7d319a51890630857698ad1877335;hp=42864ce0b600919741f8488f9866491b10e6c1fa;hpb=08fd19f01b22226e25a5112b13eb951190ea8d00;p=sliver-openvswitch.git diff --git a/lib/mac-learning.c b/lib/mac-learning.c index 42864ce0b..a57bbc759 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'.