[ovs-dev] [PATCH 0/4] Refactor OVSDB IDL into two layers

Ben Pfaff blp at ovn.org
Tue Nov 24 22:38:41 UTC 2020


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.

This change triggers bugs in ovn-controller's implementation of
incremental processing.  I'll send out a separate OVN patch that
partly addresses that.

Ben Pfaff (4):
  jsonrpc: Avoid disconnecting prematurely due to long poll intervals.
  ovsdb-idl: Avoid redundant clearing and parsing of received data.
  ovsdb-idl: Fix memory leak sending messages without a session.
  ovsdb-idl: Break into two layers.

 lib/automake.mk          |    2 +
 lib/jsonrpc.c            |    5 +-
 lib/ovsdb-cs.c           | 2259 ++++++++++++++++++++++++++++++++++++
 lib/ovsdb-cs.h           |  191 +++
 lib/ovsdb-idl-provider.h |    8 +-
 lib/ovsdb-idl.c          | 2381 +++++++-------------------------------
 lib/ovsdb-idl.h          |    5 +-
 lib/reconnect.c          |   25 +-
 lib/reconnect.h          |    1 +
 tests/ovsdb-idl.at       |    9 +-
 tests/test-reconnect.c   |    1 +
 11 files changed, 2924 insertions(+), 1963 deletions(-)
 create mode 100644 lib/ovsdb-cs.c
 create mode 100644 lib/ovsdb-cs.h

-- 
2.26.2



More information about the dev mailing list