Show a cover letter.

GET /api/covers/1524523/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 1524523,
    "url": "http://patchwork.ozlabs.org/api/covers/1524523/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/ovn/cover/20210903192748.1408062-1-frode.nordahl@canonical.com/",
    "project": {
        "id": 68,
        "url": "http://patchwork.ozlabs.org/api/projects/68/?format=api",
        "name": "Open Virtual Network development",
        "link_name": "ovn",
        "list_id": "ovs-dev.openvswitch.org",
        "list_email": "ovs-dev@openvswitch.org",
        "web_url": "http://openvswitch.org/",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20210903192748.1408062-1-frode.nordahl@canonical.com>",
    "list_archive_url": null,
    "date": "2021-09-03T19:27:39",
    "name": "[ovs-dev,v4,0/9] Introduce infrastructure for plugging providers",
    "submitter": {
        "id": 77851,
        "url": "http://patchwork.ozlabs.org/api/people/77851/?format=api",
        "name": "Frode Nordahl",
        "email": "frode.nordahl@canonical.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/ovn/cover/20210903192748.1408062-1-frode.nordahl@canonical.com/mbox/",
    "series": [
        {
            "id": 260950,
            "url": "http://patchwork.ozlabs.org/api/series/260950/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/ovn/list/?series=260950",
            "date": "2021-09-03T19:27:42",
            "name": "Introduce infrastructure for plugging providers",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/260950/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/1524523/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@lists.linuxfoundation.org"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=canonical.com header.i=@canonical.com\n header.a=rsa-sha256 header.s=20210705 header.b=WYicQdkv;\n\tdkim-atps=neutral",
            "ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org\n (client-ip=140.211.166.137; helo=smtp4.osuosl.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=<UNKNOWN>)",
            "smtp1.osuosl.org (amavisd-new);\n dkim=pass (2048-bit key) header.d=canonical.com"
        ],
        "Received": [
            "from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 4H1SWN57fQz9sCD\n\tfor <incoming@patchwork.ozlabs.org>; Sat,  4 Sep 2021 05:28:16 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 53E2842738;\n\tFri,  3 Sep 2021 19:28:14 +0000 (UTC)",
            "from smtp4.osuosl.org ([127.0.0.1])\n\tby localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id AUZVr3fTz2GX; Fri,  3 Sep 2021 19:28:10 +0000 (UTC)",
            "from lists.linuxfoundation.org (lf-lists.osuosl.org\n [IPv6:2605:bc80:3010:104::8cd3:938])\n\tby smtp4.osuosl.org (Postfix) with ESMTPS id 897454273C;\n\tFri,  3 Sep 2021 19:28:06 +0000 (UTC)",
            "from lf-lists.osuosl.org (localhost [127.0.0.1])\n\tby lists.linuxfoundation.org (Postfix) with ESMTP id B51C8C003C;\n\tFri,  3 Sep 2021 19:28:00 +0000 (UTC)",
            "from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n by lists.linuxfoundation.org (Postfix) with ESMTP id 3B2A2C0027\n for <dev@openvswitch.org>; Fri,  3 Sep 2021 19:27:56 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id 27ECF83E89\n for <dev@openvswitch.org>; Fri,  3 Sep 2021 19:27:56 +0000 (UTC)",
            "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id EvrRfqefz-tU for <dev@openvswitch.org>;\n Fri,  3 Sep 2021 19:27:52 +0000 (UTC)",
            "from smtp-relay-canonical-1.canonical.com\n (smtp-relay-canonical-1.canonical.com [185.125.188.121])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 78BBF80CC4\n for <dev@openvswitch.org>; Fri,  3 Sep 2021 19:27:52 +0000 (UTC)",
            "from frode-threadripper.. (1.general.frode.uk.vpn [10.172.193.250])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-relay-canonical-1.canonical.com (Postfix) with ESMTPSA id 05ECD3F07E;\n Fri,  3 Sep 2021 19:27:48 +0000 (UTC)"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.8.0",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;\n s=20210705; t=1630697269;\n bh=0AhBy/JfjWroEzf1LHDLCiGDX1DxsTmklJyorVX2fEQ=;\n h=From:To:Cc:Subject:Date:Message-Id:MIME-Version;\n b=WYicQdkvJcF/mz7U2W+IdWxMr/N094DCqPixOniMjcMzM26LGke5tDOGL1Dw55Bfg\n /1Silt1P3U3JVt/BKe+5tC1Lq25nUtlk7fbIAmwZARVdZRpmelyi/zJlkMTiJl9u6E\n xMhXeKMOyDQpaW/FUkJMnfvgHlRb5//hdhYZYnxgv6VYdPCR5OoYin8bmmnjKNRnf0\n F+JfNwbbSj1fEY/+nvT3AOb3ZNxSHBvpao92yUGzFQOZ1C4rKGGKmiKEvv65Kz2UDP\n qsPFnHMrTicj4JUndDmCxh60BeL6OJgfEtl4zKzKNPTu8LhiqO/Yix1i4edcQAjtnP\n zCGwT3DuQs8Qg==",
        "From": "Frode Nordahl <frode.nordahl@canonical.com>",
        "To": "dev@openvswitch.org",
        "Date": "Fri,  3 Sep 2021 21:27:39 +0200",
        "Message-Id": "<20210903192748.1408062-1-frode.nordahl@canonical.com>",
        "X-Mailer": "git-send-email 2.32.0",
        "MIME-Version": "1.0",
        "Subject": "[ovs-dev] [PATCH ovn v4 0/9] Introduce infrastructure for plugging\n\tproviders",
        "X-BeenThere": "ovs-dev@openvswitch.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "<ovs-dev.openvswitch.org>",
        "List-Unsubscribe": "<https://mail.openvswitch.org/mailman/options/ovs-dev>,\n <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 <mailto:ovs-dev-request@openvswitch.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "ovs-dev-bounces@openvswitch.org",
        "Sender": "\"dev\" <ovs-dev-bounces@openvswitch.org>"
    },
    "content": "Introduce infrastructure for plugging providers and add feature to\novn-controller to add and remove ports on the integration bridge as\ndirected by CMS through Logical_Switch_Port options.\n\nTraditionally it has been the CMSs responsibility to create Virtual\nInterfaces (VIFs) as part of instance (Container, Pod, Virtual\nMachine etc.) life cycle, and subsequently manage plug/unplug\noperations on the Open vSwitch integration bridge.\n\nWith the advent of NICs connected to multiple distinct CPUs we can\nhave a topology where the instance runs on one host and Open\nvSwitch and OVN runs on a different host, the smartnic control plane\nCPU.  The host facing interfaces will be visible to Open vSwitch\nand OVN as representor ports.\n\nThe actions necessary for plugging and unplugging the representor\nport in Open vSwitch running on the smartnic control plane CPU would\nbe the same for every CMS.\n\nHardware or platform specific details for initialization and lookup\nof representor ports is provided by an plugging provider hosted\ninside or outside the core OVN repository, and linked at OVN build\ntime.\n\nRFC1 -> RFC2:\n - Introduce the plug-provider interface, remove hardware/platform\n   dependent code.\n - Add ovsport module.\n - Integrate with binding module.\n - Split into multiple patches.\n\nRFC2 -> v1:\n - Extend build system, `--with-plug-provider`.\n - Check for required data in b_ctx_in and lbinding data structures.\n - Split consider_plug_lport into update and create processsing\n   functions.\n - Consider unplug on release where relevant.\n - Add ovn-controller `--enable-dummy-plug` option for testing.\n - Consistent function naming and move ovsport module to controller/.\n - Rename plug-test.c -> plug-dummy.c.\n - Add functional- and unit- tests.\n\nv1 -> v2:\n - Move update to controller/binding.h from patch 6 -> patch 5.\n - Fix lint problems reported by 0-day Robot.\n\nv2 -> v3:\n - Fix build system extension for plug provider.\n - Implement DDlog version of northd change.\n - Rebase on tip.\n\nv3 -> v4:\n - sb:Port_Binding:plugged_by -> sb:Port_Binding:requested_chassis.\n - Move documentation of plugin specific options to plugin\n   implementation.\n - ovn-northd-ddlog: squash changes into same patch as C version, rework\n   the DDlog implementation. \n - controller: Use requested_chassis column instead of parsing options.\n - plug-provider: Remove the extra class instantiation layer and\n   refcounting.  Add documentation and various tweaks.\n - controller: Add engine node for plug provider so that a plugin run\n   function can run at an appropriate time and also allow feeding back\n   information about changes that can not be handled incrementally.\n - binding: Fix return values for plug functions so they adhere to the\n   incremental processing engine contract.\n - Add support for building in-tree plug providers.\n \n\nPrevious discussion:\n - RFC1: https://patchwork.ozlabs.org/project/ovn/patch/20210509140305.1910796-1-frode.nordahl@canonical.com/\n - RFC2: https://patchwork.ozlabs.org/project/ovn/cover/20210805145013.3033919-1-frode.nordahl@gmail.com/\n\nFrode Nordahl (9):\n  ovn-sb: Add requested_chassis column to Port_Binding.\n  tests: Stop using non-existent requested-chassis\n  controller: Make use of Port_Binding:requested_chassis\n  controller: Move OVS port functions to new module.\n  patch: Consume ovsport functions.\n  lib: Add infrastructure for plugging providers.\n  ovn-controller: Prepare plugging infrastructure.\n  binding: Consider plugging of ports on CMS request.\n  plug_providers: Introduce representor plugin.\n\n Documentation/automake.mk                     |   2 +\n Documentation/topics/index.rst                |   1 +\n Documentation/topics/plug_providers/index.rst |  33 +\n .../topics/plug_providers/plug-providers.rst  | 204 ++++++\n .../plug_providers/plug-representor.rst       |  45 ++\n acinclude.m4                                  |  49 ++\n build-aux/initial-tab-whitelist               |   1 +\n configure.ac                                  |   4 +\n controller/automake.mk                        |   4 +-\n controller/binding.c                          | 272 +++++++-\n controller/binding.h                          |   1 +\n controller/ovn-controller.c                   |  29 +\n controller/ovsport.c                          | 256 +++++++\n controller/ovsport.h                          |  60 ++\n controller/patch.c                            |  39 +-\n controller/physical.c                         |   7 +-\n include/automake.mk                           |   4 +\n include/linux/automake.mk                     |   2 +\n include/linux/devlink.h                       | 625 ++++++++++++++++++\n lib/automake.mk                               |  23 +-\n lib/chassis-index.c                           |  24 +\n lib/chassis-index.h                           |   3 +\n lib/inc-proc-eng.h                            |   7 +\n lib/plug-dummy.c                              | 123 ++++\n lib/plug-dummy.h                              |  33 +\n lib/plug-provider.h                           | 102 +++\n lib/plug.c                                    | 256 +++++++\n lib/plug.h                                    | 107 +++\n .../representor/netlink-devlink.c             | 499 ++++++++++++++\n .../representor/netlink-devlink.h             | 115 ++++\n .../representor/plug-representor.c            | 307 +++++++++\n lib/test-plug.c                               |  72 ++\n m4/ovn.m4                                     |  26 +\n northd/ovn-northd.c                           |  55 +-\n northd/ovn_northd.dl                          | 124 +++-\n ovn-architecture.7.xml                        |  35 +-\n ovn-nb.xml                                    |  33 +-\n ovn-sb.ovsschema                              |  10 +-\n ovn-sb.xml                                    |  37 +-\n tests/automake.mk                             |   4 +-\n tests/ovn-controller.at                       |  31 +\n tests/ovn-macros.at                           |   2 +-\n tests/ovn-northd.at                           |  45 ++\n tests/ovn-plug.at                             |   8 +\n tests/ovn.at                                  |  13 +-\n 45 files changed, 3629 insertions(+), 103 deletions(-)\n create mode 100644 Documentation/topics/plug_providers/index.rst\n create mode 100644 Documentation/topics/plug_providers/plug-providers.rst\n create mode 100644 Documentation/topics/plug_providers/plug-representor.rst\n create mode 100644 controller/ovsport.c\n create mode 100644 controller/ovsport.h\n create mode 100644 include/linux/automake.mk\n create mode 100644 include/linux/devlink.h\n create mode 100644 lib/plug-dummy.c\n create mode 100644 lib/plug-dummy.h\n create mode 100644 lib/plug-provider.h\n create mode 100644 lib/plug.c\n create mode 100644 lib/plug.h\n create mode 100644 lib/plug_providers/representor/netlink-devlink.c\n create mode 100644 lib/plug_providers/representor/netlink-devlink.h\n create mode 100644 lib/plug_providers/representor/plug-representor.c\n create mode 100644 lib/test-plug.c\n create mode 100644 tests/ovn-plug.at"
}