[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