Show a patch.

GET /api/patches/73356/
Content-Type: application/json
Vary: Accept

    "id": 73356,
    "url": "",
    "web_url": "",
    "project": {
        "id": 1,
        "url": "",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "",
        "list_email": "",
        "web_url": "",
        "scm_url": "git://",
        "webscm_url": ""
    "msgid": "<>",
    "date": "2020-07-07T01:38:18",
    "name": "net/ice: fix GTPU/PPPoE packets with no hash value",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "fe001c339fcbb6dc50831c1204b5410e4896abdd",
    "submitter": {
        "id": 1298,
        "url": "",
        "name": "Simei Su",
        "email": ""
    "delegate": {
        "id": 1540,
        "url": "",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": ""
    "mbox": "",
    "series": [
            "id": 10829,
            "url": "",
            "web_url": "",
            "date": "2020-07-07T01:38:18",
            "name": "net/ice: fix GTPU/PPPoE packets with no hash value",
            "version": 1,
            "mbox": ""
    "comments": "",
    "check": "fail",
    "checks": "",
    "tags": {},
    "headers": {
        "Return-Path": "<>",
        "X-BeenThere": "",
        "X-Mailman-Version": "2.1.15",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9674\"; a=\"147535747\"",
            "E=Sophos;i=\"5.75,321,1589266800\"; d=\"scan'208\";a=\"147535747\"",
            "E=Sophos;i=\"5.75,321,1589266800\"; d=\"scan'208\";a=\"279449716\""
        "From": "Simei Su <>",
        "IronPort-SDR": [
            "\n UEDIKFTnXpcOK5vKm6elx1U4MKW9lfCD9wjVOJKOb1LB/aS6c4u4d7iAAOp3JhLGzThGgTVIVz\n opcgdq85/ZTg==",
            "\n kMd5Sy6wfVVSllWti8vbPJvP0Qfmw/SRJ35ZCrBUsRxXvlwhLuaum3ib3zDEUTD7cVvexVIFYX\n mrfpkPoofgEg=="
        "List-Help": "<>",
        "X-ExtLoop1": "1",
        "Delivered-To": "",
        "Message-Id": "<>",
        "X-Original-To": "",
        "Received": [
            "from ( [])\n\tby (Postfix) with ESMTP id BE4F3A00BE;\n\tTue,  7 Jul 2020 03:39:25 +0200 (CEST)",
            "from [] (localhost [])\n\tby (Postfix) with ESMTP id BBC911DBD9;\n\tTue,  7 Jul 2020 03:39:24 +0200 (CEST)",
            "from ( [])\n by (Postfix) with ESMTP id CF8D61DB94\n for <>; Tue,  7 Jul 2020 03:39:22 +0200 (CEST)",
            "from ([])\n by with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 06 Jul 2020 18:39:21 -0700",
            "from unknown (HELO\n ([])\n by with ESMTP; 06 Jul 2020 18:39:19 -0700"
        "X-Mailer": "git-send-email",
        "Sender": "\"dev\" <>",
        "Subject": "[dpdk-dev] [PATCH] net/ice: fix GTPU/PPPoE packets with no hash\n\tvalue",
        "Precedence": "list",
        "Date": "Tue,  7 Jul 2020 09:38:18 +0800",
        "List-Archive": "<>",
        "X-Amp-File-Uploaded": "False",
        "List-Subscribe": "<>,\n <>",
        "Cc": ",,,\n, Simei Su <>",
        "List-Id": "DPDK patches and discussions <>",
        "List-Unsubscribe": "<>,\n <>",
        "List-Post": "<>",
        "To": "",
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "Errors-To": ""
    "content": "When RSS init, because of profile overlap, the GTPU_IPV4 packets\ndon't hit GTPU_INNER_IPV4 profile which causes no hash value. Because\nof no PPPoE profile, the PPPoE packets also has no hash value. This\npatch solves this issue by pulling GTPU_IPV4 profile into inner ipv4\ngroup and creating related PPPoE profile at the same time.\n\nFixes: 8cadc41294c6 (\"net/ice: initialize and update RSS based on user config\")\n\nSigned-off-by: Simei Su <>\n---\n drivers/net/ice/ice_ethdev.c | 80 ++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 80 insertions(+)",
    "diff": "diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c\nindex 0af9405..85b9eb4 100644\n--- a/drivers/net/ice/ice_ethdev.c\n+++ b/drivers/net/ice/ice_ethdev.c\n@@ -2533,6 +2533,86 @@ static int ice_parse_devargs(struct rte_eth_dev *dev)\n \t\t\tPMD_DRV_LOG(ERR, \"%s SCTP_IPV6 rss flow fail %d\",\n \t\t\t\t    __func__, ret);\n \t}\n+\n+\tif (rss_hf & ETH_RSS_IPV4) {\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_FLOW_HASH_IPV4,\n+\t\t\t\tICE_FLOW_SEG_HDR_GTPU_IP, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s GTPU_IPV4 rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_FLOW_HASH_IPV4,\n+\t\t\t\tICE_FLOW_SEG_HDR_PPPOE, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s PPPoE_IPV4 rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\t}\n+\n+\tif (rss_hf & ETH_RSS_IPV6) {\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_FLOW_HASH_IPV6,\n+\t\t\t\tICE_FLOW_SEG_HDR_GTPU_IP, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s GTPU_IPV6 rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_FLOW_HASH_IPV6,\n+\t\t\t\tICE_FLOW_SEG_HDR_PPPOE, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s PPPoE_IPV6 rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\t}\n+\n+\tif (rss_hf & ETH_RSS_NONFRAG_IPV4_UDP) {\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_HASH_UDP_IPV4,\n+\t\t\t\tICE_FLOW_SEG_HDR_PPPOE, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s PPPoE_IPV4_UDP rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\t}\n+\n+\tif (rss_hf & ETH_RSS_NONFRAG_IPV6_UDP) {\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_HASH_UDP_IPV6,\n+\t\t\t\tICE_FLOW_SEG_HDR_PPPOE, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s PPPoE_IPV6_UDP rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\t}\n+\n+\tif (rss_hf & ETH_RSS_NONFRAG_IPV4_TCP) {\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_HASH_TCP_IPV4,\n+\t\t\t\tICE_FLOW_SEG_HDR_PPPOE, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s PPPoE_IPV4_TCP rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\t}\n+\n+\tif (rss_hf & ETH_RSS_NONFRAG_IPV6_TCP) {\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_HASH_TCP_IPV6,\n+\t\t\t\tICE_FLOW_SEG_HDR_PPPOE, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s PPPoE_IPV6_TCP rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\t}\n+\n+\tif (rss_hf & ETH_RSS_NONFRAG_IPV4_SCTP) {\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_HASH_SCTP_IPV4,\n+\t\t\t\tICE_FLOW_SEG_HDR_PPPOE, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s PPPoE_IPV4_SCTP rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\t}\n+\n+\tif (rss_hf & ETH_RSS_NONFRAG_IPV6_SCTP) {\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s GTPU_IPV6_SCTP rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\n+\t\tret = ice_add_rss_cfg(hw, vsi->idx, ICE_HASH_SCTP_IPV6,\n+\t\t\t\tICE_FLOW_SEG_HDR_PPPOE, 0);\n+\t\tif (ret)\n+\t\t\tPMD_DRV_LOG(ERR, \"%s PPPoE_IPV6_SCTP rss flow fail %d\",\n+\t\t\t\t    __func__, ret);\n+\t}\n }\n \n static int ice_init_rss(struct ice_pf *pf)\n",
    "prefixes": []