Re: [ovs-dev] [PATCH ovn v11 0/4] Support multiple requested-chassis

2022-06-01 Thread Mark Michelson

I merged patches 1-3 to main and branch-22.06.

I will give patch 4 a look tomorrow.

On 5/31/22 16:30, Ihar Hrachyshka wrote:

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 delet

[ovs-dev] [PATCH ovn v11 0/4] Support multiple requested-chassis

2022-05-31 Thread Ihar Hrachyshka
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