mbox series

[ovs-dev,0/4] Another attempt on lflow expr caching.

Message ID 20200902184517.937519-1-numans@ovn.org
Headers show
Series Another attempt on lflow expr caching. | expand

Message

Numan Siddique Sept. 2, 2020, 6:45 p.m. UTC
From: Numan Siddique <numans@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.

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          | 516 +++++++++++++++++++++++++++---------
 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, 705 insertions(+), 159 deletions(-)