Hi,

this is a rebase plus a number of issues handled in RARP activation
patch, that is also now included in the series.

There are still several outstanding issues with the last, RARP
activation, patch that need to be addressed. The rest of the series
should be ready to merge and is independent of the RARP patch.

Outstanding issues with RAPR activation patch:
- flows are deleted from pinctrl thread; the idea would be to make the
  thread inform main thread about the necessary flow modifications and
  then handle the actual flow manipulation from main;
- flows should be removed with ofctrl module to also updated
  desired_flows table, avoiding duplicate flow deletes;
- run_activated_ports should not destroy() the list of activated ports
  until it's sure that the activation information is committed to db;
- (optional) test case to check that activation flows are cleared even
  when db is down.

Changes included in this iteration:
This is the same as v7 except build failures due to switch statements
fixed. This series still misses the RARP activation strategy patch that
will be sent separately.

v9: removed unnecessary OVN action (new opcode is enough).
v9: set all flows in PHY tables.
v9: fixed pinctrl handler sending DELETEs for incorrect matches.
v9: added test checks for behavior of activation-strategy when a port on
    the chassis that is additional for another port sends packets to the
    latter.
v9: (WIP) included a test scenario to validate activation when
    ovsdb-server is down (currently skipped because vswitchd doesn't
    deliver packets to controller() handler when ovsdb-server is down).
v8: build warnings fixed.
v7: dropped the patch that tags all traffic from tunnels as LOCAL_ONLY
    (unneeded now that this series doesn't handle local traffic in
    remote table).
v7: local_binding_set_up: don't set up when pb->chassis is NULL.
v7: added more test scenarios: 3 chassis, flipping chassis roles (main
    to additional and vice versa), check behavior when one of chassis
    doesn't claim a port.
v7: don't update_lport_tracking when port is not newly claimed.
v7: release localports from additional chassis too.
v7: properly handle binding when ->chassis not set but chassis name can
    be found in the requested-chassis option.
v7: refactored consider_port_binding to simplify the logic, remove
    redundant code paths.
v7: remove redundant flows that were left from prior versions of the
    series.
v6: rebased, solved git conflicts.
v5: moved activation flows from table=8 to table=0.
v5: removed pause=true from rarp activation flow since we don't rely on
    continuations.
v5: make rarp handle resubmit() admitted RARP packet to table=8. This
    allows to avoid holding pending packets / waiting for flows deleted
    etc.
v5: when cloning packets destined to a local binding to additional
    chassis, clone them to tunnels in table=37, not table=38, to stay
    consistent with tables' intent.
v5: dropped patch that added chassis-mirroring-enabled option. The
    option doesn't resolve the ARP flipping issue. Instead, just
    document the behavior of localnet attached switches when ports are
    multi-chassis.
v5: (minor) set match's port and dp key inside
    put_remote_port_redirect_overlay.
v4: redesign to reuse requested-chassis option
v4: support >2 chassis per port
v4: allow to disable tunneling enforcement when n_chassis >= 2
v3: re-sent as a single series
v2: added ddlog implementation
v2: re-inject RARP packet after vswitch updates flows
v1: split into pieces
v1: renamed options: migration-destination ->
                     requested-additional-chassis,
                     migration-unblocked ->
                     additional-chassis-activated
v1: introduced options:activation-strategy=rarp to allow for other
    strategies / having default no-op strategy
v1: implement in-memory port-activated tracking to avoid races
v1: numerous code cleanup / bug fixes
v1: special handling for localnet attached switches
v0: initial draft (single patch)

Ihar Hrachyshka (4):
  Update port-up on main chassis only
  Support LSP:options:requested-chassis as a list
  Clone packets to all port chassis
  Implement RARP activation strategy for ports

 NEWS                        |    3 +
 controller/binding.c        |  303 +++++++--
 controller/binding.h        |    5 +
 controller/if-status.c      |   15 +-
 controller/if-status.h      |    1 +
 controller/lport.c          |   46 +-
 controller/lport.h          |   11 +-
 controller/ovn-controller.c |    4 +-
 controller/physical.c       |  468 +++++++++----
 controller/pinctrl.c        |  226 ++++++-
 controller/pinctrl.h        |    5 +
 include/ovn/actions.h       |    3 +
 northd/northd.c             |   72 +-
 northd/ovn-northd.c         |    7 +-
 ovn-nb.xml                  |   40 +-
 ovn-sb.ovsschema            |   17 +-
 ovn-sb.xml                  |   87 ++-
 tests/ovn.at                | 1276 +++++++++++++++++++++++++++++++++++
 18 files changed, 2330 insertions(+), 259 deletions(-)

-- 
2.34.1

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to