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 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev