}
}
+static int
+tcls_count_exact(const struct tcls *tcls)
+{
+ int n_exact;
+ size_t i;
+
+ n_exact = 0;
+ for (i = 0; i < tcls->n_rules; i++) {
+ n_exact += tcls->rules[i]->cls_rule.wc.wildcards == 0;
+ }
+ return n_exact;
+}
+
static bool
tcls_is_empty(const struct tcls *tcls)
{
{
unsigned int i;
+ assert(classifier_count(cls) == tcls->n_rules);
+ assert(classifier_count_exact(cls) == tcls_count_exact(tcls));
for (i = 0; i < N_FLOW_VALUES; i++) {
struct cls_rule *cr0, *cr1;
flow_t flow;