On 8/13/25 7:20 PM, Mark Michelson via dev wrote:
> In current OVN, the en-northd node (via code in northd.c) takes full
> control of syncing logical switches and logical routers with southbound
> datapath bindings. This is fine, so long as:
> 1) These are the only datapath types to sync.
> 2) northd will always be the arbiter of datapath syncing.
> 
> However, future commits will introduce new types of datapaths. These are
> not good fits for the en-northd node, since they have completely
> independent processing rules, and trying to shoehorn them into a struct
> ovn_datapath would be wasteful.
> 
> This patch introduces a new way of syncing datapaths. Each datapath type
> has a node that is responsible for creating an ovn_unsynced_datapath_map
> for the type of datapath it creates. Then a type-agnostic datapath
> syncing node syncs these datapaths with the southbound Datapath_Binding
> type. Then, these synced datapaths are fed back into type-specific
> datapath nodes, which translate these synced datapaths into specific
> types.
> 
> Nodes can then use these as inputs if they need synced datapaths (i.e. a
> northbound type with its corresponding southbound type). In this case,
> en_northd uses the synced logical switch and logical router types in
> order to create its ovn_datapath structures.
> 
> Doing this will provide an easy way to sync new datapath types to the
> southbound database.
> 
> Signed-off-by: Mark Michelson <[email protected]>
> Acked-by: Ales Musil <[email protected]>
> ---
> V17:
> - cherry picked from v15
> ---

Hi Mark,

>  TODO.rst                            |  12 +
>  northd/automake.mk                  |   8 +
>  northd/datapath-sync.c              |  90 +++++++
>  northd/datapath-sync.h              |  86 +++++++
>  northd/en-datapath-logical-router.c | 188 ++++++++++++++
>  northd/en-datapath-logical-router.h |  48 ++++
>  northd/en-datapath-logical-switch.c | 182 ++++++++++++++
>  northd/en-datapath-logical-switch.h |  47 ++++
>  northd/en-datapath-sync.c           | 320 ++++++++++++++++++++++++
>  northd/en-datapath-sync.h           |  27 ++
>  northd/en-global-config.c           |  11 +
>  northd/en-northd.c                  |   6 +
>  northd/inc-proc-northd.c            |  28 +++
>  northd/northd.c                     | 366 +++-------------------------
>  northd/northd.h                     |  15 +-
>  15 files changed, 1096 insertions(+), 338 deletions(-)
>  create mode 100644 northd/datapath-sync.c
>  create mode 100644 northd/datapath-sync.h
>  create mode 100644 northd/en-datapath-logical-router.c
>  create mode 100644 northd/en-datapath-logical-router.h
>  create mode 100644 northd/en-datapath-logical-switch.c
>  create mode 100644 northd/en-datapath-logical-switch.h
>  create mode 100644 northd/en-datapath-sync.c
>  create mode 100644 northd/en-datapath-sync.h
> 
> diff --git a/TODO.rst b/TODO.rst
> index 85208bfe3..07dca71af 100644
> --- a/TODO.rst
> +++ b/TODO.rst
> @@ -153,3 +153,15 @@ OVN To-do List
>      monitoring conditions to update before we actually try to learn routes.
>      Otherwise we could try to add duplicated Learned_Routes and the ovnsb
>      commit would fail.
> +
> +* Datapath sync nodes
> +
> +  * Add incremental processing to the en-datapath-logical-switch,
> +    en-datapath-logical-router, en-datapath-sync, and possibly the
> +    en-datapath-synced-logical-router and en-datapath-synced-logical-switch
> +    nodes.
> +

I removed this entry before applying the patch.  The next patches in the
series actually implement the incremental processing for these nodes.

I then applied the patch to main.

Thanks a lot for the hard work on this one!

Regards,
Dumitru

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to