int found_rules2 = 0;
HMAP_FOR_EACH (table, hmap_node, &cls->cls->subtables) {
- const struct cls_rule *head;
+ const struct cls_match *head;
unsigned int max_priority = 0;
unsigned int max_count = 0;
found_tables++;
HMAP_FOR_EACH (head, hmap_node, &table->rules) {
unsigned int prev_priority = UINT_MAX;
- const struct cls_rule *rule;
+ const struct cls_match *rule;
if (head->priority > max_priority) {
max_priority = head->priority;
prev_priority = rule->priority;
found_rules++;
found_dups++;
- assert(classifier_find_rule_exactly(cls, rule) == rule);
+ assert(classifier_find_rule_exactly(cls, rule->cls_rule)
+ == rule->cls_rule);
}
}
assert(table->max_priority == max_priority);
compare_classifiers(&cls, &tcls);
}
- fat_rwlock_unlock(&cls.rwlock);
- classifier_destroy(&cls);
- tcls_destroy(&tcls);
-
for (i = 0; i < N_RULES; i++) {
+ if (rules[i]->cls_rule.cls_match) {
+ classifier_remove(&cls, &rules[i]->cls_rule);
+ }
free_rule(rules[i]);
}
+
+ fat_rwlock_unlock(&cls.rwlock);
+ classifier_destroy(&cls);
+ tcls_destroy(&tcls);
} while (next_permutation(ops, ARRAY_SIZE(ops)));
assert(n_permutations == (factorial(N_RULES * 2) >> N_RULES));
}