This set of patches is based on a series authored by Esteban Rodriguez Betancourt, Jorge Arturo Sauma Vargas, Javier Albornoz, and Arnoldo Lutz Guevara that has been inactive for a number of months.
v8: Rebased. v7: - Added patches to make use of client idl indexing in ovn-controller (these were previously in a separate RFC series). - Incorporated feedback from Ben Pfaff. - Rebased. - Added a test case for NULL range endpoints. - Fixed "git am" whitespace issue. - Replaced assert() with ovs_assert() (checkpatch.py) v6: - More coding style fixes, text polishing. - Fixed null pointer dereference when initializing cursor with non-existent index name. - Reworked v5 memory leak fix to avoid having to dynamically allocate strings passed to *_index_set_*() functions. - Simplified ovsdb_idl_index_init_row() and ovsdb_idl_index_destroy_row__() somewhat. v5: - Rebased on ovs master. - Implemented changes suggestion in review of v4. - Coding style fixes, some text polishing. - Testing by using this feature to eliminate a number of ad-hoc indexing structures used in ovn-controller. - Fixes for memory leaks found in testing. Lance Richardson (7): ovsdb-idl: compound indexes design document lib: skiplist implementation ovsdb-idl: idl compound indexes implementation ovsdb-idl: Autogenerated functions for compound indexes ovn-controller: use idl index for multicast group table ovn-controller: use idl indexes for logical port table ovn-controller: use idl indexes for logical datapath Documentation/automake.mk | 1 + Documentation/topics/idl-compound-indexes.rst | 302 +++++++++++++++++++ Documentation/topics/index.rst | 1 + lib/automake.mk | 2 + lib/ovsdb-idl-provider.h | 29 ++ lib/ovsdb-idl.c | 401 ++++++++++++++++++++++++++ lib/ovsdb-idl.h | 51 ++++ lib/skiplist.c | 261 +++++++++++++++++ lib/skiplist.h | 49 ++++ ovn/controller/bfd.c | 28 +- ovn/controller/binding.c | 51 ++-- ovn/controller/binding.h | 6 +- ovn/controller/lflow.c | 43 ++- ovn/controller/lflow.h | 4 - ovn/controller/lport.c | 302 ++++++++----------- ovn/controller/lport.h | 60 +--- ovn/controller/ovn-controller.c | 61 +++- ovn/controller/ovn-controller.h | 2 +- ovn/controller/physical.c | 14 +- ovn/controller/physical.h | 2 +- ovn/controller/pinctrl.c | 87 +++--- ovn/controller/pinctrl.h | 2 +- ovsdb/ovsdb-idlc.in | 258 +++++++++++++++++ tests/.gitignore | 1 + tests/automake.mk | 2 + tests/library.at | 11 + tests/ovsdb-idl.at | 282 ++++++++++++++++++ tests/test-ovsdb.c | 286 +++++++++++++++++- tests/test-skiplist.c | 211 ++++++++++++++ 29 files changed, 2439 insertions(+), 371 deletions(-) create mode 100644 Documentation/topics/idl-compound-indexes.rst create mode 100644 lib/skiplist.c create mode 100644 lib/skiplist.h create mode 100644 tests/test-skiplist.c -- 2.13.3 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev