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

In current OVN, the en-northd node is responsible for creating, updating
and deleting all southbound Datapath_Bindings and Port_Bindings. This
means that if you have a new type of Datapath_Binding or Port_Bidning
that you want to add to OVN, it needs to be added to the en-northd node.

An upcoming feature (composable services) will be adding new types of
southbound Datapath_Bindings and Port_Bindings. However, it does not fit
well into the current en_northd environment and would do better
separated into its own set of engine nodes. In order to allow this, the
Datapath_Binding and Port_Binding syncing code needs to be extracted to
separate nodes.

This series does just that. The en_northd node is stripped of its
previous functionality of creating, updating, and deleting southbound
Datapath_Bindings and Port_Bindings. These are now accomplished in
dedicated incremental engine nodes that are inputs to the en_northd
engine node.

Note that the first two versions of this series only had the datapath
refactor present. It did not have the final two patches for port binding
refactoring.

Version 6 removes two patches that have been merged into main and adds a
new patch that changes the external-ids in the southbound
Datapath_Binding.

Version 7 removes an additional patch that has been merged to main,
bringing the total in the series down to 3.

Version 8 Adds a new patch to the beginning that updates the OVS
submodulce commit. This allows for patch 2 to operate properly without
triggering an assertion in OVS.

Mark Michelson (4):
  ovs: Update ovs submodule commit.
  Datapath_Binding: Separate type and UUID external-ids.
  northd: Refactor datapath syncing.
  northd: Refactor port binding pairing.

 TODO.rst                                     |   24 +
 controller/local_data.c                      |    2 +-
 ic/ovn-ic.c                                  |    9 +-
 northd/automake.mk                           |   22 +-
 northd/datapath-sync.c                       |   86 ++
 northd/datapath-sync.h                       |   87 ++
 northd/en-datapath-logical-router.c          |  174 +++
 northd/en-datapath-logical-router.h          |   49 +
 northd/en-datapath-logical-switch.c          |  172 +++
 northd/en-datapath-logical-switch.h          |   48 +
 northd/en-datapath-sync.c                    |  313 +++++
 northd/en-datapath-sync.h                    |   27 +
 northd/en-global-config.c                    |   14 +
 northd/en-global-config.h                    |    1 +
 northd/en-northd.c                           |   55 +-
 northd/en-port-binding-chassisredirect.c     |  329 +++++
 northd/en-port-binding-chassisredirect.h     |   50 +
 northd/en-port-binding-logical-router-port.c |  176 +++
 northd/en-port-binding-logical-router-port.h |   47 +
 northd/en-port-binding-logical-switch-port.c |  229 ++++
 northd/en-port-binding-logical-switch-port.h |   48 +
 northd/en-port-binding-mirror.c              |  191 +++
 northd/en-port-binding-mirror.h              |   48 +
 northd/en-port-binding-pair.c                |  473 ++++++++
 northd/en-port-binding-pair.h                |   34 +
 northd/inc-proc-northd.c                     |   94 +-
 northd/northd.c                              | 1124 ++++--------------
 northd/northd.h                              |   33 +-
 northd/port-binding-pair.c                   |   77 ++
 northd/port-binding-pair.h                   |  108 ++
 ovn-sb.ovsschema                             |   11 +-
 ovn-sb.xml                                   |   21 +-
 ovs                                          |    2 +-
 tests/ovn-controller.at                      |    4 +
 tests/ovn-northd.at                          |    6 +-
 tests/ovn.at                                 |    6 +-
 utilities/ovn-sbctl.c                        |    4 +-
 utilities/ovn-trace.c                        |    5 +-
 38 files changed, 3249 insertions(+), 954 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
 create mode 100644 northd/en-port-binding-chassisredirect.c
 create mode 100644 northd/en-port-binding-chassisredirect.h
 create mode 100644 northd/en-port-binding-logical-router-port.c
 create mode 100644 northd/en-port-binding-logical-router-port.h
 create mode 100644 northd/en-port-binding-logical-switch-port.c
 create mode 100644 northd/en-port-binding-logical-switch-port.h
 create mode 100644 northd/en-port-binding-mirror.c
 create mode 100644 northd/en-port-binding-mirror.h
 create mode 100644 northd/en-port-binding-pair.c
 create mode 100644 northd/en-port-binding-pair.h
 create mode 100644 northd/port-binding-pair.c
 create mode 100644 northd/port-binding-pair.h

-- 
2.49.0

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

Reply via email to