get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 76906,
    "url": "https://patches.dpdk.org/api/patches/76906/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200908095015.23708-2-alvinx.zhang@intel.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20200908095015.23708-2-alvinx.zhang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200908095015.23708-2-alvinx.zhang@intel.com",
    "date": "2020-09-08T09:50:14",
    "name": "[v3,2/3] net/iavf: support outer IP hash for GTPC",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "b27ac40ab821d5ef3b0f2ac6264b414d5799f5e1",
    "submitter": {
        "id": 1398,
        "url": "https://patches.dpdk.org/api/people/1398/?format=api",
        "name": "Alvin Zhang",
        "email": "alvinx.zhang@intel.com"
    },
    "delegate": {
        "id": 1540,
        "url": "https://patches.dpdk.org/api/users/1540/?format=api",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20200908095015.23708-2-alvinx.zhang@intel.com/mbox/",
    "series": [
        {
            "id": 12019,
            "url": "https://patches.dpdk.org/api/series/12019/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=12019",
            "date": "2020-09-08T09:50:13",
            "name": "[v3,1/3] common/iavf: add GTPC support",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/12019/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/76906/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/76906/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 5BC54A04AA;\n\tTue,  8 Sep 2020 11:54:20 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 94B001C0CD;\n\tTue,  8 Sep 2020 11:54:14 +0200 (CEST)",
            "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n by dpdk.org (Postfix) with ESMTP id 02D981BEE1\n for <dev@dpdk.org>; Tue,  8 Sep 2020 11:54:12 +0200 (CEST)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\n by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 08 Sep 2020 02:54:12 -0700",
            "from shwdenpg235.ccr.corp.intel.com ([10.240.182.60])\n by orsmga002.jf.intel.com with ESMTP; 08 Sep 2020 02:54:10 -0700"
        ],
        "IronPort-SDR": [
            "\n 8WcWi2CG9+rbtFQuMNdjylGE7/DPxHK3PDv8e3EPL66T/J4R9eSfcqsTyFLVlimrL76mnQ0Jhk\n q06T4WlGhkpA==",
            "\n qOEc0iyF/HB/gtvvPacM7ohRQnj8Q37jt3nvvGxujkGaUn/F/+crLZRGys8ptmnXnjj6foU3Pz\n qyUFV+DGH+HA=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9737\"; a=\"219662248\"",
            "E=Sophos;i=\"5.76,405,1592895600\"; d=\"scan'208\";a=\"219662248\"",
            "E=Sophos;i=\"5.76,405,1592895600\"; d=\"scan'208\";a=\"317136366\""
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "From": "alvinx.zhang@intel.com",
        "To": "jia.guo@intel.com,\n\tqi.z.zhang@intel.com",
        "Cc": "dev@dpdk.org,\n\tAlvin Zhang <alvinx.zhang@intel.com>",
        "Date": "Tue,  8 Sep 2020 17:50:14 +0800",
        "Message-Id": "<20200908095015.23708-2-alvinx.zhang@intel.com>",
        "X-Mailer": "git-send-email 2.21.0.windows.1",
        "In-Reply-To": "<20200908095015.23708-1-alvinx.zhang@intel.com>",
        "References": "<20200908095015.23708-1-alvinx.zhang@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 2/3] net/iavf: support outer IP hash for GTPC",
        "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: Alvin Zhang <alvinx.zhang@intel.com>\n\nAdd patterns and headers for GTPC, now outer IP hash can be configured\nas input sets for GTPC packet.\n\nSigned-off-by: Alvin Zhang <alvinx.zhang@intel.com>\n---\n drivers/net/iavf/iavf_generic_flow.c | 18 ++++++++++++++++++\n drivers/net/iavf/iavf_generic_flow.h |  6 ++++++\n drivers/net/iavf/iavf_hash.c         | 15 +++++++++++++++\n 3 files changed, 39 insertions(+)",
    "diff": "diff --git a/drivers/net/iavf/iavf_generic_flow.c b/drivers/net/iavf/iavf_generic_flow.c\nindex 321a4dc..00e7f15 100644\n--- a/drivers/net/iavf/iavf_generic_flow.c\n+++ b/drivers/net/iavf/iavf_generic_flow.c\n@@ -315,6 +315,15 @@ enum rte_flow_item_type iavf_pattern_eth_qinq_ipv6_icmp6[] = {\n \tRTE_FLOW_ITEM_TYPE_END,\n };\n \n+/* IPv4 GTPC */\n+enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpc[] = {\n+\tRTE_FLOW_ITEM_TYPE_ETH,\n+\tRTE_FLOW_ITEM_TYPE_IPV4,\n+\tRTE_FLOW_ITEM_TYPE_UDP,\n+\tRTE_FLOW_ITEM_TYPE_GTPC,\n+\tRTE_FLOW_ITEM_TYPE_END,\n+};\n+\n /* IPV4 GTPU (EH) */\n enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu[] = {\n \tRTE_FLOW_ITEM_TYPE_ETH,\n@@ -333,6 +342,15 @@ enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_eh[] = {\n \tRTE_FLOW_ITEM_TYPE_END,\n };\n \n+/* IPv6 GTPC */\n+enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpc[] = {\n+\tRTE_FLOW_ITEM_TYPE_ETH,\n+\tRTE_FLOW_ITEM_TYPE_IPV6,\n+\tRTE_FLOW_ITEM_TYPE_UDP,\n+\tRTE_FLOW_ITEM_TYPE_GTPC,\n+\tRTE_FLOW_ITEM_TYPE_END,\n+};\n+\n /* IPV6 GTPU (EH) */\n enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu[] = {\n \tRTE_FLOW_ITEM_TYPE_ETH,\ndiff --git a/drivers/net/iavf/iavf_generic_flow.h b/drivers/net/iavf/iavf_generic_flow.h\nindex f365cc3..dbc7294 100644\n--- a/drivers/net/iavf/iavf_generic_flow.h\n+++ b/drivers/net/iavf/iavf_generic_flow.h\n@@ -182,10 +182,16 @@\n extern enum rte_flow_item_type iavf_pattern_eth_vlan_ipv6_icmp6[];\n extern enum rte_flow_item_type iavf_pattern_eth_qinq_ipv6_icmp6[];\n \n+/* IPv4 GTPC */\n+extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpc[];\n+\n /* IPv4 GTPU (EH) */\n extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu[];\n extern enum rte_flow_item_type iavf_pattern_eth_ipv4_gtpu_eh[];\n \n+/* IPv4 GTPC */\n+extern enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpc[];\n+\n /* IPv6 GTPU (EH) */\n extern enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu[];\n extern enum rte_flow_item_type iavf_pattern_eth_ipv6_gtpu_eh[];\ndiff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c\nindex aab8b14..ddea3dd 100644\n--- a/drivers/net/iavf/iavf_hash.c\n+++ b/drivers/net/iavf/iavf_hash.c\n@@ -132,6 +132,9 @@ struct iavf_hash_flow_cfg {\n \tVIRTCHNL_PROTO_HDR_PFCP, \\\n \tFIELD_SELECTOR(VIRTCHNL_PROTO_HDR_PFCP_SEID), {BUFF_NOUSED} }\n \n+#define proto_hdr_gtpc { \\\n+\tVIRTCHNL_PROTO_HDR_GTPC, 0, {BUFF_NOUSED} }\n+\n #define TUNNEL_LEVEL_OUTER\t\t0\n #define TUNNEL_LEVEL_INNER\t\t1\n \n@@ -256,6 +259,14 @@ struct virtchnl_proto_hdrs ipv6_pfcp_tmplt = {\n \tTUNNEL_LEVEL_OUTER, 2, {proto_hdr_ipv6, proto_hdr_pfcp}\n };\n \n+struct virtchnl_proto_hdrs ipv4_udp_gtpc_tmplt = {\n+\tTUNNEL_LEVEL_OUTER, 3, {proto_hdr_ipv4, proto_hdr_udp, proto_hdr_gtpc}\n+};\n+\n+struct virtchnl_proto_hdrs ipv6_udp_gtpc_tmplt = {\n+\tTUNNEL_LEVEL_OUTER, 3, {proto_hdr_ipv6, proto_hdr_udp, proto_hdr_gtpc}\n+};\n+\n /* rss type super set */\n \n /* IPv4 outer */\n@@ -365,6 +376,7 @@ struct virtchnl_proto_hdrs ipv6_pfcp_tmplt = {\n \t{iavf_pattern_eth_ipv4_ah,\t\t\tIAVF_RSS_TYPE_IPV4_AH,\t\t&ipv4_ah_tmplt},\n \t{iavf_pattern_eth_ipv4_l2tpv3,\t\t\tIAVF_RSS_TYPE_IPV4_L2TPV3,\t&ipv4_l2tpv3_tmplt},\n \t{iavf_pattern_eth_ipv4_pfcp,\t\t\tIAVF_RSS_TYPE_IPV4_PFCP,\t&ipv4_pfcp_tmplt},\n+\t{iavf_pattern_eth_ipv4_gtpc,\t\t\tETH_RSS_IPV4,\t\t\t&ipv4_udp_gtpc_tmplt},\n \t/* IPv6 */\n \t{iavf_pattern_eth_ipv6,\t\t\t\tIAVF_RSS_TYPE_OUTER_IPV6,\t&outer_ipv6_tmplt},\n \t{iavf_pattern_eth_ipv6_udp,\t\t\tIAVF_RSS_TYPE_OUTER_IPV6_UDP,\t&outer_ipv6_udp_tmplt},\n@@ -391,6 +403,7 @@ struct virtchnl_proto_hdrs ipv6_pfcp_tmplt = {\n \t{iavf_pattern_eth_ipv6_ah,\t\t\tIAVF_RSS_TYPE_IPV6_AH,\t\t&ipv6_ah_tmplt},\n \t{iavf_pattern_eth_ipv6_l2tpv3,\t\t\tIAVF_RSS_TYPE_IPV6_L2TPV3,\t&ipv6_l2tpv3_tmplt},\n \t{iavf_pattern_eth_ipv6_pfcp,\t\t\tIAVF_RSS_TYPE_IPV6_PFCP,\t&ipv6_pfcp_tmplt},\n+\t{iavf_pattern_eth_ipv6_gtpc,\t\t\tETH_RSS_IPV6,\t\t\t&ipv6_udp_gtpc_tmplt},\n };\n \n struct virtchnl_proto_hdrs *iavf_hash_default_hdrs[] = {\n@@ -592,6 +605,8 @@ struct virtchnl_proto_hdrs *iavf_hash_default_hdrs[] = {\n \t\t\t\telse if (rss_type & ETH_RSS_L4_DST_ONLY)\n \t\t\t\t\tVIRTCHNL_DEL_PROTO_HDR_FIELD(hdr,\n \t\t\t\t\t\tVIRTCHNL_PROTO_HDR_UDP_SRC_PORT);\n+\t\t\t} else {\n+\t\t\t\thdr->field_selector = 0;\n \t\t\t}\n \t\t\tbreak;\n \t\tcase VIRTCHNL_PROTO_HDR_TCP:\n",
    "prefixes": [
        "v3",
        "2/3"
    ]
}