This series extends northd's incremental processing so that several more
Northbound changes are handled without falling back to a full recompute
of the en_lflow engine node.
Today only plain VIF and remote logical switch ports are processed
incrementally; creating/deleting a logical switch, a logical router port,
or a router/virtual/localport switch port all force a full recompute.
This series closes those gaps, one port/datapath type at a time, and
fixes two latent bugs in the lflow and group-ecmp-route machinery that
only surface once datapaths and ports start being created/deleted
incrementally.
The general approach in each patch is the same: enable the incremental
path only where the port/datapath is safe to handle self-contained,
regenerate the flows that live outside the port's own lflow_ref
explicitly, and fall back to a full recompute for the dependencies that
this path does not (yet) keep in sync (distributed gateway ports,
gateway routers, NAT, load balancers, static/dynamic routing, policies,
etc.).
v8 -> v9:
- Rebased on top of b9809453f546 ("northd: Split en_lflow into compute
and sync nodes."). Every lflow handler touched by the series now only
unlinks, rebuilds and marks its lflow_refs dirty, leaving the sync to
the new lflow sync node:
* 3/6: deleted "router" switch ports also unlink their
stateful_lflow_ref, and the ls_stateful flows of switches whose set
of router ports changed are rebuilt and marked dirty.
* 4/6: lflow_handle_northd_lrp_changes() follows the same model.
* 6/6: lflow_handle_northd_ls_changes() follows the same model.
- 5/6: rebased on the lflow-mgr.c changes in main. The single-datapath
path already rebuilds its bitmap on re-link there, so the fix now only
touches the datapath group path, which still asserted on the bitmap
length. Without it, the test added by this patch still aborts northd
on current main.
- 6/6: no longer builds the ls_stateful flows of created and deleted
switches. That was only done to keep the datapath groups shared with
od->datapath_lflows stable, which the lflow sync node now takes care
of; lflow_handle_ls_stateful_changes() handles those records as it does
for any other switch. build_ls_stateful_flows(), which this patch
moves, picks up the CT extraction flow changes from main.
- Dropped v8 7/7 ("northd: Skip redundant ls_stateful reprocessing for
created switches."): with 6/6 no longer building those flows there is
nothing redundant left to skip. Its test is kept, in 6/6.
Lucas Vargas Dias (6):
northd: Enable incremental processing for localport ports.
northd: Incrementally process virtual port creation and deletion.
northd: Incrementally process logical switch ports of type "router".
northd: Incrementally process logical router ports.
northd: Handle dp-group bitmap length change in lflow ref nodes.
northd: Incrementally process logical switch datapaths.
northd/en-group-ecmp-route.c | 29 +-
northd/en-lflow.c | 14 +-
northd/en-lr-stateful.c | 16 +-
northd/en-ls-stateful.c | 7 +
northd/en-multicast.c | 20 +
northd/en-northd.c | 66 +-
northd/en-sync-sb.c | 2 +
northd/lflow-mgr.c | 22 +-
northd/northd.c | 1315 ++++++++++++++++++++++++++++++----
northd/northd.h | 31 +-
tests/ovn-northd.at | 1189 +++++++++++++++++++++++++++---
11 files changed, 2473 insertions(+), 238 deletions(-)
base-commit: 38575ba43e9d0b501f49387f0da40cd3ad83ed94
--
2.43.0
--
_'Esta mensagem é direcionada apenas para os endereços constantes no
cabeçalho inicial. Se você não está listado nos endereços constantes no
cabeçalho, pedimos-lhe que desconsidere completamente o conteúdo dessa
mensagem e cuja cópia, encaminhamento e/ou execução das ações citadas estão
imediatamente anuladas e proibidas'._
* **'Apesar do Magazine Luiza tomar
todas as precauções razoáveis para assegurar que nenhum vírus esteja
presente nesse e-mail, a empresa não poderá aceitar a responsabilidade por
quaisquer perdas ou danos causados por esse e-mail ou por seus anexos'.*
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev