mbox series

[ovs-dev,v5,0/4] ofctrl: Add a predictable resolution for conflicting flow actions.

Message ID 20201011120456.3374.30821.stgit@dceara.remote.csb
Headers show
Series ofctrl: Add a predictable resolution for conflicting flow actions. | expand

Message

Dumitru Ceara Oct. 11, 2020, 12:05 p.m. UTC
Patch 1 makes sure we never try to merge flow ations unless both
flows only have "conjunction" action.

Patches 2 and 3 of the series refactor the current ofctrl.c installed
flow processing code such that:
- order of desired flows is maintained within an installed flow.
- the active desired flow is predictably selected (always the first
  in the list).

This is required for patch 4 where we implement a partial ordering of
desired flows within installed flows making sure that when selecting
the active flow (to be installed in OVS) we always choose the less
restrictive one.

CC: Han Zhou <hzhou@ovn.org>
CC: Numan Siddique <numans@ovn.org>
CC: Mark Michelson <mmichels@redhat.com> 
Signed-off-by: Dumitru Ceara <dceara@redhat.com>

Dumitru Ceara (4):
      ofctrl.c: Only merge actions for conjunctive flows.
      ofctrl.c: Do not change flow ordering when merging opposite changes.
      ofctrl.c: Simplify active desired flow selection.
      ofctrl.c: Add a predictable resolution for conflicting flow actions.


 controller/ofctrl.c |  305 +++++++++++++++++++++++++++++++++++++--------------
 tests/ovn.at        |  216 ++++++++++++++++++++++++++++++++++++
 2 files changed, 436 insertions(+), 85 deletions(-)


---
v5:
- Turn the patch into a series.
- Address Han's comments.
- Ensure predictable flow ordering in all cases (during incremental procesing
  or full recomputation).
v4:
- Address Han's comments:
  - make sure only flows with action conjunction are combined.
v3:
- Add Mark's ack.
- Add last missing pcap check in the test.
v2:
- Address Han's comments:
  - Do not delete desired flow that cannot be merged, it might be
    installed later.
  - Fix typos in the commit log.
- Update the test to check the OVS flows.