[ovs-dev] [PATCH ovn v2 0/4] Another attempt on lflow expr caching.
numans at ovn.org
numans at ovn.org
Wed Sep 9 10:09:03 UTC 2020
From: Numan Siddique <numans at ovn.org>
This patch series adds caching of logical flow expr matches/expr tree
so that whenever a logical flow is processed, we can reuse the cached
expr tree of expr matches.
The expr matches/tree is not cached for a logical flow referencing
port group/address sets as it is tricky to handle any port group changes
if cached.
The patch 2 of this series was submitted separately earlier. Patch 2
uses the lflow caching approach to cache the conjunction ids so that
these ids are persistent across recomputes.
v1 -> v2
----
* Resolved conflicts in patch 2.
* Addressed review comments from Mark in patch 3 in a different way
than suggested. expr_evaluate_condition() should be called before
expr_normalize().
* In patch 4 - Changed the expr caching to cache simplified expr tree
for lflows having condition - is_chassis_resident(). The cached
expr tree is evaluated and normalized when processing such lflows
later.
Numan Siddique (4):
I-P engine: Provide the option to store client data in engine ctx.
ovn-controller: Persist the conjunction ids allocated for conjuctive
matches.
expr: Evaluate the condition expression in a separate step.
ovn-controller: Cache logical flow expr matches.
controller/chassis.c | 22 +-
controller/lflow.c | 520 +++++++++++++++++++++++++++---------
controller/lflow.h | 8 +-
controller/ovn-controller.c | 97 ++++++-
include/ovn/expr.h | 10 +-
lib/expr.c | 57 +++-
lib/inc-proc-eng.h | 1 +
tests/ovn.at | 135 ++++++++++
tests/test-ovn.c | 12 +-
utilities/ovn-trace.c | 6 +-
10 files changed, 709 insertions(+), 159 deletions(-)
--
2.26.2
More information about the dev
mailing list