get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 66291,
    "url": "http://patches.dpdk.org/api/patches/66291/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1583405273-14176-3-git-send-email-arybchenko@solarflare.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1583405273-14176-3-git-send-email-arybchenko@solarflare.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1583405273-14176-3-git-send-email-arybchenko@solarflare.com",
    "date": "2020-03-05T10:47:48",
    "name": "[2/7] net/sfc: make the flow list engine-agnostic",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "af216f3eeec3ab2aaf5ab3c9ef433bc9cc18e1f9",
    "submitter": {
        "id": 607,
        "url": "http://patches.dpdk.org/api/people/607/?format=api",
        "name": "Andrew Rybchenko",
        "email": "arybchenko@solarflare.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1583405273-14176-3-git-send-email-arybchenko@solarflare.com/mbox/",
    "series": [
        {
            "id": 8796,
            "url": "http://patches.dpdk.org/api/series/8796/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=8796",
            "date": "2020-03-05T10:47:46",
            "name": "net/sfc: prepare rte_flow to have one more backend",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/8796/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/66291/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/66291/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 5BB74A0573;\n\tThu,  5 Mar 2020 11:48:12 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 960781BFE8;\n\tThu,  5 Mar 2020 11:48:07 +0100 (CET)",
            "from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com\n [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id 89D231BFD2\n for <dev@dpdk.org>; Thu,  5 Mar 2020 11:48:06 +0100 (CET)",
            "from webmail.solarflare.com (uk.solarflare.com [193.34.186.16])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))\n (No client certificate requested)\n by mx1-us4.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id\n 00D4B800061\n for <dev@dpdk.org>; Thu,  5 Mar 2020 10:48:05 +0000 (UTC)",
            "from ukex01.SolarFlarecom.com (10.17.10.4) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id\n 15.0.1395.4; Thu, 5 Mar 2020 10:48:01 +0000",
            "from opal.uk.solarflarecom.com (10.17.10.1) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server id\n 15.0.1395.4 via Frontend Transport; Thu, 5 Mar 2020 10:48:01 +0000",
            "from ukv-loginhost.uk.solarflarecom.com\n (ukv-loginhost.uk.solarflarecom.com [10.17.10.39])\n by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id 025Am1Go016213;\n Thu, 5 Mar 2020 10:48:01 GMT",
            "from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1])\n by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 2E77D161250;\n Thu,  5 Mar 2020 10:48:01 +0000 (GMT)"
        ],
        "X-Virus-Scanned": "Proofpoint Essentials engine",
        "From": "Andrew Rybchenko <arybchenko@solarflare.com>",
        "To": "<dev@dpdk.org>",
        "CC": "Ivan Malov <ivan.malov@oktetlabs.ru>",
        "Date": "Thu, 5 Mar 2020 10:47:48 +0000",
        "Message-ID": "<1583405273-14176-3-git-send-email-arybchenko@solarflare.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1583405273-14176-1-git-send-email-arybchenko@solarflare.com>",
        "References": "<1583405273-14176-1-git-send-email-arybchenko@solarflare.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-TM-AS-Product-Ver": "SMEX-12.5.0.1300-8.5.1020-25270.003",
        "X-TM-AS-Result": "No-1.002900-8.000000-10",
        "X-TMASE-MatchedRID": "n9Ytw+RbsR/Gjl9nQey1Pm6HurDH4PpPx+jrF7TzRS38kFwgcyoo4bNt\n CD9U3Mz48XVI39JCRnRuL3ESIrARlyHhSBQfglfsA9lly13c/gGVKmGUZ/WnkajxqhyDxmYjUl0\n 3SIY6fe2Vl9mvMBSGfXLhQ+KR1I64SVQuRHVrNTEwjFu8zcBWiJwE50C6MzyI2An5g1C6+/Iyto\n nrvDOcsekhITXmkqbo6lMHeJW+THIfE8yM4pjsDwtuKBGekqUpnH7sbImOEBTYN+BAdeePDZpdo\n xoJPYDm5k6cpT6O/57fsbm0LqghAwGkTEV1U9JzxNGw6mRa/HCPyI6zPVPl+mD4Ge3a8QYfegXI\n pu27p2DkA8OrYHdwDGfYlY/yoV/0Up6EHOb2+c7kHZDO53QSwmA7bUFBqh2V",
        "X-TM-AS-User-Approved-Sender": "Yes",
        "X-TM-AS-User-Blocked-Sender": "No",
        "X-TMASE-Result": "10--1.002900-8.000000",
        "X-TMASE-Version": "SMEX-12.5.0.1300-8.5.1020-25270.003",
        "X-MDID": "1583405285-0e2KL7MN8PB7",
        "Subject": "[dpdk-dev] [PATCH 2/7] net/sfc: make the flow list engine-agnostic",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Ivan Malov <ivan.malov@oktetlabs.ru>\n\nA backend which a driver employs to handle flow rules of a given\ntype depends on the underlying NIC flow engine. The driver in\nquestion in its current state is tailored to support the only\nflow engine, VNIC filtering. As the need arises to add support\nfor transfer rules, the driver has to be reworked so that it\nbecomes possible to introduce yet another backend.\n\nAs a preparation step, make the flow list shared\nbetween different engines.\n\nSigned-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>\nSigned-off-by: Andrew Rybchenko <arybchenko@solarflare.com>\n---\n drivers/net/sfc/sfc.h        |  2 ++\n drivers/net/sfc/sfc_filter.h |  2 --\n drivers/net/sfc/sfc_flow.c   | 20 ++++++++++----------\n 3 files changed, 12 insertions(+), 12 deletions(-)",
    "diff": "diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h\nindex cc5222877..2520cf2b7 100644\n--- a/drivers/net/sfc/sfc.h\n+++ b/drivers/net/sfc/sfc.h\n@@ -242,6 +242,8 @@ struct sfc_adapter {\n \tstruct sfc_port\t\t\tport;\n \tstruct sfc_filter\t\tfilter;\n \n+\tstruct sfc_flow_list\t\tflow_list;\n+\n \tunsigned int\t\t\trxq_max;\n \tunsigned int\t\t\ttxq_max;\n \ndiff --git a/drivers/net/sfc/sfc_filter.h b/drivers/net/sfc/sfc_filter.h\nindex 64ab114e0..6a0254813 100644\n--- a/drivers/net/sfc/sfc_filter.h\n+++ b/drivers/net/sfc/sfc_filter.h\n@@ -23,8 +23,6 @@ struct sfc_filter {\n \tsize_t\t\t\t\tsupported_match_num;\n \t/** Driver cache of supported filter match masks */\n \tuint32_t\t\t\t*supported_match;\n-\t/** List of flow rules */\n-\tstruct sfc_flow_list\t\tflow_list;\n \t/**\n \t * Supports any of ip_proto, remote host or local host\n \t * filters. This flag is used for filter match exceptions\ndiff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c\nindex f285ba552..0826032e0 100644\n--- a/drivers/net/sfc/sfc_flow.c\n+++ b/drivers/net/sfc/sfc_flow.c\n@@ -2317,7 +2317,7 @@ sfc_flow_create(struct rte_eth_dev *dev,\n \n \tsfc_adapter_lock(sa);\n \n-\tTAILQ_INSERT_TAIL(&sa->filter.flow_list, flow, entries);\n+\tTAILQ_INSERT_TAIL(&sa->flow_list, flow, entries);\n \n \tif (sa->state == SFC_ADAPTER_STARTED) {\n \t\trc = sfc_flow_filter_insert(sa, flow);\n@@ -2334,7 +2334,7 @@ sfc_flow_create(struct rte_eth_dev *dev,\n \treturn flow;\n \n fail_filter_insert:\n-\tTAILQ_REMOVE(&sa->filter.flow_list, flow, entries);\n+\tTAILQ_REMOVE(&sa->flow_list, flow, entries);\n \n fail_bad_value:\n \trte_free(flow);\n@@ -2361,7 +2361,7 @@ sfc_flow_remove(struct sfc_adapter *sa,\n \t\t\t\t\"Failed to destroy flow rule\");\n \t}\n \n-\tTAILQ_REMOVE(&sa->filter.flow_list, flow, entries);\n+\tTAILQ_REMOVE(&sa->flow_list, flow, entries);\n \trte_free(flow);\n \n \treturn rc;\n@@ -2378,7 +2378,7 @@ sfc_flow_destroy(struct rte_eth_dev *dev,\n \n \tsfc_adapter_lock(sa);\n \n-\tTAILQ_FOREACH(flow_ptr, &sa->filter.flow_list, entries) {\n+\tTAILQ_FOREACH(flow_ptr, &sa->flow_list, entries) {\n \t\tif (flow_ptr == flow)\n \t\t\trc = 0;\n \t}\n@@ -2408,7 +2408,7 @@ sfc_flow_flush(struct rte_eth_dev *dev,\n \n \tsfc_adapter_lock(sa);\n \n-\twhile ((flow = TAILQ_FIRST(&sa->filter.flow_list)) != NULL) {\n+\twhile ((flow = TAILQ_FIRST(&sa->flow_list)) != NULL) {\n \t\trc = sfc_flow_remove(sa, flow, error);\n \t\tif (rc != 0)\n \t\t\tret = rc;\n@@ -2454,7 +2454,7 @@ sfc_flow_init(struct sfc_adapter *sa)\n {\n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n-\tTAILQ_INIT(&sa->filter.flow_list);\n+\tTAILQ_INIT(&sa->flow_list);\n }\n \n void\n@@ -2464,8 +2464,8 @@ sfc_flow_fini(struct sfc_adapter *sa)\n \n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n-\twhile ((flow = TAILQ_FIRST(&sa->filter.flow_list)) != NULL) {\n-\t\tTAILQ_REMOVE(&sa->filter.flow_list, flow, entries);\n+\twhile ((flow = TAILQ_FIRST(&sa->flow_list)) != NULL) {\n+\t\tTAILQ_REMOVE(&sa->flow_list, flow, entries);\n \t\trte_free(flow);\n \t}\n }\n@@ -2477,7 +2477,7 @@ sfc_flow_stop(struct sfc_adapter *sa)\n \n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n-\tTAILQ_FOREACH(flow, &sa->filter.flow_list, entries)\n+\tTAILQ_FOREACH(flow, &sa->flow_list, entries)\n \t\tsfc_flow_filter_remove(sa, flow);\n }\n \n@@ -2491,7 +2491,7 @@ sfc_flow_start(struct sfc_adapter *sa)\n \n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n-\tTAILQ_FOREACH(flow, &sa->filter.flow_list, entries) {\n+\tTAILQ_FOREACH(flow, &sa->flow_list, entries) {\n \t\trc = sfc_flow_filter_insert(sa, flow);\n \t\tif (rc != 0)\n \t\t\tgoto fail_bad_flow;\n",
    "prefixes": [
        "2/7"
    ]
}