get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 91225,
    "url": "http://patches.dpdk.org/api/patches/91225/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210413100630.81805-3-jia.guo@intel.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": "<20210413100630.81805-3-jia.guo@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210413100630.81805-3-jia.guo@intel.com",
    "date": "2021-04-13T10:06:29",
    "name": "[v6,2/3] net/ice: support RSS hash for IP fragment",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "e4bed4b0d9f8888eb1a94a70b811c19929313137",
    "submitter": {
        "id": 507,
        "url": "http://patches.dpdk.org/api/people/507/?format=api",
        "name": "Guo, Jia",
        "email": "jia.guo@intel.com"
    },
    "delegate": {
        "id": 1540,
        "url": "http://patches.dpdk.org/api/users/1540/?format=api",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210413100630.81805-3-jia.guo@intel.com/mbox/",
    "series": [
        {
            "id": 16329,
            "url": "http://patches.dpdk.org/api/series/16329/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=16329",
            "date": "2021-04-13T10:06:27",
            "name": "support flow for IP fragment in ICE",
            "version": 6,
            "mbox": "http://patches.dpdk.org/series/16329/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/91225/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/91225/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id A83AEA0524;\n\tTue, 13 Apr 2021 12:12:14 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 7CAF4160DD0;\n\tTue, 13 Apr 2021 12:12:06 +0200 (CEST)",
            "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n by mails.dpdk.org (Postfix) with ESMTP id C953B160DC7\n for <dev@dpdk.org>; Tue, 13 Apr 2021 12:12:04 +0200 (CEST)",
            "from fmsmga008.fm.intel.com ([10.253.24.58])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 13 Apr 2021 03:12:04 -0700",
            "from npg-dpdk-cvl-jeffguo-01.sh.intel.com ([10.67.111.128])\n by fmsmga008.fm.intel.com with ESMTP; 13 Apr 2021 03:12:02 -0700"
        ],
        "IronPort-SDR": [
            "\n Q0MVgO0XFFcjYtghShFfeWbGJqFv++ZZEIOtIh/8QsdhlhZW58qf4GQ+aFFwG/4L70sg9vqiRs\n pBCkiYcfu0eg==",
            "\n un1ksWHgrb1z5ZYyJh2Jk0Rk+nDHfd/MHg5JUSlj/lq7dOqc1vpf836bAYvz6QPagAaQ4lGOq3\n DIUdLWZE7vgw=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,9952\"; a=\"173873416\"",
            "E=Sophos;i=\"5.82,219,1613462400\"; d=\"scan'208\";a=\"173873416\"",
            "E=Sophos;i=\"5.82,219,1613462400\"; d=\"scan'208\";a=\"417806726\""
        ],
        "X-ExtLoop1": "1",
        "From": "Jeff Guo <jia.guo@intel.com>",
        "To": "qi.z.zhang@intel.com,\n\tqiming.yang@intel.com",
        "Cc": "dev@dpdk.org,\n\tting.xu@intel.com,\n\tjia.guo@intel.com",
        "Date": "Tue, 13 Apr 2021 18:06:29 +0800",
        "Message-Id": "<20210413100630.81805-3-jia.guo@intel.com>",
        "X-Mailer": "git-send-email 2.20.1",
        "In-Reply-To": "<20210413100630.81805-1-jia.guo@intel.com>",
        "References": "<20210324135407.60637-1-jia.guo@intel.com>\n <20210413100630.81805-1-jia.guo@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v6 2/3] net/ice: support RSS hash for IP fragment",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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": "New pattern and RSS hash flow parsing are added to handle fragmented\nIPv4/IPv6  packet.\n\nSigned-off-by: Jeff Guo <jia.guo@intel.com>\n---\n drivers/net/ice/ice_generic_flow.c | 21 ++++++++++++++\n drivers/net/ice/ice_generic_flow.h |  6 ++++\n drivers/net/ice/ice_hash.c         | 46 ++++++++++++++++++++++++------\n 3 files changed, 65 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c\nindex 8704812622..2389bc6637 100644\n--- a/drivers/net/ice/ice_generic_flow.c\n+++ b/drivers/net/ice/ice_generic_flow.c\n@@ -212,6 +212,27 @@ enum rte_flow_item_type pattern_eth_qinq_ipv6[] = {\n \tRTE_FLOW_ITEM_TYPE_IPV6,\n \tRTE_FLOW_ITEM_TYPE_END,\n };\n+enum rte_flow_item_type pattern_eth_ipv6_frag_ext[] = {\n+\tRTE_FLOW_ITEM_TYPE_ETH,\n+\tRTE_FLOW_ITEM_TYPE_IPV6,\n+\tRTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT,\n+\tRTE_FLOW_ITEM_TYPE_END,\n+};\n+enum rte_flow_item_type pattern_eth_vlan_ipv6_frag_ext[] = {\n+\tRTE_FLOW_ITEM_TYPE_ETH,\n+\tRTE_FLOW_ITEM_TYPE_VLAN,\n+\tRTE_FLOW_ITEM_TYPE_IPV6,\n+\tRTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT,\n+\tRTE_FLOW_ITEM_TYPE_END,\n+};\n+enum rte_flow_item_type pattern_eth_qinq_ipv6_frag_ext[] = {\n+\tRTE_FLOW_ITEM_TYPE_ETH,\n+\tRTE_FLOW_ITEM_TYPE_VLAN,\n+\tRTE_FLOW_ITEM_TYPE_VLAN,\n+\tRTE_FLOW_ITEM_TYPE_IPV6,\n+\tRTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT,\n+\tRTE_FLOW_ITEM_TYPE_END,\n+};\n enum rte_flow_item_type pattern_eth_ipv6_udp[] = {\n \tRTE_FLOW_ITEM_TYPE_ETH,\n \tRTE_FLOW_ITEM_TYPE_IPV6,\ndiff --git a/drivers/net/ice/ice_generic_flow.h b/drivers/net/ice/ice_generic_flow.h\nindex 9f422e5925..2afe719264 100644\n--- a/drivers/net/ice/ice_generic_flow.h\n+++ b/drivers/net/ice/ice_generic_flow.h\n@@ -52,6 +52,7 @@\n #define ICE_L2TPV3OIP_SESSION_ID\tBIT_ULL(43)\n #define ICE_PFCP_SEID\t\t\tBIT_ULL(42)\n #define ICE_PFCP_S_FIELD\t\tBIT_ULL(41)\n+#define ICE_IP_PK_ID\t\t    BIT_ULL(40)\n \n /* input set */\n \n@@ -69,11 +70,13 @@\n #define ICE_INSET_IPV4_TOS\t\t(ICE_PROT_IPV4 | ICE_IP_TOS)\n #define ICE_INSET_IPV4_PROTO\t\t(ICE_PROT_IPV4 | ICE_IP_PROTO)\n #define ICE_INSET_IPV4_TTL\t\t(ICE_PROT_IPV4 | ICE_IP_TTL)\n+#define ICE_INSET_IPV4_PKID\t\t(ICE_PROT_IPV4 | ICE_IP_PK_ID)\n #define ICE_INSET_IPV6_SRC\t\t(ICE_PROT_IPV6 | ICE_IP_SRC)\n #define ICE_INSET_IPV6_DST\t\t(ICE_PROT_IPV6 | ICE_IP_DST)\n #define ICE_INSET_IPV6_NEXT_HDR\t\t(ICE_PROT_IPV6 | ICE_IP_PROTO)\n #define ICE_INSET_IPV6_HOP_LIMIT\t(ICE_PROT_IPV6 | ICE_IP_TTL)\n #define ICE_INSET_IPV6_TC\t\t(ICE_PROT_IPV6 | ICE_IP_TOS)\n+#define ICE_INSET_IPV6_PKID\t\t(ICE_PROT_IPV6 | ICE_IP_PK_ID)\n \n #define ICE_INSET_TCP_SRC_PORT\t\t(ICE_PROT_TCP | ICE_SPORT)\n #define ICE_INSET_TCP_DST_PORT\t\t(ICE_PROT_TCP | ICE_DPORT)\n@@ -202,6 +205,9 @@ extern enum rte_flow_item_type pattern_eth_qinq_ipv4_icmp[];\n extern enum rte_flow_item_type pattern_eth_ipv6[];\n extern enum rte_flow_item_type pattern_eth_vlan_ipv6[];\n extern enum rte_flow_item_type pattern_eth_qinq_ipv6[];\n+extern enum rte_flow_item_type pattern_eth_ipv6_frag_ext[];\n+extern enum rte_flow_item_type pattern_eth_vlan_ipv6_frag_ext[];\n+extern enum rte_flow_item_type pattern_eth_qinq_ipv6_frag_ext[];\n extern enum rte_flow_item_type pattern_eth_ipv6_udp[];\n extern enum rte_flow_item_type pattern_eth_vlan_ipv6_udp[];\n extern enum rte_flow_item_type pattern_eth_qinq_ipv6_udp[];\ndiff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c\nindex e56cdf9941..75b6947625 100644\n--- a/drivers/net/ice/ice_hash.c\n+++ b/drivers/net/ice/ice_hash.c\n@@ -47,8 +47,10 @@\n \t\t\t\t ETH_RSS_NONFRAG_IPV6_TCP\t| \\\n \t\t\t\t ETH_RSS_NONFRAG_IPV6_SCTP)\n \n-#define VALID_RSS_IPV4\t\t(ETH_RSS_IPV4 | VALID_RSS_IPV4_L4)\n-#define VALID_RSS_IPV6\t\t(ETH_RSS_IPV6 | VALID_RSS_IPV6_L4)\n+#define VALID_RSS_IPV4\t\t(ETH_RSS_IPV4 | ETH_RSS_FRAG_IPV4 | \\\n+\t\t\t\t VALID_RSS_IPV4_L4)\n+#define VALID_RSS_IPV6\t\t(ETH_RSS_IPV6 | ETH_RSS_FRAG_IPV6 | \\\n+\t\t\t\t VALID_RSS_IPV6_L4)\n #define VALID_RSS_L3\t\t(VALID_RSS_IPV4 | VALID_RSS_IPV6)\n #define VALID_RSS_L4\t\t(VALID_RSS_IPV4_L4 | VALID_RSS_IPV6_L4)\n \n@@ -108,6 +110,7 @@ ice_hash_parse_pattern_action(struct ice_adapter *ad,\n /* Rss configuration template */\n struct ice_rss_hash_cfg ipv4_tmplt = {\n \tICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV4 |\n+\tICE_FLOW_SEG_HDR_IPV_FRAG |\n \tICE_FLOW_SEG_HDR_IPV_OTHER,\n \tICE_FLOW_HASH_ETH | ICE_FLOW_HASH_IPV4,\n \tICE_RSS_OUTER_HEADERS,\n@@ -146,6 +149,15 @@ struct ice_rss_hash_cfg ipv6_tmplt = {\n \t0\n };\n \n+struct ice_rss_hash_cfg ipv6_frag_tmplt = {\n+\tICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |\n+\tICE_FLOW_SEG_HDR_IPV_FRAG |\n+\tICE_FLOW_SEG_HDR_IPV_OTHER,\n+\tICE_FLOW_HASH_ETH | ICE_FLOW_HASH_IPV6,\n+\tICE_RSS_ANY_HEADERS,\n+\t0\n+};\n+\n struct ice_rss_hash_cfg ipv6_udp_tmplt = {\n \tICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_IPV6 |\n \tICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_UDP,\n@@ -198,6 +210,7 @@ struct ice_rss_hash_cfg outer_ipv6_inner_ipv4_tmplt = {\n \tICE_RSS_INNER_HEADERS_W_OUTER_IPV6,\n \t0\n };\n+\n struct ice_rss_hash_cfg outer_ipv6_inner_ipv4_udp_tmplt = {\n \tICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |\n \tICE_FLOW_SEG_HDR_UDP,\n@@ -220,6 +233,7 @@ struct ice_rss_hash_cfg outer_ipv4_inner_ipv6_tmplt = {\n \tICE_RSS_INNER_HEADERS_W_OUTER_IPV4,\n \t0\n };\n+\n struct ice_rss_hash_cfg outer_ipv4_inner_ipv6_udp_tmplt = {\n \tICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER |\n \tICE_FLOW_SEG_HDR_UDP,\n@@ -353,7 +367,8 @@ struct ice_rss_hash_cfg empty_tmplt = {\n };\n \n /* IPv4 */\n-#define ICE_RSS_TYPE_ETH_IPV4\t\t(ETH_RSS_ETH | ETH_RSS_IPV4)\n+#define ICE_RSS_TYPE_ETH_IPV4\t\t(ETH_RSS_ETH | ETH_RSS_IPV4 | \\\n+\t\t\t\t\t ETH_RSS_FRAG_IPV4)\n #define ICE_RSS_TYPE_ETH_IPV4_UDP\t(ICE_RSS_TYPE_ETH_IPV4 | \\\n \t\t\t\t\t ETH_RSS_NONFRAG_IPV4_UDP)\n #define ICE_RSS_TYPE_ETH_IPV4_TCP\t(ICE_RSS_TYPE_ETH_IPV4 | \\\n@@ -370,6 +385,8 @@ struct ice_rss_hash_cfg empty_tmplt = {\n \n /* IPv6 */\n #define ICE_RSS_TYPE_ETH_IPV6\t\t(ETH_RSS_ETH | ETH_RSS_IPV6)\n+#define ICE_RSS_TYPE_ETH_IPV6_FRAG\t(ETH_RSS_ETH | ETH_RSS_IPV6 | \\\n+\t\t\t\t\t ETH_RSS_FRAG_IPV6)\n #define ICE_RSS_TYPE_ETH_IPV6_UDP\t(ICE_RSS_TYPE_ETH_IPV6 | \\\n \t\t\t\t\t ETH_RSS_NONFRAG_IPV6_UDP)\n #define ICE_RSS_TYPE_ETH_IPV6_TCP\t(ICE_RSS_TYPE_ETH_IPV6 | \\\n@@ -386,7 +403,8 @@ struct ice_rss_hash_cfg empty_tmplt = {\n \n /* VLAN IPV4 */\n #define ICE_RSS_TYPE_VLAN_IPV4\t\t(ICE_RSS_TYPE_IPV4 | \\\n-\t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)\n+\t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN | \\\n+\t\t\t\t\t ETH_RSS_FRAG_IPV4)\n #define ICE_RSS_TYPE_VLAN_IPV4_UDP\t(ICE_RSS_TYPE_IPV4_UDP | \\\n \t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)\n #define ICE_RSS_TYPE_VLAN_IPV4_TCP\t(ICE_RSS_TYPE_IPV4_TCP | \\\n@@ -396,6 +414,9 @@ struct ice_rss_hash_cfg empty_tmplt = {\n /* VLAN IPv6 */\n #define ICE_RSS_TYPE_VLAN_IPV6\t\t(ICE_RSS_TYPE_IPV6 | \\\n \t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)\n+#define ICE_RSS_TYPE_VLAN_IPV6_FRAG\t(ICE_RSS_TYPE_IPV6 | \\\n+\t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN | \\\n+\t\t\t\t\t ETH_RSS_FRAG_IPV6)\n #define ICE_RSS_TYPE_VLAN_IPV6_UDP\t(ICE_RSS_TYPE_IPV6_UDP | \\\n \t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)\n #define ICE_RSS_TYPE_VLAN_IPV6_TCP\t(ICE_RSS_TYPE_IPV6_TCP | \\\n@@ -485,10 +506,12 @@ static struct ice_pattern_match_item ice_hash_pattern_list[] = {\n \t{pattern_eth_ipv4_pfcp,\t\t\tICE_RSS_TYPE_IPV4_PFCP,\t\tICE_INSET_NONE,\t&eth_ipv4_pfcp_tmplt},\n \t/* IPV6 */\n \t{pattern_eth_ipv6,\t\t\tICE_RSS_TYPE_ETH_IPV6,\t\tICE_INSET_NONE,\t&ipv6_tmplt},\n+\t{pattern_eth_ipv6_frag_ext,\t\tICE_RSS_TYPE_ETH_IPV6_FRAG,\tICE_INSET_NONE,\t&ipv6_frag_tmplt},\n \t{pattern_eth_ipv6_udp,\t\t\tICE_RSS_TYPE_ETH_IPV6_UDP,\tICE_INSET_NONE,\t&ipv6_udp_tmplt},\n \t{pattern_eth_ipv6_tcp,\t\t\tICE_RSS_TYPE_ETH_IPV6_TCP,\tICE_INSET_NONE,\t&ipv6_tcp_tmplt},\n \t{pattern_eth_ipv6_sctp,\t\t\tICE_RSS_TYPE_ETH_IPV6_SCTP,\tICE_INSET_NONE,\t&ipv6_sctp_tmplt},\n \t{pattern_eth_vlan_ipv6,\t\t\tICE_RSS_TYPE_VLAN_IPV6,\t\tICE_INSET_NONE,\t&ipv6_tmplt},\n+\t{pattern_eth_vlan_ipv6_frag_ext,\tICE_RSS_TYPE_VLAN_IPV6_FRAG,\tICE_INSET_NONE, &ipv6_frag_tmplt},\n \t{pattern_eth_vlan_ipv6_udp,\t\tICE_RSS_TYPE_VLAN_IPV6_UDP,\tICE_INSET_NONE,\t&ipv6_udp_tmplt},\n \t{pattern_eth_vlan_ipv6_tcp,\t\tICE_RSS_TYPE_VLAN_IPV6_TCP,\tICE_INSET_NONE,\t&ipv6_tcp_tmplt},\n \t{pattern_eth_vlan_ipv6_sctp,\t\tICE_RSS_TYPE_VLAN_IPV6_SCTP,\tICE_INSET_NONE,\t&ipv6_sctp_tmplt},\n@@ -629,11 +652,14 @@ ice_refine_hash_cfg_l234(struct ice_rss_hash_cfg *hash_cfg,\n \n \tif (*addl_hdrs & ICE_FLOW_SEG_HDR_IPV4) {\n \t\tif (rss_type &\n-\t\t   (ETH_RSS_IPV4 |\n+\t\t   (ETH_RSS_IPV4 | ETH_RSS_FRAG_IPV4 |\n \t\t    ETH_RSS_NONFRAG_IPV4_UDP |\n \t\t    ETH_RSS_NONFRAG_IPV4_TCP |\n \t\t    ETH_RSS_NONFRAG_IPV4_SCTP)) {\n-\t\t\tif (rss_type & ETH_RSS_L3_SRC_ONLY)\n+\t\t\tif (rss_type & ETH_RSS_FRAG_IPV4)\n+\t\t\t\t*hash_flds &=\n+\t\t\t\t\t~(BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_ID));\n+\t\t\telse if (rss_type & ETH_RSS_L3_SRC_ONLY)\n \t\t\t\t*hash_flds &= ~(BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA));\n \t\t\telse if (rss_type & ETH_RSS_L3_DST_ONLY)\n \t\t\t\t*hash_flds &= ~(BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA));\n@@ -648,11 +674,14 @@ ice_refine_hash_cfg_l234(struct ice_rss_hash_cfg *hash_cfg,\n \n \tif (*addl_hdrs & ICE_FLOW_SEG_HDR_IPV6) {\n \t\tif (rss_type &\n-\t\t   (ETH_RSS_IPV6 |\n+\t\t   (ETH_RSS_IPV6 | ETH_RSS_FRAG_IPV6 |\n \t\t    ETH_RSS_NONFRAG_IPV6_UDP |\n \t\t    ETH_RSS_NONFRAG_IPV6_TCP |\n \t\t    ETH_RSS_NONFRAG_IPV6_SCTP)) {\n-\t\t\tif (rss_type & ETH_RSS_L3_SRC_ONLY)\n+\t\t\tif (rss_type & ETH_RSS_FRAG_IPV6)\n+\t\t\t\t*hash_flds &=\n+\t\t\t\t\t~(BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_ID));\n+\t\t\telse if (rss_type & ETH_RSS_L3_SRC_ONLY)\n \t\t\t\t*hash_flds &= ~(BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA));\n \t\t\telse if (rss_type & ETH_RSS_L3_DST_ONLY)\n \t\t\t\t*hash_flds &= ~(BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA));\n@@ -867,6 +896,7 @@ ice_any_invalid_rss_type(enum rte_eth_hash_function rss_func,\n \n \t\tif (!(rss_type &\n \t\t   (ETH_RSS_IPV4 | ETH_RSS_IPV6 |\n+\t\t    ETH_RSS_FRAG_IPV4 | ETH_RSS_FRAG_IPV6 |\n \t\t    ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_NONFRAG_IPV6_UDP |\n \t\t    ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_NONFRAG_IPV6_TCP |\n \t\t    ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_NONFRAG_IPV6_SCTP)))\n",
    "prefixes": [
        "v6",
        "2/3"
    ]
}