Makes sense, looks good. Ethan
On Fri, Jul 20, 2012 at 4:25 PM, Ben Pfaff <b...@nicira.com> wrote: > It's only used in a not-very-useful assertion in some test code. In > general, exact-match flows make very little sense anymore, and they're > basically on their way out. > > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > lib/flow.c | 42 ------------------------------------------ > lib/flow.h | 1 - > tests/test-classifier.c | 2 -- > 3 files changed, 0 insertions(+), 45 deletions(-) > > diff --git a/lib/flow.c b/lib/flow.c > index 2433bec..6747add 100644 > --- a/lib/flow.c > +++ b/lib/flow.c > @@ -632,48 +632,6 @@ flow_wildcards_init_exact(struct flow_wildcards *wc) > memset(wc->masks.zeros, 0, sizeof wc->masks.zeros); > } > > -/* Returns true if 'wc' is exact-match, false if 'wc' wildcards any bits or > - * fields. */ > -bool > -flow_wildcards_is_exact(const struct flow_wildcards *wc) > -{ > - int i; > - > - BUILD_ASSERT_DECL(FLOW_WC_SEQ == 17); > - > - if (wc->masks.tun_id != htonll(UINT64_MAX) > - || wc->masks.nw_src != htonl(UINT32_MAX) > - || wc->masks.nw_dst != htonl(UINT32_MAX) > - || wc->masks.tp_src != htons(UINT16_MAX) > - || wc->masks.tp_dst != htons(UINT16_MAX) > - || wc->masks.in_port != UINT16_MAX > - || wc->masks.vlan_tci != htons(UINT16_MAX) > - || wc->masks.metadata != htonll(UINT64_MAX) > - || wc->masks.dl_type != htons(UINT16_MAX) > - || !eth_mask_is_exact(wc->masks.dl_src) > - || !eth_mask_is_exact(wc->masks.dl_dst) > - || !eth_mask_is_exact(wc->masks.arp_sha) > - || !eth_mask_is_exact(wc->masks.arp_tha) > - || !ipv6_mask_is_exact(&wc->masks.ipv6_src) > - || !ipv6_mask_is_exact(&wc->masks.ipv6_dst) > - || wc->masks.ipv6_label != htonl(UINT32_MAX) > - || !ipv6_mask_is_exact(&wc->masks.nd_target) > - || wc->masks.nw_proto != UINT8_MAX > - || wc->masks.nw_frag != UINT8_MAX > - || wc->masks.nw_tos != UINT8_MAX > - || wc->masks.nw_ttl != UINT8_MAX) { > - return false; > - } > - > - for (i = 0; i < FLOW_N_REGS; i++) { > - if (wc->masks.regs[i] != UINT32_MAX) { > - return false; > - } > - } > - > - return true; > -} > - > /* Returns true if 'wc' matches every packet, false if 'wc' fixes any bits or > * fields. */ > bool > diff --git a/lib/flow.h b/lib/flow.h > index 9393c16..5f248fc 100644 > --- a/lib/flow.h > +++ b/lib/flow.h > @@ -145,7 +145,6 @@ struct flow_wildcards { > 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 *); > > void flow_wildcards_set_reg_mask(struct flow_wildcards *, > diff --git a/tests/test-classifier.c b/tests/test-classifier.c > index ae1d81f..d4a524d 100644 > --- a/tests/test-classifier.c > +++ b/tests/test-classifier.c > @@ -134,8 +134,6 @@ tcls_insert(struct tcls *tcls, const struct test_rule > *rule) > { > size_t i; > > - assert(!flow_wildcards_is_exact(&rule->cls_rule.wc) > - || rule->cls_rule.priority == UINT_MAX); > for (i = 0; i < tcls->n_rules; i++) { > const struct cls_rule *pos = &tcls->rules[i]->cls_rule; > if (cls_rule_equal(pos, &rule->cls_rule)) { > -- > 1.7.2.5 > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev