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.).
Patches
-------
1. localport switch ports: enable the existing per-port incremental
path, which already owns every flow that differs from a VIF.
2. virtual switch ports: incremental create/delete, with recompute
fallbacks for distributed-NAT and dynamic-routing dependencies.
3. router-type switch ports: wire/tear down the peer relationship to
the LRP incrementally and regenerate sibling ARP-resolve and
ls_stateful flows; broad recompute fallback list.
4. logical router ports (non-gateway): mirror the router-switch-port
path on the LR side (tunnel key, connected routes, od->router_ips).
Also fixes unique_routes_remove() matching a route by prefix hash
only, which could delete the wrong connected route when several
share a prefix but differ in out_port (e.g. fe80::/64).
5. lflow-mgr: re-clone a lflow_ref_node's dp-group bitmap when its
length changed, instead of asserting it is constant. Adding/removing
a datapath changes the bitmap length and otherwise aborts northd.
6. logical switch datapaths: handle create/delete incrementally,
mirroring the logical-router datapath handling; move network-function
and multicast-flood flows to owners that are already processed
incrementally.
7. skip the redundant second rebuild of a created switch's ls_stateful
flows (already built in the LS-datapath handler).
Patches 1-4 are self-contained per port type. Patches 5-7 belong
together: 5 unblocks incremental datapath churn, 6 uses it for switches,
and 7 removes the resulting duplicate work.
Lucas Vargas Dias (7):
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: Skip redundant ls_stateful reprocessing for created switches.
northd/en-group-ecmp-route.c | 29 +-
northd/en-lflow.c | 39 +-
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 | 12 +-
northd/northd.c | 1254 ++++++++++++++++++++++++++++++++--
northd/northd.h | 33 +-
tests/ovn-northd.at | 414 ++++++++++-
10 files changed, 1755 insertions(+), 121 deletions(-)
--
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