vlan-bitmap: Remove function vlan_bitmap_contains().
authorBen Pfaff <blp@nicira.com>
Fri, 22 Jul 2011 00:03:59 +0000 (17:03 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 27 Jul 2011 00:09:07 +0000 (17:09 -0700)
I created this function because I thought I had three good use cases.
Unfortunately, one of them was wrong, so drop it.

lib/vlan-bitmap.h
ofproto/ofproto-dpif.c

index 6d74d40..092c2ca 100644 (file)
 
 /* A "VLAN bitmap" is a 4096-bit bitmap that represents a set.  A 1-bit
  * indicates that the respective VLAN is a member of the set, a 0-bit indicates
- * that it is not.  There is one wrinkle: NULL indicates that every VLAN is a
- * member of the set.
+ * that it is not.  There is one wrinkle: NULL is a valid value that indicates
+ * either that all VLANs are or are not members, depending on the vlan_bitmap.
  *
  * This is empirically a useful data structure. */
 
 unsigned long *vlan_bitmap_from_array(const int64_t *vlans, size_t n_vlans);
 bool vlan_bitmap_equal(const unsigned long *a, const unsigned long *b);
 
-/* Returns true if 'vid', in the range [0,4095], is a member of 'vlans'. */
-static inline bool
-vlan_bitmap_contains(const unsigned long *vlans, uint16_t vid)
-{
-    return !vlans || bitmap_is_set(vlans, vid);
-}
-
 /* Returns a new copy of 'vlans'. */
 static inline unsigned long *
 vlan_bitmap_clone(const unsigned long *vlans)
index 61685b7..b99c91f 100644 (file)
@@ -3376,7 +3376,8 @@ dst_is_duplicate(const struct dst_set *set, const struct dst *test)
 static bool
 ofbundle_trunks_vlan(const struct ofbundle *bundle, uint16_t vlan)
 {
-    return bundle->vlan < 0 && vlan_bitmap_contains(bundle->trunks, vlan);
+    return (bundle->vlan < 0
+            && (!bundle->trunks || bitmap_is_set(bundle->trunks, vlan)));
 }
 
 static bool
@@ -3422,7 +3423,7 @@ compose_dsts(struct action_xlate_ctx *ctx, uint16_t vlan,
 static bool
 vlan_is_mirrored(const struct ofmirror *m, int vlan)
 {
-    return vlan_bitmap_contains(m->vlans, vlan);
+    return !m->vlans || bitmap_is_set(m->vlans, vlan);
 }
 
 /* Returns true if a packet with Ethernet destination MAC 'dst' may be mirrored