[ovs-dev] [flood-vlans 2/3] vlan-bitmap: Remove function vlan_bitmap_contains().

Ethan Jackson ethan at nicira.com
Tue Jul 26 22:26:14 UTC 2011


Looks Good.

Ethan

On Fri, Jul 22, 2011 at 15:32, Ben Pfaff <blp at nicira.com> wrote:
> 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 6d74d40..092c2ca 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 c88569c..2b1d5e4 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -3369,7 +3369,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
> @@ -3415,7 +3416,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
> --
> 1.7.4.4
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>



More information about the dev mailing list