Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/91225/?format=api
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ð_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" ] }{ "id": 91225, "url": "