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