[ovs-dev] [RFC ovn PATCH 0/5] Separate pinctrl to its own process

Mark Michelson mmichels at redhat.com
Mon Oct 21 18:24:43 UTC 2019


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%)
> 



More information about the dev mailing list