Looks Good. Ethan
On Tue, Apr 26, 2011 at 13:51, Ben Pfaff <[email protected]> wrote: > This special case should never have actually triggered in practice, because > OpenFlow 1.0 cannot set up an exact-match rule as defined by > flow_wildcards_is_exact(). (OpenFlow 1.0 will always, for example, > wildcard all NXM registers.) > > OVS implements this OF1.0 special case differently, by changing flow > priority to 65535 in cls_rule_from_match() if the flow is an exact match as > defined by OpenFlow 1.0. > --- > lib/classifier.c | 8 +------- > 1 files changed, 1 insertions(+), 7 deletions(-) > > diff --git a/lib/classifier.c b/lib/classifier.c > index 36e294e..42a2169 100644 > --- a/lib/classifier.c > +++ b/lib/classifier.c > @@ -760,10 +760,7 @@ classifier_lookup(const struct classifier *cls, const > struct flow *flow) > > /* Finds and returns a rule in 'cls' with exactly the same priority and > * matching criteria as 'target'. Returns a null pointer if 'cls' doesn't > - * contain an exact match. > - * > - * Priority is ignored for exact-match rules (because OpenFlow 1.0 always > - * treats exact-match rules as highest priority). */ > + * contain an exact match. */ > struct cls_rule * > classifier_find_rule_exactly(const struct classifier *cls, > const struct cls_rule *target) > @@ -777,9 +774,6 @@ classifier_find_rule_exactly(const struct classifier *cls, > } > > head = find_equal(table, &target->flow, flow_hash(&target->flow, 0)); > - if (flow_wildcards_is_exact(&target->wc)) { > - return head; > - } > FOR_EACH_RULE_IN_LIST (rule, head) { > if (target->priority >= rule->priority) { > return target->priority == rule->priority ? rule : NULL; > -- > 1.7.4.4 > > _______________________________________________ > dev mailing list > [email protected] > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
