get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/804186/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 804186,
    "url": "http://patchwork.ozlabs.org/api/patches/804186/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/openvswitch/patch/20170821214523.17860-1-rams@vmware.com/",
    "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": "<20170821214523.17860-1-rams@vmware.com>",
    "list_archive_url": null,
    "date": "2017-08-21T21:45:23",
    "name": "[ovs-dev] datapath-windows: Move OvsCreateNewNBLsFromMultipleNBs to BuggerMgmt",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "cd1a32b7e2ab5c1658ab35892df31ca8c82ee212",
    "submitter": {
        "id": 69910,
        "url": "http://patchwork.ozlabs.org/api/people/69910/?format=api",
        "name": "Shashank Ram",
        "email": "rams@vmware.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/openvswitch/patch/20170821214523.17860-1-rams@vmware.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/804186/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/804186/checks/",
    "tags": {},
    "related": [],
    "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 3xbnMN3qMBz9t1t\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 22 Aug 2017 07:46:40 +1000 (AEST)",
            "from mail.linux-foundation.org (localhost [127.0.0.1])\n\tby mail.linuxfoundation.org (Postfix) with ESMTP id 390B5900;\n\tMon, 21 Aug 2017 21:46:36 +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 391E68E3\n\tfor <dev@openvswitch.org>; Mon, 21 Aug 2017 21:46:35 +0000 (UTC)",
            "from EX13-EDG-OU-001.vmware.com (ex13-edg-ou-001.vmware.com\n\t[208.91.0.189])\n\tby smtp1.linuxfoundation.org (Postfix) with ESMTPS id 21F1B460\n\tfor <dev@openvswitch.org>; Mon, 21 Aug 2017 21:46:35 +0000 (UTC)",
            "from sc9-mailhost1.vmware.com (10.113.161.71) by\n\tEX13-EDG-OU-001.vmware.com (10.113.208.155) with Microsoft SMTP\n\tServer id 15.0.1156.6; Mon, 21 Aug 2017 14:45:44 -0700",
            "from localhost.localdomain (htb-1s-eng-dhcp79.eng.vmware.com\n\t[10.33.78.79])\n\tby sc9-mailhost1.vmware.com (Postfix) with ESMTP id 76F0718524;\n\tMon, 21 Aug 2017 14:46:34 -0700 (PDT)"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "From": "Shashank Ram <rams@vmware.com>",
        "To": "<dev@openvswitch.org>",
        "Date": "Mon, 21 Aug 2017 14:45:23 -0700",
        "Message-ID": "<20170821214523.17860-1-rams@vmware.com>",
        "X-Mailer": "git-send-email 2.9.3.windows.2",
        "MIME-Version": "1.0",
        "Received-SPF": "None (EX13-EDG-OU-001.vmware.com: rams@vmware.com does not\n\tdesignate permitted sender hosts)",
        "Subject": "[ovs-dev] [PATCH] datapath-windows: Move\n\tOvsCreateNewNBLsFromMultipleNBs to BuggerMgmt",
        "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>",
        "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": "Moves function OvsCreateNewNBLsFromMultipleNBs() to BufferMgmt.c\nto facilitate consumption from outside PacketIO.c.\n\nSigned-off-by: Shashank Ram <rams@vmware.com>\n---\n datapath-windows/ovsext/BufferMgmt.c | 47 ++++++++++++++++++++++++++++++++++++\n datapath-windows/ovsext/BufferMgmt.h |  4 +++\n datapath-windows/ovsext/PacketIO.c   | 42 --------------------------------\n 3 files changed, 51 insertions(+), 42 deletions(-)\n\n--\n2.9.3.windows.2",
    "diff": "diff --git a/datapath-windows/ovsext/BufferMgmt.c b/datapath-windows/ovsext/BufferMgmt.c\nindex 1ede4a3..5c9e562 100644\n--- a/datapath-windows/ovsext/BufferMgmt.c\n+++ b/datapath-windows/ovsext/BufferMgmt.c\n@@ -1783,3 +1783,50 @@ OvsGetCtxSourcePortNo(PNET_BUFFER_LIST nbl,\n     *portNo = ctx->srcPortNo;\n     return NDIS_STATUS_SUCCESS;\n }\n+\n+/*\n+ * --------------------------------------------------------------------------\n+ * OvsCreateNewNBLsFromMultipleNBs --\n+ *      Creates an NBL chain where each NBL has a single NB,\n+ *      from an NBL which has multiple NBs.\n+ *      Sets 'curNbl' and 'lastNbl' to the first and last NBL in the\n+ *      newly created NBL chain respectively, and completes the original NBL.\n+ * --------------------------------------------------------------------------\n+ */\n+NTSTATUS\n+OvsCreateNewNBLsFromMultipleNBs(POVS_SWITCH_CONTEXT switchContext,\n+                                PNET_BUFFER_LIST *curNbl,\n+                                PNET_BUFFER_LIST *lastNbl)\n+{\n+    NTSTATUS status = STATUS_SUCCESS;\n+    PNET_BUFFER_LIST newNbls = NULL;\n+    PNET_BUFFER_LIST nbl = NULL;\n+    BOOLEAN error = TRUE;\n+\n+    do {\n+        /* Create new NBLs from curNbl with multiple net buffers. */\n+        newNbls = OvsPartialCopyToMultipleNBLs(switchContext,\n+                                               *curNbl, 0, 0, TRUE);\n+        if (NULL == newNbls) {\n+            OVS_LOG_ERROR(\"Failed to allocate NBLs with single NB.\");\n+            status = NDIS_STATUS_RESOURCES;\n+            break;\n+        }\n+\n+        nbl = newNbls;\n+        while (nbl) {\n+            *lastNbl = nbl;\n+            nbl = NET_BUFFER_LIST_NEXT_NBL(nbl);\n+        }\n+\n+        (*curNbl)->Next = NULL;\n+\n+        OvsCompleteNBL(switchContext, *curNbl, TRUE);\n+\n+        *curNbl = newNbls;\n+\n+        error = FALSE;\n+    } while (error);\n+\n+    return status;\n+}\ndiff --git a/datapath-windows/ovsext/BufferMgmt.h b/datapath-windows/ovsext/BufferMgmt.h\nindex e6cc0fe..dcf310a 100644\n--- a/datapath-windows/ovsext/BufferMgmt.h\n+++ b/datapath-windows/ovsext/BufferMgmt.h\n@@ -141,4 +141,8 @@ NDIS_STATUS OvsSetCtxSourcePortNo(PNET_BUFFER_LIST nbl, UINT32 portNo);\n\n NDIS_STATUS OvsGetCtxSourcePortNo(PNET_BUFFER_LIST nbl, UINT32 *portNo);\n\n+NTSTATUS OvsCreateNewNBLsFromMultipleNBs(PVOID context,\n+                                         PNET_BUFFER_LIST *curNbl,\n+                                         PNET_BUFFER_LIST *lastNbl);\n+\n #endif /* __BUFFER_MGMT_H_ */\ndiff --git a/datapath-windows/ovsext/PacketIO.c b/datapath-windows/ovsext/PacketIO.c\nindex 81c574e..38e3e5f 100644\n--- a/datapath-windows/ovsext/PacketIO.c\n+++ b/datapath-windows/ovsext/PacketIO.c\n@@ -46,10 +46,6 @@ extern NDIS_STRING ovsExtFriendlyNameUC;\n static VOID OvsFinalizeCompletionList(OvsCompletionList *completionList);\n static VOID OvsCompleteNBLIngress(POVS_SWITCH_CONTEXT switchContext,\n                     PNET_BUFFER_LIST netBufferLists, ULONG sendCompleteFlags);\n-static NTSTATUS OvsCreateNewNBLsFromMultipleNBs(\n-                    POVS_SWITCH_CONTEXT switchContext,\n-                    PNET_BUFFER_LIST *curNbl,\n-                    PNET_BUFFER_LIST *lastNbl);\n\n VOID\n OvsInitCompletionList(OvsCompletionList *completionList,\n@@ -500,41 +496,3 @@ OvsExtCancelSendNBL(NDIS_HANDLE filterModuleContext,\n     /* All send requests get completed synchronously, so there is no need to\n      * implement this callback. */\n }\n-\n-static NTSTATUS\n-OvsCreateNewNBLsFromMultipleNBs(POVS_SWITCH_CONTEXT switchContext,\n-                                PNET_BUFFER_LIST *curNbl,\n-                                PNET_BUFFER_LIST *lastNbl)\n-{\n-    NTSTATUS status = STATUS_SUCCESS;\n-    PNET_BUFFER_LIST newNbls = NULL;\n-    PNET_BUFFER_LIST nbl = NULL;\n-    BOOLEAN error = TRUE;\n-\n-    do {\n-        /* Create new NBLs from curNbl with multiple net buffers. */\n-        newNbls = OvsPartialCopyToMultipleNBLs(switchContext,\n-                                               *curNbl, 0, 0, TRUE);\n-        if (NULL == newNbls) {\n-            OVS_LOG_ERROR(\"Failed to allocate NBLs with single NB.\");\n-            status = NDIS_STATUS_RESOURCES;\n-            break;\n-        }\n-\n-        nbl = newNbls;\n-        while (nbl) {\n-            *lastNbl = nbl;\n-            nbl = NET_BUFFER_LIST_NEXT_NBL(nbl);\n-        }\n-\n-        (*curNbl)->Next = NULL;\n-\n-        OvsCompleteNBL(switchContext, *curNbl, TRUE);\n-\n-        *curNbl = newNbls;\n-\n-        error = FALSE;\n-    } while (error);\n-\n-    return status;\n-}\n",
    "prefixes": [
        "ovs-dev"
    ]
}