I realized that after my latest rebase, there are three tests that are failing with this changeset:

IGMP snoop/querier/relay
ARP lookup before learning
vtep 3HVs, 1 VIFs/HV, 1 GW, 1 LS

They don't fail in master, so I know they're the fault of the branch.

With that in mind, I will fix these failures and post a v2 of this RFC. Don't let that deter you from having a look at v1 though, since you still can get a feel for what the change is proposing.

On 10/18/19 4:42 PM, Mark Michelson wrote:
This proposes a set of patches to move pinctrl operations out of the
ovn-controller process and into its own.

The main reasons for doing this are the following:
1) Separating pinctrl makes it so that receiving a packet-in can't wake
up ovn-controller.
2) Separating pinctrl allows for manipulating the southbound database
directly while handling packets in, thus minimizing the need for storing
local copies of data
3) This lays the groundwork for an easier eventual conversion of
ovn-controller to DDlog, since the DDlog code would need to only handle
flow creation, not packet in handling.

This is an RFC. With this set of changes, item (2) above is not well
addressed here. While the multithreading is removed from pinctrl, the
structural components have not been altered. Were this idea to be
approved, point (2) would be addressed when creating the final patch.

Please share your thoughts.

Mark Michelson (5):
   Separate pinctrl to its own process.
   Resolve duplicate functions in ovn-controller and ovn-pinctrl.
   Remove multithreading from pinctrl.
   Move ovn-pinctrl to its own directory.
   Flesh out manpage with more details about ovn-pinctrl

  Makefile.am                       |   1 +
  controller/automake.mk            |   3 +-
  controller/binding.c              |  22 +-
  controller/binding.h              |   3 +-
  controller/controller-utils.c     | 220 +++++++++++
  controller/ovn-controller.c       | 233 +-----------
  controller/ovn-controller.h       |  20 +
  pinctrl/automake.mk               |  25 ++
  pinctrl/ovn-pinctrl.8.xml         | 110 ++++++
  pinctrl/ovn-pinctrl.c             | 413 +++++++++++++++++++++
  {controller => pinctrl}/pinctrl.c | 748 ++++++++++----------------------------
  {controller => pinctrl}/pinctrl.h |   0
  tests/automake.mk                 |   2 +-
  tests/ofproto-macros.at           |   3 +
  tests/ovn.at                      |  13 +-
  tutorial/ovs-sandbox              |   5 +
  utilities/ovn-ctl                 |  40 ++
  17 files changed, 1064 insertions(+), 797 deletions(-)
  create mode 100644 controller/controller-utils.c
  create mode 100644 pinctrl/automake.mk
  create mode 100644 pinctrl/ovn-pinctrl.8.xml
  create mode 100644 pinctrl/ovn-pinctrl.c
  rename {controller => pinctrl}/pinctrl.c (84%)
  rename {controller => pinctrl}/pinctrl.h (100%)


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

Reply via email to