mbox series

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

Message ID 20201124223845.990670-1-blp@ovn.org
Headers show
Series Refactor OVSDB IDL into two layers | expand

Message

Ben Pfaff Nov. 24, 2020, 10:38 p.m. UTC
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