I would consider having this assert fail on FLOW_WC_SEQ.

Seems fine otherwise,
Ethan

On Fri, Aug 19, 2011 at 15:28, Ben Pfaff <b...@nicira.com> wrote:
> This will be used in an upcoming commit.
> ---
>  lib/flow.c |   26 ++++++++++++++++++++++++++
>  lib/flow.h |    1 +
>  2 files changed, 27 insertions(+), 0 deletions(-)
>
> diff --git a/lib/flow.c b/lib/flow.c
> index 66cc223..e41aec0 100644
> --- a/lib/flow.c
> +++ b/lib/flow.c
> @@ -625,6 +625,32 @@ flow_wildcards_is_exact(const struct flow_wildcards *wc)
>     return true;
>  }
>
> +/* Returns true if 'wc' matches every packet, false if 'wc' fixes any bits or
> + * fields. */
> +bool
> +flow_wildcards_is_catchall(const struct flow_wildcards *wc)
> +{
> +    int i;
> +
> +    if (wc->wildcards != FWW_ALL
> +        || wc->tun_id_mask != htonll(0)
> +        || wc->nw_src_mask != htonl(0)
> +        || wc->nw_dst_mask != htonl(0)
> +        || wc->vlan_tci_mask != htons(0)
> +        || !ipv6_mask_is_any(&wc->ipv6_src_mask)
> +        || !ipv6_mask_is_any(&wc->ipv6_dst_mask)) {
> +        return false;
> +    }
> +
> +    for (i = 0; i < FLOW_N_REGS; i++) {
> +        if (wc->reg_masks[i] != 0) {
> +            return false;
> +        }
> +    }
> +
> +    return true;
> +}
> +
>  /* Initializes 'dst' as the combination of wildcards in 'src1' and 'src2'.
>  * That is, a bit or a field is wildcarded in 'dst' if it is wildcarded in
>  * 'src1' or 'src2' or both.  */
> diff --git a/lib/flow.h b/lib/flow.h
> index e7b49a8..6212f84 100644
> --- a/lib/flow.h
> +++ b/lib/flow.h
> @@ -164,6 +164,7 @@ void flow_wildcards_init_catchall(struct flow_wildcards 
> *);
>  void flow_wildcards_init_exact(struct flow_wildcards *);
>
>  bool flow_wildcards_is_exact(const struct flow_wildcards *);
> +bool flow_wildcards_is_catchall(const struct flow_wildcards *);
>
>  bool flow_wildcards_set_nw_src_mask(struct flow_wildcards *, ovs_be32);
>  bool flow_wildcards_set_nw_dst_mask(struct flow_wildcards *, ovs_be32);
> --
> 1.7.4.4
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to