[ovs-dev] [PATCH v4 0/3] Refactor OVSDB IDL into two layers
Ben Pfaff
blp at ovn.org
Thu Jan 7 19:41:09 UTC 2021
This series still applies, and needs a final review.
On Fri, Dec 18, 2020 at 06:44:21PM -0800, Ben Pfaff wrote:
> This series breaks the IDL into two layers: the IDL proper, whose
> interface to its client is unchanged, and a low-level library called
> the OVSDB "client synchronization" (CS) library. There are two
> reasons for this change. First, the IDL is big and complicated and
> I think that this change factors out some of that complication into
> a simpler lower layer. Second, the OVN northd implementation based
> on DDlog can benefit from the client synchronization library even
> though it would actually be made increasingly complicated by the IDL.
>
> v1->v2:
> - Add a few patches with trivial bug fixes and improvements to idl.
> - Make ovsdb-cs data structures exactly reproduce the ordering
> that the idl previously used, so that the behavior is exactly
> the same. This fixes the behavior in the ovn-controller. I am
> pretty convinced that there is a bug in the idl regarding change
> tracking, but these patches will not make it better or worse.
> There are lots of idl patches flying around on the mailing list
> currently; maybe one of those fixes the real problem.
>
> v2->v3:
> - Rebase and integrate upstream changes.
> - Make change_seqno and conditional monitoring behavior reproduce
> the same behavior as the existing idl. This fixes a test failure
> I was seeing after (but not before) rebase.
> - I don't see any failures in upstream ovn with this applied.
> - New patch "test-ovsdb: Log steps in idl test." that I found useful
> in debugging.
>
> v3->v4:
> - Apply (and drop) several reviewed patches.
> - Log more and fix minor nits in "test-ovsdb: Log steps in idl test.".
> - Fix memory leak in ovsdb_cs_db_init() and in ovsdb_cs_send_transaction()
> in "ovsdb-idl: Break into two layers."
>
> Ben Pfaff (3):
> test-ovsdb: Log steps in idl test.
> ovsdb-cs: New module that factors out code from ovsdb-idl.
> ovsdb-idl: Break into two layers.
>
> lib/automake.mk | 2 +
> lib/ovsdb-cs.c | 2281 ++++++++++++++++++++++++++++++++++++
> lib/ovsdb-cs.h | 205 ++++
> lib/ovsdb-idl-provider.h | 8 +-
> lib/ovsdb-idl.c | 2365 +++++++-------------------------------
> tests/test-ovsdb.c | 266 ++---
> 6 files changed, 3049 insertions(+), 2078 deletions(-)
> create mode 100644 lib/ovsdb-cs.c
> create mode 100644 lib/ovsdb-cs.h
>
> --
> 2.28.0
>
More information about the dev
mailing list