Cover Letter Detail
Show a cover letter.
GET /api/covers/815866/?format=api
{ "id": 815866, "url": "http://patchwork.ozlabs.org/api/covers/815866/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openvswitch/cover/20170919220125.32535-1-blp@ovn.org/", "project": { "id": 47, "url": "http://patchwork.ozlabs.org/api/projects/47/?format=api", "name": "Open vSwitch", "link_name": "openvswitch", "list_id": "ovs-dev.openvswitch.org", "list_email": "ovs-dev@openvswitch.org", "web_url": "http://openvswitch.org/", "scm_url": "git@github.com:openvswitch/ovs.git", "webscm_url": "https://github.com/openvswitch/ovs", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170919220125.32535-1-blp@ovn.org>", "list_archive_url": null, "date": "2017-09-19T22:00:33", "name": "[ovs-dev,RFC,00/52] clustering implementation", "submitter": { "id": 67603, "url": "http://patchwork.ozlabs.org/api/people/67603/?format=api", "name": "Ben Pfaff", "email": "blp@ovn.org" }, "mbox": "http://patchwork.ozlabs.org/project/openvswitch/cover/20170919220125.32535-1-blp@ovn.org/mbox/", "series": [ { "id": 3975, "url": "http://patchwork.ozlabs.org/api/series/3975/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openvswitch/list/?series=3975", "date": "2017-09-19T22:00:34", "name": "clustering implementation", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/3975/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/815866/comments/", "headers": { "Return-Path": "<ovs-dev-bounces@openvswitch.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "dev@openvswitch.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "ovs-dev@mail.linuxfoundation.org" ], "Authentication-Results": "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=openvswitch.org\n\t(client-ip=140.211.169.12; helo=mail.linuxfoundation.org;\n\tenvelope-from=ovs-dev-bounces@openvswitch.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from mail.linuxfoundation.org (mail.linuxfoundation.org\n\t[140.211.169.12])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxcKx3Blsz9sBW\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 20 Sep 2017 08:02:13 +1000 (AEST)", "from mail.linux-foundation.org (localhost [127.0.0.1])\n\tby mail.linuxfoundation.org (Postfix) with ESMTP id 293B4B94;\n\tTue, 19 Sep 2017 22:01:39 +0000 (UTC)", "from smtp1.linuxfoundation.org (smtp1.linux-foundation.org\n\t[172.17.192.35])\n\tby mail.linuxfoundation.org (Postfix) with ESMTPS id 57C28AF7\n\tfor <dev@openvswitch.org>; Tue, 19 Sep 2017 22:01:36 +0000 (UTC)", "from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net\n\t[217.70.183.196])\n\tby smtp1.linuxfoundation.org (Postfix) with ESMTPS id 5374D3D4\n\tfor <dev@openvswitch.org>; Tue, 19 Sep 2017 22:01:35 +0000 (UTC)", "from sigabrt.benpfaff.org (unknown [208.91.2.3])\n\t(Authenticated sender: blp@ovn.org)\n\tby relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 02A25172098;\n\tWed, 20 Sep 2017 00:01:31 +0200 (CEST)" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "X-Originating-IP": "208.91.2.3", "From": "Ben Pfaff <blp@ovn.org>", "To": "dev@openvswitch.org", "Date": "Tue, 19 Sep 2017 15:00:33 -0700", "Message-Id": "<20170919220125.32535-1-blp@ovn.org>", "X-Mailer": "git-send-email 2.10.2", "X-Spam-Status": "No, score=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW\n\tautolearn=disabled version=3.3.1", "X-Spam-Checker-Version": "SpamAssassin 3.3.1 (2010-03-16) on\n\tsmtp1.linux-foundation.org", "Cc": "Ben Pfaff <blp@ovn.org>", "Subject": "[ovs-dev] [PATCH RFC 00/52] clustering implementation", "X-BeenThere": "ovs-dev@openvswitch.org", "X-Mailman-Version": "2.1.12", "Precedence": "list", "List-Id": "<ovs-dev.openvswitch.org>", "List-Unsubscribe": "<https://mail.openvswitch.org/mailman/options/ovs-dev>,\n\t<mailto:ovs-dev-request@openvswitch.org?subject=unsubscribe>", "List-Archive": "<http://mail.openvswitch.org/pipermail/ovs-dev/>", "List-Post": "<mailto:ovs-dev@openvswitch.org>", "List-Help": "<mailto:ovs-dev-request@openvswitch.org?subject=help>", "List-Subscribe": "<https://mail.openvswitch.org/mailman/listinfo/ovs-dev>,\n\t<mailto:ovs-dev-request@openvswitch.org?subject=subscribe>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Sender": "ovs-dev-bounces@openvswitch.org", "Errors-To": "ovs-dev-bounces@openvswitch.org" }, "content": "Here's a first version of the Raft-based clustering implementation.\nThere is still significant work to do, but this is ready for people\nto take a basic look at.\n\nIf you want to try it out, the final commit message has some basic\ninstructions, and a to-do list before it's really ready.\n\nYou might find it easier to fetch this from my branch on github:\nhttps://github.com/blp/ovs-reviews/tree/raft7\n\nBen Pfaff (52):\n replication: Avoid theoretical use-after-free error in\n reset_database().\n daemon-unix: With --monitor, only close standard fds if --detach also\n used.\n table: Avoid trailing white space in tables.\n util: Avoid trailing white space in hex dumps.\n ofp-print: Avoid trailing white space in OpenFlow dumps.\n jsonrpc: Allow jsonrpc_session to have more than one remote.\n socket-util: Make parse_bracketed_token() public, as\n inet_parse_token().\n uuid: New function uuid_random().\n json: New function json_nullable_clone().\n json: New function json_object_put_format().\n log: Allow client to specify magic.\n log: Require log entries to be JSON objects.\n log: Make json parameter to ovsdb_log_write() const.\n ovsdb-error: New function ovsdb_error_to_string_free().\n ovsdb-error: New function ovsdb_error_to_json_free().\n ovsdb-parser: New function ovsdb_parser_put_error().\n ovsdb-data: Add OVS_WARN_UNUSED_RESULT annotations to function\n definitions.\n ovsdb-server: Distinguish logs from other replicas.\n ovsdb: Drop distinction between monitors and replicas.\n ovsdb-server: Drop 'txn' member from struct db.\n stream-unix: Give accepted sockets distinct names for log messages.\n test-ovsdb: Simplify code in do_trigger().\n test-ovsdb: Triggers should wake up other triggers immediately.\n ovsdb-client: Show even invalid data in \"dump\" output.\n ovsdb-server: Document monitor_cond_change behavior for unmentioned\n tables.\n ovsdb-server: Forbid user-specified databases with reserved names.\n jsonrpc-server: Separate changing read_only status from reconnecting.\n table: Add --max-column-width option.\n jsonrpc-server: Enforce uniqueness of monitor IDs.\n jsonrpc-server: Report monitor session ID properly in error message.\n ovsdb-idl: Document state machine.\n ovsdb-idl: Fix assertion failure on error path parsing server reply.\n ovsdb-idl: Fix indentation in a couple of places.\n ovsdb-idl: Remove 'uuid' member of struct ovsdb_idl.\n ovsdb-idl: Add comments.\n ovsdb-idl: Fix spelling error in comment.\n ovsdb-idl: Verify insertion into singleton tables.\n ovsdb-idl: Break out database-specific stuff into new data structure.\n ovn-sbctl: Allow retries by default.\n tests: Always ignore \"Broken pipe\" and \"Connection reset\" log\n messages.\n reconnect: Add ability to do a number of retries without backoff.\n ovsdb-server: Add support for a built-in _Server database.\n ovsdb: Improve documentation.\n ovsdb-server: Add new RPC \"set_db_change_aware\".\n ovsdb-client: Move ovsdb-client specific tests to new .at file.\n ovsdb: Add support for online schema conversion.\n ovsdb-client; Add new \"get-schema-cksum\" command.\n ovsdb-client: Add new \"backup\" command.\n ovsdb-client: Add new \"restore\" command.\n ovsdb-client: Add new \"query\" command.\n ovsdb-tool: Add new \"db-name\" and \"schema-name\" commands.\n [RFC} ovsdb: Introduce support for clustered databases.\n\n Makefile.am | 8 -\n NEWS | 12 +\n build-aux/automake.mk | 12 +-\n build-aux/text2c | 16 +\n include/openvswitch/json.h | 7 +-\n lib/.gitignore | 3 +\n lib/automake.mk | 10 +\n lib/daemon-unix.c | 4 +-\n lib/json.c | 20 +-\n lib/jsonrpc.c | 66 +-\n lib/jsonrpc.h | 5 +-\n lib/ofp-print.c | 1 +\n lib/ovsdb-data.c | 115 +-\n lib/ovsdb-data.h | 16 +\n lib/ovsdb-error.c | 29 +-\n lib/ovsdb-error.h | 4 +-\n lib/ovsdb-idl-provider.h | 3 +-\n lib/ovsdb-idl.c | 1612 ++++++++------\n lib/ovsdb-idl.h | 4 +-\n lib/ovsdb-parser.c | 14 +-\n lib/ovsdb-parser.h | 3 +-\n lib/ovsdb-server-idl.ann | 9 +\n lib/ovsdb-session.c | 72 +\n lib/ovsdb-session.h | 25 +\n lib/reconnect.c | 52 +-\n lib/reconnect.h | 3 +\n lib/socket-util.c | 14 +-\n lib/socket-util.h | 3 +-\n lib/stream-unix.c | 15 +-\n lib/table.c | 25 +-\n lib/table.h | 13 +-\n lib/table.man | 5 +\n lib/util.c | 7 +-\n lib/uuid.c | 8 +\n lib/uuid.h | 13 +\n manpages.mk | 56 +-\n ovn/controller/ovn-controller.8.xml | 5 +-\n ovn/controller/ovn-controller.c | 1 +\n ovn/northd/ovn-northd.8.xml | 6 +-\n ovn/utilities/ovn-sbctl.8.in | 19 +-\n ovn/utilities/ovn-sbctl.c | 2 +-\n ovsdb/.gitignore | 5 +\n ovsdb/TODO.rst | 64 +\n ovsdb/_server.ovsschema | 19 +\n ovsdb/_server.xml | 105 +\n ovsdb/automake.mk | 51 +-\n ovsdb/execution.c | 114 +-\n ovsdb/file.c | 651 +-----\n ovsdb/file.h | 33 +-\n ovsdb/jsonrpc-server.c | 319 ++-\n ovsdb/jsonrpc-server.h | 12 +-\n ovsdb/log.c | 457 +++-\n ovsdb/log.h | 32 +-\n ovsdb/monitor.c | 73 +-\n ovsdb/monitor.h | 10 +-\n ovsdb/ovsdb-client.1.in | 222 +-\n ovsdb/ovsdb-client.c | 533 ++++-\n ovsdb/ovsdb-idlc.in | 8 +-\n ovsdb/ovsdb-schemas.man | 19 +\n ovsdb/ovsdb-server.1.in | 286 ++-\n ovsdb/ovsdb-server.c | 539 +++--\n ovsdb/ovsdb-tool.1.in | 227 +-\n ovsdb/ovsdb-tool.c | 511 ++++-\n ovsdb/ovsdb-util.c | 93 +-\n ovsdb/ovsdb-util.h | 9 +\n ovsdb/ovsdb.5.xml | 352 +++\n ovsdb/ovsdb.7.xml | 742 +++++++\n ovsdb/ovsdb.c | 115 +-\n ovsdb/ovsdb.h | 43 +-\n ovsdb/raft-private.c | 358 +++\n ovsdb/raft-private.h | 123 ++\n ovsdb/raft-rpc.c | 788 +++++++\n ovsdb/raft-rpc.h | 271 +++\n ovsdb/raft.c | 4105 +++++++++++++++++++++++++++++++++++\n ovsdb/raft.h | 142 ++\n ovsdb/remote-active.man | 17 -\n ovsdb/remote-active.xml | 30 -\n ovsdb/remote-passive.man | 19 -\n ovsdb/remote-passive.xml | 36 -\n ovsdb/replication-syn.man | 2 -\n ovsdb/replication.c | 10 +-\n ovsdb/replication.man | 23 -\n ovsdb/row.c | 3 +\n ovsdb/server.c | 14 +-\n ovsdb/server.h | 2 +-\n ovsdb/storage.c | 528 +++++\n ovsdb/storage.h | 88 +\n ovsdb/transaction.c | 225 +-\n ovsdb/transaction.h | 20 +-\n ovsdb/trigger.c | 250 ++-\n ovsdb/trigger.h | 43 +-\n python/build/nroff.py | 15 +-\n python/ovs/reconnect.py | 53 +-\n tests/.gitignore | 1 +\n tests/automake.mk | 13 +-\n tests/ofp-errors.at | 44 +-\n tests/ofp-print.at | 16 +-\n tests/ofp-util.at | 18 +-\n tests/ofproto-macros.at | 13 +\n tests/ofproto.at | 2 +-\n tests/ovn-controller-vtep.at | 14 +-\n tests/ovn-nbctl.at | 14 +-\n tests/ovn-sbctl.at | 14 +-\n tests/ovs-ofctl.at | 20 +-\n tests/ovsdb-client.at | 73 +\n tests/ovsdb-cluster.at | 78 +\n tests/ovsdb-idl.at | 2 +-\n tests/ovsdb-log.at | 225 +-\n tests/ovsdb-monitor.at | 4 +-\n tests/ovsdb-replication.at | 12 +-\n tests/ovsdb-server.at | 399 +++-\n tests/ovsdb-tool.at | 72 +-\n tests/ovsdb-trigger.at | 2 +-\n tests/ovsdb.at | 2 +\n tests/reconnect.at | 56 +-\n tests/test-ovsdb.c | 69 +-\n tests/test-raft.c | 303 +++\n tests/test-raft.sh | 13 +\n tests/test-raft2.sh | 12 +\n tests/test-raft3.sh | 14 +\n tests/test-raft4.sh | 37 +\n tests/test-reconnect.c | 8 +\n tests/test-reconnect.py | 5 +\n tests/torture-raft4.sh | 23 +\n tutorial/ovs-sandbox | 2 +-\n utilities/ovs-vsctl.8.in | 21 +-\n vswitchd/ovs-vswitchd.8.in | 7 +-\n vtep/vtep-ctl.8.in | 23 +-\n 128 files changed, 14116 insertions(+), 2641 deletions(-)\n create mode 100755 build-aux/text2c\n create mode 100644 lib/ovsdb-server-idl.ann\n create mode 100644 lib/ovsdb-session.c\n create mode 100644 lib/ovsdb-session.h\n create mode 100644 ovsdb/TODO.rst\n create mode 100644 ovsdb/_server.ovsschema\n create mode 100644 ovsdb/_server.xml\n create mode 100644 ovsdb/ovsdb-schemas.man\n create mode 100644 ovsdb/ovsdb.5.xml\n create mode 100644 ovsdb/ovsdb.7.xml\n create mode 100644 ovsdb/raft-private.c\n create mode 100644 ovsdb/raft-private.h\n create mode 100644 ovsdb/raft-rpc.c\n create mode 100644 ovsdb/raft-rpc.h\n create mode 100644 ovsdb/raft.c\n create mode 100644 ovsdb/raft.h\n delete mode 100644 ovsdb/remote-active.man\n delete mode 100644 ovsdb/remote-active.xml\n delete mode 100644 ovsdb/remote-passive.man\n delete mode 100644 ovsdb/remote-passive.xml\n delete mode 100644 ovsdb/replication-syn.man\n delete mode 100644 ovsdb/replication.man\n create mode 100644 ovsdb/storage.c\n create mode 100644 ovsdb/storage.h\n create mode 100644 tests/ovsdb-client.at\n create mode 100644 tests/ovsdb-cluster.at\n create mode 100644 tests/test-raft.c\n create mode 100755 tests/test-raft.sh\n create mode 100755 tests/test-raft2.sh\n create mode 100755 tests/test-raft3.sh\n create mode 100755 tests/test-raft4.sh\n create mode 100755 tests/torture-raft4.sh" }