To implement flow expiration, secchan periodically queries all the flows
in the datapath flow table. Until now, it has then uninstalled flows that
do not have corresponding rules at all. It has not uninstalled flows that
do have rules that are not supposed to be installed. This commit makes it
also uninstall the latter.
(This is not known to fix any real problem. It is only for completeness.)
rule = rule_from_cls_rule(
classifier_find_rule_exactly(&p->cls, &f->key, 0, UINT16_MAX));
- if (!rule) {
+ if (!rule || !rule->installed) {
dpif_flow_del(&p->dpif, f);
continue;
}