get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 74087,
    "url": "http://patchwork.dpdk.org/api/patches/74087/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20200715195329.34699-4-chenmin.sun@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20200715195329.34699-4-chenmin.sun@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200715195329.34699-4-chenmin.sun@intel.com",
    "date": "2020-07-15T19:53:28",
    "name": "[V4,3/4] net/i40e: move the i40e_get_outer_vlan to where it real needed",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "90bfd695024cc87e4575702b3ac7b1b407cbf83a",
    "submitter": {
        "id": 1212,
        "url": "http://patchwork.dpdk.org/api/people/1212/?format=api",
        "name": "Chenmin Sun",
        "email": "chenmin.sun@intel.com"
    },
    "delegate": {
        "id": 1540,
        "url": "http://patchwork.dpdk.org/api/users/1540/?format=api",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20200715195329.34699-4-chenmin.sun@intel.com/mbox/",
    "series": [
        {
            "id": 11046,
            "url": "http://patchwork.dpdk.org/api/series/11046/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=11046",
            "date": "2020-07-15T19:53:25",
            "name": "i40e FDIR update rate optimization",
            "version": 4,
            "mbox": "http://patchwork.dpdk.org/series/11046/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/74087/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/74087/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 92CA0A0545;\n\tWed, 15 Jul 2020 12:57:00 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 297CC1BF5D;\n\tWed, 15 Jul 2020 12:56:44 +0200 (CEST)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n by dpdk.org (Postfix) with ESMTP id 5B68F1BEE7\n for <dev@dpdk.org>; Wed, 15 Jul 2020 12:56:40 +0200 (CEST)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 15 Jul 2020 03:56:40 -0700",
            "from npg-dpdk-vpp-scm-1.sh.intel.com ([10.67.118.226])\n by orsmga005.jf.intel.com with ESMTP; 15 Jul 2020 03:56:38 -0700"
        ],
        "IronPort-SDR": [
            "\n Te842sgo/xm0ClcdNOHQ+215bvio8xQRFCER8HHyy/Cve3gN/D0Qfvf6xnC7QoCSYiOMXCUDVc\n Inx8gOF5BDcQ==",
            "\n +HEe0hpITBqdysqdOXNV0qrIRjDf5deZRTlaAY9Xs4RAGKtP32dBsFZ9xYc6kDY0/WKcvY8kjt\n OAvYanMcIsPA=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9682\"; a=\"137249754\"",
            "E=Sophos;i=\"5.75,355,1589266800\"; d=\"scan'208\";a=\"137249754\"",
            "E=Sophos;i=\"5.75,355,1589266800\"; d=\"scan'208\";a=\"460026053\""
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "From": "chenmin.sun@intel.com",
        "To": "qi.z.zhang@intel.com, beilei.xing@intel.com, jingjing.wu@intel.com,\n haiyue.wang@intel.com",
        "Cc": "dev@dpdk.org,\n\tchenmin.sun@intel.com",
        "Date": "Thu, 16 Jul 2020 03:53:28 +0800",
        "Message-Id": "<20200715195329.34699-4-chenmin.sun@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200715195329.34699-1-chenmin.sun@intel.com>",
        "References": "<20200713222321.2118-1-chenmin.sun@intel.com>\n <20200715195329.34699-1-chenmin.sun@intel.com>",
        "Subject": "[dpdk-dev] [PATCH V4 3/4] net/i40e: move the i40e_get_outer_vlan to\n\twhere it real needed",
        "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: Chenmin Sun <chenmin.sun@intel.com>\n\nThis patch moves the fetching the device tpid to where it really needs,\nrather than fetching it every time when entered the functions.\nThis is because this operation costs too many cycles and it is used only\nwhen matching the ethernet header.\n\nSigned-off-by: Chenmin Sun <chenmin.sun@intel.com>\n---\n drivers/net/i40e/i40e_flow.c | 11 +++--------\n 1 file changed, 3 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c\nindex 8c36f29b9..9a8bca46f 100644\n--- a/drivers/net/i40e/i40e_flow.c\n+++ b/drivers/net/i40e/i40e_flow.c\n@@ -2047,9 +2047,6 @@ i40e_flow_parse_ethertype_pattern(struct rte_eth_dev *dev,\n \tconst struct rte_flow_item_eth *eth_spec;\n \tconst struct rte_flow_item_eth *eth_mask;\n \tenum rte_flow_item_type item_type;\n-\tuint16_t outer_tpid;\n-\n-\touter_tpid = i40e_get_outer_vlan(dev);\n \n \tfor (; item->type != RTE_FLOW_ITEM_TYPE_END; item++) {\n \t\tif (item->last) {\n@@ -2109,7 +2106,7 @@ i40e_flow_parse_ethertype_pattern(struct rte_eth_dev *dev,\n \t\t\tif (filter->ether_type == RTE_ETHER_TYPE_IPV4 ||\n \t\t\t    filter->ether_type == RTE_ETHER_TYPE_IPV6 ||\n \t\t\t    filter->ether_type == RTE_ETHER_TYPE_LLDP ||\n-\t\t\t    filter->ether_type == outer_tpid) {\n+\t\t\t    filter->ether_type == i40e_get_outer_vlan(dev)) {\n \t\t\t\trte_flow_error_set(error, EINVAL,\n \t\t\t\t\t\t   RTE_FLOW_ERROR_TYPE_ITEM,\n \t\t\t\t\t\t   item,\n@@ -2611,7 +2608,6 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev *dev,\n \tuint16_t flex_size;\n \tbool cfg_flex_pit = true;\n \tbool cfg_flex_msk = true;\n-\tuint16_t outer_tpid;\n \tuint16_t ether_type;\n \tuint32_t vtc_flow_cpu;\n \tbool outer_ip = true;\n@@ -2620,7 +2616,6 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev *dev,\n \tmemset(off_arr, 0, sizeof(off_arr));\n \tmemset(len_arr, 0, sizeof(len_arr));\n \tmemset(flex_mask, 0, I40E_FDIR_MAX_FLEX_LEN);\n-\touter_tpid = i40e_get_outer_vlan(dev);\n \tfilter->input.flow_ext.customized_pctype = false;\n \tfor (; item->type != RTE_FLOW_ITEM_TYPE_END; item++) {\n \t\tif (item->last) {\n@@ -2688,7 +2683,7 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev *dev,\n \t\t\t\tif (next_type == RTE_FLOW_ITEM_TYPE_VLAN ||\n \t\t\t\t    ether_type == RTE_ETHER_TYPE_IPV4 ||\n \t\t\t\t    ether_type == RTE_ETHER_TYPE_IPV6 ||\n-\t\t\t\t    ether_type == outer_tpid) {\n+\t\t\t\t    ether_type == i40e_get_outer_vlan(dev)) {\n \t\t\t\t\trte_flow_error_set(error, EINVAL,\n \t\t\t\t\t\t     RTE_FLOW_ERROR_TYPE_ITEM,\n \t\t\t\t\t\t     item,\n@@ -2732,7 +2727,7 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev *dev,\n \n \t\t\t\tif (ether_type == RTE_ETHER_TYPE_IPV4 ||\n \t\t\t\t    ether_type == RTE_ETHER_TYPE_IPV6 ||\n-\t\t\t\t    ether_type == outer_tpid) {\n+\t\t\t\t    ether_type == i40e_get_outer_vlan(dev)) {\n \t\t\t\t\trte_flow_error_set(error, EINVAL,\n \t\t\t\t\t\t     RTE_FLOW_ERROR_TYPE_ITEM,\n \t\t\t\t\t\t     item,\n",
    "prefixes": [
        "V4",
        "3/4"
    ]
}