get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 58182,
    "url": "https://patches.dpdk.org/api/patches/58182/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20190829023656.8220-47-qi.z.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": "<20190829023656.8220-47-qi.z.zhang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20190829023656.8220-47-qi.z.zhang@intel.com",
    "date": "2019-08-29T02:36:39",
    "name": "[v2,46/63] net/ice/base: add RSS support for PPPoE and GTPU",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "01b9e5f034ed759d769d3d49ae47f9a064472084",
    "submitter": {
        "id": 504,
        "url": "https://patches.dpdk.org/api/people/504/?format=api",
        "name": "Qi Zhang",
        "email": "qi.z.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/20190829023656.8220-47-qi.z.zhang@intel.com/mbox/",
    "series": [
        {
            "id": 6158,
            "url": "https://patches.dpdk.org/api/series/6158/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=6158",
            "date": "2019-08-29T02:35:54",
            "name": "[v2,01/63] net/ice/base: enhance NVM read",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/6158/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/58182/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/58182/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 071441C216;\n\tThu, 29 Aug 2019 04:36:10 +0200 (CEST)",
            "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n\tby dpdk.org (Postfix) with ESMTP id 6570E1C126\n\tfor <dev@dpdk.org>; Thu, 29 Aug 2019 04:35:41 +0200 (CEST)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n\tby orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t28 Aug 2019 19:35:41 -0700",
            "from dpdk51.sh.intel.com ([10.67.110.245])\n\tby orsmga004.jf.intel.com with ESMTP; 28 Aug 2019 19:35:39 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.64,442,1559545200\"; d=\"scan'208\";a=\"332363860\"",
        "From": "Qi Zhang <qi.z.zhang@intel.com>",
        "To": "wenzhuo.lu@intel.com,\n\tqiming.yang@intel.com",
        "Cc": "dev@dpdk.org, xiaolong.ye@intel.com, Qi Zhang <qi.z.zhang@intel.com>,\n\tZhirun Yan <zhirun.yan@intel.com>,\n\tPaul M Stillwell Jr <paul.m.stillwell.jr@intel.com>",
        "Date": "Thu, 29 Aug 2019 10:36:39 +0800",
        "Message-Id": "<20190829023656.8220-47-qi.z.zhang@intel.com>",
        "X-Mailer": "git-send-email 2.13.6",
        "In-Reply-To": "<20190829023656.8220-1-qi.z.zhang@intel.com>",
        "References": "<20190826105105.19121-1-qi.z.zhang@intel.com>\n\t<20190829023656.8220-1-qi.z.zhang@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2 46/63] net/ice/base: add RSS support for PPPoE\n\tand GTPU",
        "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Added RSS support for PPPoE with inner TCP and UDP.\nAdded RSS support for GTPU with IPv4 and IPv6.\n\nSigned-off-by: Zhirun Yan <zhirun.yan@intel.com>\nSigned-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>\nSigned-off-by: Qi Zhang <qi.z.zhang@intel.com>\n---\n drivers/net/ice/base/ice_flow.c | 38 ++++++++++++++++++++++++++++----------\n drivers/net/ice/base/ice_flow.h | 17 +++++++++++++++--\n 2 files changed, 43 insertions(+), 12 deletions(-)",
    "diff": "diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c\nindex a49196c1c..f71ac50d6 100644\n--- a/drivers/net/ice/base/ice_flow.c\n+++ b/drivers/net/ice/base/ice_flow.c\n@@ -167,7 +167,7 @@ static const u32 ice_ptypes_macvlan_il[] = {\n static const u32 ice_ptypes_ipv4_ofos[] = {\n \t0xFDC00000, 0xBFBF7F7E, 0x00EFDFDF, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n-\t0x0003000F, 0x00000000, 0x00000000, 0x00000000,\n+\t0x0003000F, 0x000FC000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n@@ -179,7 +179,7 @@ static const u32 ice_ptypes_ipv4_ofos[] = {\n static const u32 ice_ptypes_ipv4_il[] = {\n \t0xE0000000, 0xB807700E, 0x8001DC03, 0xE01DC03B,\n \t0x0007700E, 0x00000000, 0x00000000, 0x00000000,\n-\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00000000, 0x000FF800, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n@@ -191,7 +191,7 @@ static const u32 ice_ptypes_ipv4_il[] = {\n static const u32 ice_ptypes_ipv6_ofos[] = {\n \t0x00000000, 0x00000000, 0xF7000000, 0xFEFDFDFB,\n \t0x03BF7F7E, 0x00000000, 0x00000000, 0x00000000,\n-\t0x00080F00, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00080F00, 0x03F00000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n@@ -203,7 +203,7 @@ static const u32 ice_ptypes_ipv6_ofos[] = {\n static const u32 ice_ptypes_ipv6_il[] = {\n \t0x00000000, 0x03B80770, 0x00EE01DC, 0x0EE00000,\n \t0x03B80770, 0x00000000, 0x00000000, 0x00000000,\n-\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00000000, 0x7FE00000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n@@ -229,7 +229,7 @@ static const u32 ice_ptypes_arp_of[] = {\n static const u32 ice_ptypes_udp_il[] = {\n \t0x81000000, 0x20204040, 0x04081010, 0x80810102,\n \t0x00204040, 0x00000000, 0x00000000, 0x00000000,\n-\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00410000, 0x10842000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n@@ -241,7 +241,7 @@ static const u32 ice_ptypes_udp_il[] = {\n static const u32 ice_ptypes_tcp_il[] = {\n \t0x04000000, 0x80810102, 0x10204040, 0x42040408,\n \t0x00810102, 0x00000000, 0x00000000, 0x00000000,\n-\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00820000, 0x21084000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n@@ -277,7 +277,7 @@ static const u32 ice_ptypes_icmp_of[] = {\n static const u32 ice_ptypes_icmp_il[] = {\n \t0x00000000, 0x02040408, 0x40810102, 0x08101020,\n \t0x02040408, 0x00000000, 0x00000000, 0x00000000,\n-\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00000000, 0x42108000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n@@ -345,6 +345,18 @@ static const u32 ice_ptypes_gtpu[] = {\n \t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n };\n \n+/* Packet types for pppoe */\n+static const u32 ice_ptypes_pppoe[] = {\n+\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x03FFF000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+\t0x00000000, 0x00000000, 0x00000000, 0x00000000,\n+};\n+\n /* Manage parameters and info. used during the creation of a flow profile */\n struct ice_flow_prof_params {\n \tenum ice_block blk;\n@@ -368,8 +380,7 @@ struct ice_flow_prof_params {\n #define ICE_FLOW_SEG_HDRS_L4_MASK\t\\\n \t(ICE_FLOW_SEG_HDR_ICMP | ICE_FLOW_SEG_HDR_TCP | ICE_FLOW_SEG_HDR_UDP | \\\n \t ICE_FLOW_SEG_HDR_SCTP | ICE_FLOW_SEG_HDR_GTPC | \\\n-\t ICE_FLOW_SEG_HDR_GTPC_TEID | ICE_FLOW_SEG_HDR_GTPU_IP | \\\n-\t ICE_FLOW_SEG_HDR_GTPU_UP | ICE_FLOW_SEG_HDR_GTPU_DWN)\n+\t ICE_FLOW_SEG_HDR_GTPC_TEID | ICE_FLOW_SEG_HDR_GTPU)\n \n /**\n  * ice_flow_val_hdrs - validates packet segments for valid protocol headers\n@@ -487,6 +498,12 @@ ice_flow_proc_seg_hdrs(struct ice_flow_prof_params *params)\n \t\t\t\t       ICE_FLOW_PTYPE_MAX);\n \t\t}\n \n+\t\tif (hdrs & ICE_FLOW_SEG_HDR_PPPOE) {\n+\t\t\tsrc = (const ice_bitmap_t *)ice_ptypes_pppoe;\n+\t\t\tice_and_bitmap(params->ptypes, params->ptypes, src,\n+\t\t\t\t       ICE_FLOW_PTYPE_MAX);\n+\t\t}\n+\n \t\tif (hdrs & ICE_FLOW_SEG_HDR_IPV4) {\n \t\t\tsrc = !i ? (const ice_bitmap_t *)ice_ptypes_ipv4_ofos :\n \t\t\t\t(const ice_bitmap_t *)ice_ptypes_ipv4_il;\n@@ -1670,7 +1687,8 @@ ice_flow_add_fld_raw(struct ice_flow_seg_info *seg, u16 off, u8 len,\n \n #define ICE_FLOW_RSS_SEG_HDR_L4_MASKS \\\n \t(ICE_FLOW_SEG_HDR_TCP | ICE_FLOW_SEG_HDR_UDP | \\\n-\t ICE_FLOW_SEG_HDR_SCTP | ICE_FLOW_SEG_HDR_GTPC_TEID)\n+\t ICE_FLOW_SEG_HDR_SCTP | ICE_FLOW_SEG_HDR_GTPC_TEID | \\\n+\t ICE_FLOW_SEG_HDR_GTPU)\n \n \n #define ICE_FLOW_RSS_SEG_HDR_VAL_MASKS \\\ndiff --git a/drivers/net/ice/base/ice_flow.h b/drivers/net/ice/base/ice_flow.h\nindex eb8e1b733..0bb3efca0 100644\n--- a/drivers/net/ice/base/ice_flow.h\n+++ b/drivers/net/ice/base/ice_flow.h\n@@ -42,15 +42,28 @@\n #define ICE_HASH_SCTP_IPV6\t(ICE_FLOW_HASH_IPV6 | ICE_FLOW_HASH_SCTP_PORT)\n \n #define ICE_FLOW_HASH_GTP_TEID \\\n-\t(ICE_FLOW_HASH_FLD(ICE_FLOW_FIELD_IDX_GTPC_TEID))\n+\t(BIT_ULL(ICE_FLOW_FIELD_IDX_GTPC_TEID))\n \n #define ICE_FLOW_HASH_GTP_IPV4_TEID \\\n \t(ICE_FLOW_HASH_IPV4 | ICE_FLOW_HASH_GTP_TEID)\n #define ICE_FLOW_HASH_GTP_IPV6_TEID \\\n \t(ICE_FLOW_HASH_IPV6 | ICE_FLOW_HASH_GTP_TEID)\n \n+#define ICE_FLOW_HASH_GTP_U_TEID \\\n+\t(BIT_ULL(ICE_FLOW_FIELD_IDX_GTPU_IP_TEID))\n+\n+#define ICE_FLOW_HASH_GTP_U_IPV4_TEID \\\n+\t(ICE_FLOW_HASH_IPV4 | ICE_FLOW_HASH_GTP_U_TEID)\n+#define ICE_FLOW_HASH_GTP_U_IPV6_TEID \\\n+\t(ICE_FLOW_HASH_IPV6 | ICE_FLOW_HASH_GTP_U_TEID)\n+\n #define ICE_FLOW_HASH_PPPOE_SESS_ID \\\n-\t(ICE_FLOW_HASH_FLD(ICE_FLOW_FIELD_IDX_PPPOE_SESS_ID))\n+\t(BIT_ULL(ICE_FLOW_FIELD_IDX_PPPOE_SESS_ID))\n+\n+#define ICE_FLOW_HASH_PPPOE_TCP_ID \\\n+\t(ICE_FLOW_HASH_TCP_PORT | ICE_FLOW_HASH_PPPOE_SESS_ID)\n+#define ICE_FLOW_HASH_PPPOE_UDP_ID \\\n+\t(ICE_FLOW_HASH_UDP_PORT | ICE_FLOW_HASH_PPPOE_SESS_ID)\n \n /* Protocol header fields within a packet segment. A segment consists of one or\n  * more protocol headers that make up a logical group of protocol headers. Each\n",
    "prefixes": [
        "v2",
        "46/63"
    ]
}