This patch series seeks to refactor how northbound datapath types are
synced with southbound Datapath_Bindings.

Currently, there are two types of logical datapaths in OVN,
Logical_Switch and Logical_Router. The en-northd node is responsible for
syncing these logical datapaths with southbound datapath bindings.

An upcoming feature (composable services) seeks to add new types of
logical datapaths in the northbound database. However, these new logical
datapath types have little overlap with existing Logical_Routers
or Logical_Switches. Their processing is much more narrow and simple,
too. We're faced with two choices:

1) Expand the struct ovn_datapath type in northd to also understand
composable service datapath types. Expand build_datapaths() in northd.c
to handle these new composable service logical datapaths. Add logical
flow processing for composable services to northd.c.

2) Perform datapath syncing prior to en-northd running. Composable
services can then create their logical flows in separate incremental
nodes outside of en-northd.

This series opts for option 2.

The goal was to have this series encompass both southbound
Datapath_Binding syncing and southbound Port_Binding syncing. However, I
have had to start over from scratch too many times on the Port_Binding
syncing, and rebasing this branch is a pain. Therefore, the
Datapath_Binding syncing change is here on its own.

Mark Michelson (3):
  en-global-config: Cache vxlan mode and max tunnel key.
  northd: Remove lr_list from en_northd data.
  northd: Refactor datapath syncing.

 TODO.rst                            |  12 +
 northd/automake.mk                  |   8 +
 northd/datapath_sync.c              |  57 ++++
 northd/datapath_sync.h              |  77 ++++++
 northd/en-datapath-logical-router.c | 175 ++++++++++++
 northd/en-datapath-logical-router.h |  48 ++++
 northd/en-datapath-logical-switch.c | 176 ++++++++++++
 northd/en-datapath-logical-switch.h |  47 ++++
 northd/en-datapath-sync.c           | 319 ++++++++++++++++++++++
 northd/en-datapath-sync.h           |  27 ++
 northd/en-global-config.c           |  61 +++--
 northd/en-global-config.h           |   3 +
 northd/en-northd.c                  |   7 +
 northd/inc-proc-northd.c            |  42 +++
 northd/northd.c                     | 403 ++++------------------------
 northd/northd.h                     |  13 +-
 16 files changed, 1096 insertions(+), 379 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

-- 
2.47.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to