Run flow eviction and flow inject queues for bypassed packets as well,
to avoid a scenario where these won't get run at all if too much of the
traffic is bypassed.
Bug: #4779.
if (likely(p->flow != NULL)) {
DEBUG_ASSERT_FLOW_LOCKED(p->flow);
if (FlowUpdate(tv, fw, p) == TM_ECODE_DONE) {
- return TM_ECODE_OK;
+ goto housekeeping;
}
}
/* Flow is now LOCKED */
FLOWLOCK_UNLOCK(f);
}
+housekeeping:
+
/* take injected flows and process them */
FlowWorkerProcessInjectedFlows(tv, fw, p, detect_thread);