From fc3d74089cea8f4f7d026daf922d2b89305a7364 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 21 Jul 2011 17:03:59 -0700 Subject: [PATCH] vlan-bitmap: Remove function vlan_bitmap_contains(). 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 | 11 ++--------- ofproto/ofproto-dpif.c | 5 +++-- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/lib/vlan-bitmap.h b/lib/vlan-bitmap.h index 6d74d4008..092c2ca87 100644 --- a/lib/vlan-bitmap.h +++ b/lib/vlan-bitmap.h @@ -22,21 +22,14 @@ /* 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) diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 61685b726..b99c91fd8 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -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 -- 2.43.0