This patch series implements conditional monitoring by introducing an OVSDB RFC extension with 2 new JSON-RPC methods: "monitor_cond" and "monitor_cond_update". Specification of this extension is defined in the ovsdb-server (1) man page. Monitor2 is now merged into monitor_cond. A monitor_cond session with an empty condition, will behave exactly like monitor2 and will get update2 notifications on all rows.
Note: With this patch the json cache will be used only for monitor sessions with an empty condition. v2-v3: * monitor_cond_update method receives a single json condition * Support non-monitored columns in condition * Simplify IDL API for iteratively build condition by client * Bug fixes * Style issues v1->v2: * Change monitor_cond_change to monitor_cond_update * monitor_cond_update spec allows now to change monitored columns (unsupported) * Use new <json-value> as a session ID as a result of monitor_cond_update command. * Clarifications in ovsdb-server(1) man page. * Bug fix in ovsdb_monitor_get_all_rows() * Fix style issues Liran Schour (10): ovsdb: create column index mapping between ovsdb row to monitor row ovsdb: add conditions utilities to support monitor_cond ovsdb: allow non-monitored columns for condition evaluation ovsdb: generate update notifications for monitor_cond session ovsdb-client: support monitor-cond ovsdb: enable jsonrpc-server to service "monitor_cond_update" request lib: add to ovsdb-idl monitor_id lib: add monitor_cond_update API to C IDL lib python: move Python idl to work with monitor_cond tests: add testing for idl conditional monitoring NEWS | 3 +- lib/ovsdb-idl-provider.h | 13 ++ lib/ovsdb-idl.c | 219 ++++++++++++++++-- lib/ovsdb-idl.h | 35 +++ ovsdb/condition.c | 191 +++++++++++++-- ovsdb/condition.h | 19 +- ovsdb/jsonrpc-server.c | 222 +++++++++++++++--- ovsdb/jsonrpc-server.h | 2 +- ovsdb/monitor.c | 587 ++++++++++++++++++++++++++++++++++++++++++----- ovsdb/monitor.h | 48 +++- ovsdb/ovsdb-client.1.in | 37 ++- ovsdb/ovsdb-client.c | 70 ++++-- ovsdb/ovsdb-idlc.in | 168 ++++++++++++++ ovsdb/ovsdb-server.1.in | 230 +++++++++++++++++-- ovsdb/ovsdb-server.c | 20 +- ovsdb/query.c | 4 +- python/ovs/db/data.py | 18 +- python/ovs/db/idl.py | 181 +++++++++++++-- tests/ovs-vswitchd.at | 8 +- tests/ovsdb-condition.at | 30 +++ tests/ovsdb-idl.at | 204 +++++++++++++++- tests/ovsdb-monitor.at | 207 +++++++++++++++++ tests/test-ovsdb.c | 141 +++++++++++- tests/test-ovsdb.py | 24 ++ 24 files changed, 2458 insertions(+), 223 deletions(-) -- 2.1.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev