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
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev