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 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
