Another respin. Still the RARP activation strategy patch has pending
questions to resolve. The rest are ready to merge.

RARP activation strategy patch limitations, reiterated:

- 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.

v11: int -> size_t changes for iterations over ovsdb list fields.
v11: memleak resolved in consider_port_binding.
v11: rebased, conflicts resolved.
v10: compiler warning fixed.
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       |  462 +++++++++----
 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, 2329 insertions(+), 254 deletions(-)

-- 
2.34.1

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

Reply via email to