Hi Mark,

Thank you for taking the time to review the series and for applying the
patches to main.

Best regards,
Paulo

Em qua., 7 de out. de 2026 às 12:53, Mark Michelson <[email protected]>
escreveu:

> Thanks for v5 Paulo. For the entire series:
>
> Acked-by: Mark Michelson <[email protected]>
>
> I added my ack to all the patches and pushed them to main.
>
> On Tue, Oct 6, 2026 at 4:08 PM Paulo Guilherme Silva via dev
> <[email protected]> wrote:
> >
> > Currently ovn-ic recomputes its entire transit-switch/gateway/route
> > state on every change to the IC databases (or the local NB/SB).  On
> > large interconnected deployments this full recompute dominates the
> > ovn-ic runtime and adds significant latency between a configuration
> > change in one AZ and its propagation to the others.
> >
> > This series introduces incremental processing (I+P) to ovn-ic, mirroring
> > the engine-node model already used by ovn-northd and ovn-controller.  The
> > full recompute is split into per-subsystem engine nodes, and each node
> > gets an incremental change handler so that a change to a single object no
> > longer forces a global recompute.
> >
> > Approach
> > --------
> >   - The monolithic recompute is first refactored into per-subsystem
> >     *_run functions and then into independent engine nodes (az, dp_enum,
> >     gateway, ts, tr, port_binding, route, service_mon).
> >   - Each node gains an incremental handler that reacts only to the
> >     tracked changes on its inputs, falling back to recompute when a
> >     change cannot be handled incrementally.
> >
> > Testing
> > -------
> >   - make check / make check-ovn-ic all pass.
> >   - Scale test as above:
> >     3: perf-ovn-ic.at:233 ovn-ic basic scale test -- 200 VPCs x 3 AZs x
> 4 TSs:
> >       incremental vs recompute -- parallelization=yes
> >     4: perf-ovn-ic.at:239 ovn-ic basic scale test -- 400 VPCs x 3 AZs x
> 4 TSs:
> >       incremental vs recompute -- parallelization=yes
> >
> > Results
> > -------
> >   3: ovn-ic basic scale test -- 200 VPCs x 3 AZs x 4 TSs: incremental vs
> recompute -- parallelization=yes
> >   Results for 'Incremental: +1 VPC at 200-VPC scale (node handler times)'
> >   ---
> >   en_ts incremental Maximum (msec): 5
> >   en_ts incremental Average (msec): 0.990723
> >   en_tr incremental Maximum (msec): 0
> >   en_tr incremental Average (msec): 0
> >   en_route incremental Maximum (msec): 6
> >   en_route incremental Average (msec): 1.458008
> >   en_port_binding incremental Maximum (msec): 0
> >   en_port_binding incremental Average (msec): 0
> >   en_tunnel_key incremental Maximum (msec): 1
> >   en_tunnel_key incremental Average (msec): 0
> >
> >   3: ovn-ic basic scale test -- 200 VPCs x 3 AZs x 4 TSs: incremental vs
> recompute -- parallelization=yes
> >   Results for 'Full recompute at 201-VPC scale (node times)'
> >   ---
> >   en_ts recompute Maximum (msec): 3
> >   en_ts recompute Average (msec): 3.000000
> >   en_tr recompute Maximum (msec): 0
> >   en_tr recompute Average (msec): 0.000000
> >   en_route recompute Maximum (msec): 155
> >   en_route recompute Average (msec): 155.000000
> >   en_port_binding recompute Maximum (msec): 62
> >   en_port_binding recompute Average (msec): 62.000000
> >   en_tunnel_key recompute Maximum (msec): 3
> >   en_tunnel_key recompute Average (msec): 3.000000
> >
> >   4: ovn-ic basic scale test -- 400 VPCs x 3 AZs x 4 TSs: incremental vs
> recompute -- parallelization=yes
> >   Results for 'Incremental: +1 VPC at 400-VPC scale (node handler times)'
> >   ---
> >   en_ts incremental Maximum (msec): 4
> >   en_ts incremental Average (msec): 1.301319
> >   en_tr incremental Maximum (msec): 0
> >   en_tr incremental Average (msec): 0
> >   en_route incremental Maximum (msec): 5
> >   en_route incremental Average (msec): 2.055176
> >   en_port_binding incremental Maximum (msec): 0
> >   en_port_binding incremental Average (msec): 0
> >   en_tunnel_key incremental Maximum (msec): 0
> >   en_tunnel_key incremental Average (msec): 0
> >
> >   4: ovn-ic basic scale test -- 400 VPCs x 3 AZs x 4 TSs: incremental vs
> recompute -- parallelization=yes
> >   Results for 'Full recompute at 401-VPC scale (node times)'
> >   ---
> >   en_ts recompute Maximum (msec): 7
> >   en_ts recompute Average (msec): 7.000000
> >   en_tr recompute Maximum (msec): 0
> >   en_tr recompute Average (msec): 0.000000
> >   en_route recompute Maximum (msec): 147
> >   en_route recompute Average (msec): 147.000000
> >   en_port_binding recompute Maximum (msec): 121
> >   en_port_binding recompute Average (msec): 121.000000
> >   en_tunnel_key recompute Maximum (msec): 6
> >   en_tunnel_key recompute Average (msec): 6.000000
> >
> > Paulo Guilherme Silva (14):
> >   ic: Do not include config.h from headers.
> >   ic: Add missing license headers.
> >   northd: Read ic-vxlan_mode as a boolean value, not key presence.
> >   ic: Prepare *_run functions for engine nodes.
> >   ic: Split full recompute into per-subsystem engine nodes.
> >   ic: Add incremental handler for the en_az node.
> >   ic: Add the en_tunnel_key node.
> >   ic: Add incremental handler for the en_gateway node.
> >   ic: Add incremental handler for the en_ts node.
> >   ic: Add incremental handler for the en_tr node.
> >   ic: Add incremental handler for the en_port_binding node.
> >   ic: Add incremental handler for the en_route node.
> >   tests: Add ovn-ic incremental-processing basic scale test.
> >   ic: Add incremental handler for the en_service_mon node.
> >
> >  NEWS                      |   13 +
> >  ic/automake.mk            |   18 +
> >  ic/en-address-set.c       |   56 +
> >  ic/en-address-set.h       |   25 +
> >  ic/en-az.c                |  127 ++
> >  ic/en-az.h                |   38 +
> >  ic/en-gateway.c           |  413 ++++
> >  ic/en-gateway.h           |   29 +
> >  ic/en-ic.c                |    9 +-
> >  ic/en-ic.h                |   16 +-
> >  ic/en-port-binding.c      | 1718 ++++++++++++++++
> >  ic/en-port-binding.h      |   53 +
> >  ic/en-route.c             | 2772 ++++++++++++++++++++++++++
> >  ic/en-route.h             |   53 +
> >  ic/en-service-monitor.c   |  552 ++++++
> >  ic/en-service-monitor.h   |   30 +
> >  ic/en-tr.c                |  209 ++
> >  ic/en-tr.h                |   29 +
> >  ic/en-ts.c                |  227 +++
> >  ic/en-ts.h                |   33 +
> >  ic/en-tunnel-key.c        |  460 +++++
> >  ic/en-tunnel-key.h        |   60 +
> >  ic/inc-proc-ic.c          |  279 ++-
> >  ic/inc-proc-ic.h          |   23 +-
> >  ic/ovn-ic.c               | 3896 ++++---------------------------------
> >  ic/ovn-ic.h               |   60 +-
> >  northd/en-global-config.c |    4 +-
> >  ovn-ic-nb.xml             |   23 +
> >  tests/automake.mk         |    3 +-
> >  tests/ovn-ic.at           |  862 ++++++++
> >  tests/ovn-macros.at       |   32 +
> >  tests/ovn-northd.at       |   18 +
> >  tests/perf-ovn-ic.at      |  254 +++
> >  tests/perf-testsuite.at   |    1 +
> >  34 files changed, 8834 insertions(+), 3561 deletions(-)
> >  create mode 100644 ic/en-address-set.c
> >  create mode 100644 ic/en-address-set.h
> >  create mode 100644 ic/en-az.c
> >  create mode 100644 ic/en-az.h
> >  create mode 100644 ic/en-gateway.c
> >  create mode 100644 ic/en-gateway.h
> >  create mode 100644 ic/en-port-binding.c
> >  create mode 100644 ic/en-port-binding.h
> >  create mode 100644 ic/en-route.c
> >  create mode 100644 ic/en-route.h
> >  create mode 100644 ic/en-service-monitor.c
> >  create mode 100644 ic/en-service-monitor.h
> >  create mode 100644 ic/en-tr.c
> >  create mode 100644 ic/en-tr.h
> >  create mode 100644 ic/en-ts.c
> >  create mode 100644 ic/en-ts.h
> >  create mode 100644 ic/en-tunnel-key.c
> >  create mode 100644 ic/en-tunnel-key.h
> >  create mode 100644 tests/perf-ovn-ic.at
> >
> > --
> > 2.34.1
> >
> >
> > --
> >
> >
> >
> >
> > _'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
> >
>
>

-- 




_‘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

Reply via email to