Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/87394/?format=api
https://patches.dpdk.org/api/patches/87394/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210127052933.2149243-4-zhirun.yan@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": "<20210127052933.2149243-4-zhirun.yan@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20210127052933.2149243-4-zhirun.yan@intel.com", "date": "2021-01-27T05:29:33", "name": "[v2,3/3] net/ice: add outer input set mask to distinguish outer fields", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "7ad95f2d65f70eb5368f07dbfa22bea2e41ec191", "submitter": { "id": 1154, "url": "https://patches.dpdk.org/api/people/1154/?format=api", "name": "Yan, Zhirun", "email": "zhirun.yan@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/20210127052933.2149243-4-zhirun.yan@intel.com/mbox/", "series": [ { "id": 14967, "url": "https://patches.dpdk.org/api/series/14967/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=14967", "date": "2021-01-27T05:29:30", "name": "Refactor FDIR pattern parser", "version": 2, "mbox": "https://patches.dpdk.org/series/14967/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/87394/comments/", "check": "fail", "checks": "https://patches.dpdk.org/api/patches/87394/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 4B789A052A;\n\tWed, 27 Jan 2021 06:35:25 +0100 (CET)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 921BD140E03;\n\tWed, 27 Jan 2021 06:35:08 +0100 (CET)", "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by mails.dpdk.org (Postfix) with ESMTP id 0B14C140E14\n for <dev@dpdk.org>; Wed, 27 Jan 2021 06:35:05 +0100 (CET)", "from orsmga006.jf.intel.com ([10.7.209.51])\n by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 26 Jan 2021 21:35:05 -0800", "from dpdk-zhirun-dev.sh.intel.com ([10.67.118.176])\n by orsmga006.jf.intel.com with ESMTP; 26 Jan 2021 21:35:02 -0800" ], "IronPort-SDR": [ "\n jGCl8FV78a2BFGOBVlPFcDGvPisYqHvHr+eEZ5JQ70CxSI0SoCNukTJ3vJfIdqiTHdg5h3bi7z\n 6Pcn2CCys9sg==", "\n ldb48+5o2k2NEdS+vlq59HetPzWtaY/nJNM0hms5OMUhHh0o8SJKHyYAIDZAu60P6EsDcAaNVD\n JbJ+zeqMDnZg==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9876\"; a=\"198820628\"", "E=Sophos;i=\"5.79,378,1602572400\"; d=\"scan'208\";a=\"198820628\"", "E=Sophos;i=\"5.79,378,1602572400\"; d=\"scan'208\";a=\"356953801\"" ], "X-ExtLoop1": "1", "From": "Zhirun Yan <zhirun.yan@intel.com>", "To": "dev@dpdk.org, qi.z.zhang@intel.com, yahui.cao@intel.com,\n xiao.w.wang@intel.com, junfeng.guo@intel.com", "Cc": "simei.su@intel.com, ting.xu@intel.com, yuying.zhang@intel.com,\n xuan.ding@intel.com, Zhirun Yan <zhirun.yan@intel.com>", "Date": "Wed, 27 Jan 2021 13:29:33 +0800", "Message-Id": "<20210127052933.2149243-4-zhirun.yan@intel.com>", "X-Mailer": "git-send-email 2.25.1", "In-Reply-To": "<20210127052933.2149243-1-zhirun.yan@intel.com>", "References": "<20201221065150.1600719-1-zhirun.yan@intel.com>\n <20210127052933.2149243-1-zhirun.yan@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH v2 3/3] net/ice: add outer input set mask to\n distinguish outer fields", "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": "Add 64-bit input_set_mask_f for outer inputset. input_set_mask_f is\nused for inner fields or non-tunnel fields. Adjust indentation of\nice_pattern_match_item list in switch, ACL, RSS and FDIR for easy\nreview. For fields in tunnel layer, put them in outer part.\n\nSigned-off-by: Zhirun Yan <zhirun.yan@intel.com>\n---\n drivers/net/ice/ice_acl_filter.c | 8 +-\n drivers/net/ice/ice_fdir_filter.c | 72 ++++---\n drivers/net/ice/ice_generic_flow.c | 2 +\n drivers/net/ice/ice_generic_flow.h | 1 +\n drivers/net/ice/ice_hash.c | 243 ++++++++++-------------\n drivers/net/ice/ice_switch_filter.c | 294 ++++++++++------------------\n 6 files changed, 247 insertions(+), 373 deletions(-)", "diff": "diff --git a/drivers/net/ice/ice_acl_filter.c b/drivers/net/ice/ice_acl_filter.c\nindex 363ce68318..fe0a56eff5 100644\n--- a/drivers/net/ice/ice_acl_filter.c\n+++ b/drivers/net/ice/ice_acl_filter.c\n@@ -50,10 +50,10 @@ struct acl_rule {\n \n static struct\n ice_pattern_match_item ice_acl_pattern[] = {\n-\t{pattern_eth_ipv4, ICE_ACL_INSET_ETH_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp, ICE_ACL_INSET_ETH_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_tcp, ICE_ACL_INSET_ETH_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_sctp, ICE_ACL_INSET_ETH_IPV4_SCTP, ICE_INSET_NONE},\n+\t{pattern_eth_ipv4,\tICE_INSET_NONE,\tICE_ACL_INSET_ETH_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp,\tICE_INSET_NONE,\tICE_ACL_INSET_ETH_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_tcp,\tICE_INSET_NONE,\tICE_ACL_INSET_ETH_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_sctp,\tICE_INSET_NONE,\tICE_ACL_INSET_ETH_IPV4_SCTP,\tICE_INSET_NONE},\n };\n \n static int\ndiff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c\nindex 83b3a4c547..cf26559df3 100644\n--- a/drivers/net/ice/ice_fdir_filter.c\n+++ b/drivers/net/ice/ice_fdir_filter.c\n@@ -55,21 +55,25 @@\n \tICE_FDIR_INSET_ETH_IPV6 | \\\n \tICE_INSET_SCTP_SRC_PORT | ICE_INSET_SCTP_DST_PORT)\n \n-#define ICE_FDIR_INSET_VXLAN_IPV4 (\\\n+#define ICE_FDIR_INSET_IPV4 (\\\n \tICE_INSET_IPV4_SRC | ICE_INSET_IPV4_DST)\n \n-#define ICE_FDIR_INSET_VXLAN_IPV4_TCP (\\\n-\tICE_FDIR_INSET_VXLAN_IPV4 | \\\n+#define ICE_FDIR_INSET_IPV4_TCP (\\\n+\tICE_FDIR_INSET_IPV4 | \\\n \tICE_INSET_TCP_SRC_PORT | ICE_INSET_TCP_DST_PORT)\n \n-#define ICE_FDIR_INSET_VXLAN_IPV4_UDP (\\\n-\tICE_FDIR_INSET_VXLAN_IPV4 | \\\n+#define ICE_FDIR_INSET_IPV4_UDP (\\\n+\tICE_FDIR_INSET_IPV4 | \\\n \tICE_INSET_UDP_SRC_PORT | ICE_INSET_UDP_DST_PORT)\n \n-#define ICE_FDIR_INSET_VXLAN_IPV4_SCTP (\\\n-\tICE_FDIR_INSET_VXLAN_IPV4 | \\\n+#define ICE_FDIR_INSET_IPV4_SCTP (\\\n+\tICE_FDIR_INSET_IPV4 | \\\n \tICE_INSET_SCTP_SRC_PORT | ICE_INSET_SCTP_DST_PORT)\n \n+#define ICE_FDIR_INSET_ETH_IPV4_VXLAN (\\\n+\tICE_FDIR_INSET_ETH | \\\n+\tICE_INSET_IPV4_SRC | ICE_INSET_IPV4_DST)\n+\n #define ICE_FDIR_INSET_IPV4_GTPU (\\\n \tICE_INSET_IPV4_SRC | ICE_INSET_IPV4_DST | ICE_INSET_GTPU_TEID)\n \n@@ -85,35 +89,28 @@\n \tICE_INSET_GTPU_TEID | ICE_INSET_GTPU_QFI)\n \n static struct ice_pattern_match_item ice_fdir_pattern_list[] = {\n-\t{pattern_ethertype,\t ICE_FDIR_INSET_ETH,\t\t ICE_INSET_NONE},\n-\t{pattern_eth_ipv4, ICE_FDIR_INSET_ETH_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp, ICE_FDIR_INSET_ETH_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_tcp, ICE_FDIR_INSET_ETH_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_sctp, ICE_FDIR_INSET_ETH_IPV4_SCTP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6, ICE_FDIR_INSET_ETH_IPV6, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_udp, ICE_FDIR_INSET_ETH_IPV6_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_tcp, ICE_FDIR_INSET_ETH_IPV6_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_sctp, ICE_FDIR_INSET_ETH_IPV6_SCTP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_ipv4,\n-\t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_ipv4_udp,\n-\t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_ipv4_tcp,\n-\t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_ipv4_sctp,\n-\t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4_SCTP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4,\n-\t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,\n-\t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,\n-\t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_sctp,\n-\t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4_SCTP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_gtpu,\t ICE_FDIR_INSET_IPV4_GTPU, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_gtpu_eh, ICE_FDIR_INSET_IPV4_GTPU_EH, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_gtpu,\t ICE_FDIR_INSET_IPV6_GTPU, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_gtpu_eh, ICE_FDIR_INSET_IPV6_GTPU_EH, ICE_INSET_NONE},\n+\t{pattern_ethertype,\t\t\t\tICE_INSET_NONE,\t\t\tICE_FDIR_INSET_ETH,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4,\t\t\t\tICE_INSET_NONE,\t\t\tICE_FDIR_INSET_ETH_IPV4,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp,\t\t\t\tICE_INSET_NONE,\t\t\tICE_FDIR_INSET_ETH_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_tcp,\t\t\t\tICE_INSET_NONE,\t\t\tICE_FDIR_INSET_ETH_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_sctp,\t\t\t\tICE_INSET_NONE,\t\t\tICE_FDIR_INSET_ETH_IPV4_SCTP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6,\t\t\t\tICE_INSET_NONE,\t\t\tICE_FDIR_INSET_ETH_IPV6,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_udp,\t\t\t\tICE_INSET_NONE,\t\t\tICE_FDIR_INSET_ETH_IPV6_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_tcp,\t\t\t\tICE_INSET_NONE,\t\t\tICE_FDIR_INSET_ETH_IPV6_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_sctp,\t\t\t\tICE_INSET_NONE,\t\t\tICE_FDIR_INSET_ETH_IPV6_SCTP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_ipv4,\t\tICE_FDIR_INSET_ETH_IPV4_VXLAN,\tICE_FDIR_INSET_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_ipv4_udp,\t\tICE_FDIR_INSET_ETH_IPV4_VXLAN,\tICE_FDIR_INSET_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_ipv4_tcp,\t\tICE_FDIR_INSET_ETH_IPV4_VXLAN,\tICE_FDIR_INSET_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_ipv4_sctp,\t\tICE_FDIR_INSET_ETH_IPV4_VXLAN,\tICE_FDIR_INSET_IPV4_SCTP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4,\t\tICE_FDIR_INSET_ETH_IPV4_VXLAN,\tICE_FDIR_INSET_ETH_IPV4,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,\tICE_FDIR_INSET_ETH_IPV4_VXLAN,\tICE_FDIR_INSET_ETH_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,\tICE_FDIR_INSET_ETH_IPV4_VXLAN,\tICE_FDIR_INSET_ETH_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_sctp,\tICE_FDIR_INSET_ETH_IPV4_VXLAN,\tICE_FDIR_INSET_ETH_IPV4_SCTP,\tICE_INSET_NONE},\n+\t/* duplicated GTPU input set in 3rd column to align with shared code behavior. Ideally, only put GTPU field in 2nd column. */\n+\t{pattern_eth_ipv4_gtpu,\t\t\t\tICE_FDIR_INSET_IPV4_GTPU,\tICE_FDIR_INSET_IPV4_GTPU,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_gtpu_eh,\t\t\tICE_FDIR_INSET_IPV4_GTPU_EH,\tICE_FDIR_INSET_IPV4_GTPU_EH,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_gtpu,\t\t\t\tICE_FDIR_INSET_IPV6_GTPU, \tICE_FDIR_INSET_IPV6_GTPU,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_gtpu_eh,\t\t\tICE_FDIR_INSET_IPV6_GTPU_EH,\tICE_FDIR_INSET_IPV6_GTPU_EH,\tICE_INSET_NONE},\n };\n \n static struct ice_flow_parser ice_fdir_parser;\n@@ -2012,7 +2009,8 @@ ice_fdir_parse(struct ice_adapter *ad,\n \tif (ret)\n \t\tgoto error;\n \tinput_set = filter->input_set | filter->outer_input_set;\n-\tif (!input_set || input_set & ~item->input_set_mask) {\n+\tif (!input_set || filter->input_set & ~item->input_set_mask ||\n+\t filter->outer_input_set & ~item->input_set_mask_f) {\n \t\trte_flow_error_set(error, EINVAL,\n \t\t\t\t RTE_FLOW_ERROR_TYPE_ITEM_SPEC,\n \t\t\t\t pattern,\ndiff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c\nindex c4496dbbe1..ea83714815 100644\n--- a/drivers/net/ice/ice_generic_flow.c\n+++ b/drivers/net/ice/ice_generic_flow.c\n@@ -2216,6 +2216,8 @@ ice_search_pattern_match_item(struct ice_adapter *ad,\n \tfor (i = 0; i < array_len; i++) {\n \t\tif (ice_match_pattern(array[i].pattern_list,\n \t\t\t\t items)) {\n+\t\t\tpattern_match_item->input_set_mask_f =\n+\t\t\t\tarray[i].input_set_mask_f;\n \t\t\tpattern_match_item->input_set_mask =\n \t\t\t\tarray[i].input_set_mask;\n \t\t\tpattern_match_item->pattern_list =\ndiff --git a/drivers/net/ice/ice_generic_flow.h b/drivers/net/ice/ice_generic_flow.h\nindex 3c648c0f4f..d3f9037383 100644\n--- a/drivers/net/ice/ice_generic_flow.h\n+++ b/drivers/net/ice/ice_generic_flow.h\n@@ -473,6 +473,7 @@ enum ice_flow_classification_stage {\n /* pattern structure */\n struct ice_pattern_match_item {\n \tenum rte_flow_item_type *pattern_list;\n+\tuint64_t input_set_mask_f; /* only used for tunnel outer fields */\n \t/* pattern_list must end with RTE_FLOW_ITEM_TYPE_END */\n \tuint64_t input_set_mask;\n \tvoid *meta;\ndiff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c\nindex aee4761625..6db16a186a 100644\n--- a/drivers/net/ice/ice_hash.c\n+++ b/drivers/net/ice/ice_hash.c\n@@ -352,97 +352,65 @@ struct ice_rss_hash_cfg empty_tmplt = {\n \t0\n };\n \n-/* rss type super set */\n-/* Empty rss type to support simple_xor. */\n-#define ICE_RSS_TYPE_EMPTY\t0ULL\n-\n-/* IPv4 outer */\n-#define ICE_RSS_TYPE_OUTER_IPV4\t\t(ETH_RSS_ETH | ETH_RSS_IPV4)\n-#define ICE_RSS_TYPE_OUTER_IPV4_UDP\t(ICE_RSS_TYPE_OUTER_IPV4 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV4_UDP)\n-#define ICE_RSS_TYPE_OUTER_IPV4_TCP\t(ICE_RSS_TYPE_OUTER_IPV4 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV4_TCP)\n-#define ICE_RSS_TYPE_OUTER_IPV4_SCTP\t(ICE_RSS_TYPE_OUTER_IPV4 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV4_SCTP)\n-/* IPv6 outer */\n-#define ICE_RSS_TYPE_OUTER_IPV6\t\t(ETH_RSS_ETH | ETH_RSS_IPV6)\n-#define ICE_RSS_TYPE_OUTER_IPV6_UDP\t(ICE_RSS_TYPE_OUTER_IPV6 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV6_UDP)\n-#define ICE_RSS_TYPE_OUTER_IPV6_TCP\t(ICE_RSS_TYPE_OUTER_IPV6 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV6_TCP)\n-#define ICE_RSS_TYPE_OUTER_IPV6_SCTP\t(ICE_RSS_TYPE_OUTER_IPV6 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV6_SCTP)\n+/* IPv4 */\n+#define ICE_RSS_TYPE_ETH_IPV4\t\t(ETH_RSS_ETH | ETH_RSS_IPV4)\n+#define ICE_RSS_TYPE_ETH_IPV4_UDP\t(ICE_RSS_TYPE_ETH_IPV4 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV4_UDP)\n+#define ICE_RSS_TYPE_ETH_IPV4_TCP\t(ICE_RSS_TYPE_ETH_IPV4 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV4_TCP)\n+#define ICE_RSS_TYPE_ETH_IPV4_SCTP\t(ICE_RSS_TYPE_ETH_IPV4 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV4_SCTP)\n+\n+#define ICE_RSS_TYPE_IPV4\t\tETH_RSS_IPV4\n+#define ICE_RSS_TYPE_IPV4_UDP\t\t(ICE_RSS_TYPE_IPV4 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV4_UDP)\n+#define ICE_RSS_TYPE_IPV4_TCP\t\t(ICE_RSS_TYPE_IPV4 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV4_TCP)\n+#define ICE_RSS_TYPE_IPV4_SCTP\t\t(ICE_RSS_TYPE_IPV4 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV4_SCTP)\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_UDP\t(ICE_RSS_TYPE_ETH_IPV6 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV6_UDP)\n+#define ICE_RSS_TYPE_ETH_IPV6_TCP\t(ICE_RSS_TYPE_ETH_IPV6 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV6_TCP)\n+#define ICE_RSS_TYPE_ETH_IPV6_SCTP\t(ICE_RSS_TYPE_ETH_IPV6 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV6_SCTP)\n+\n+#define ICE_RSS_TYPE_IPV6\t\tETH_RSS_IPV6\n+#define ICE_RSS_TYPE_IPV6_UDP\t\t(ICE_RSS_TYPE_IPV6 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV6_UDP)\n+#define ICE_RSS_TYPE_IPV6_TCP\t\t(ICE_RSS_TYPE_IPV6 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV6_TCP)\n+#define ICE_RSS_TYPE_IPV6_SCTP\t\t(ICE_RSS_TYPE_IPV6 | \\\n+\t\t\t\t\tETH_RSS_NONFRAG_IPV6_SCTP)\n \n /* VLAN IPV4 */\n-#define ICE_RSS_TYPE_VLAN_IPV4\t\t(ICE_RSS_TYPE_OUTER_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-#define ICE_RSS_TYPE_VLAN_IPV4_UDP\t(ICE_RSS_TYPE_OUTER_IPV4_UDP | \\\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_OUTER_IPV4_TCP | \\\n+#define ICE_RSS_TYPE_VLAN_IPV4_TCP\t(ICE_RSS_TYPE_IPV4_TCP | \\\n \t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)\n-#define ICE_RSS_TYPE_VLAN_IPV4_SCTP\t(ICE_RSS_TYPE_OUTER_IPV4_SCTP | \\\n+#define ICE_RSS_TYPE_VLAN_IPV4_SCTP\t(ICE_RSS_TYPE_IPV4_SCTP | \\\n \t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)\n /* VLAN IPv6 */\n-#define ICE_RSS_TYPE_VLAN_IPV6\t\t(ICE_RSS_TYPE_OUTER_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_UDP\t(ICE_RSS_TYPE_OUTER_IPV6_UDP | \\\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_OUTER_IPV6_TCP | \\\n+#define ICE_RSS_TYPE_VLAN_IPV6_TCP\t(ICE_RSS_TYPE_IPV6_TCP | \\\n \t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)\n-#define ICE_RSS_TYPE_VLAN_IPV6_SCTP\t(ICE_RSS_TYPE_OUTER_IPV6_SCTP | \\\n+#define ICE_RSS_TYPE_VLAN_IPV6_SCTP\t(ICE_RSS_TYPE_IPV6_SCTP | \\\n \t\t\t\t\t ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)\n \n-/* IPv4 inner */\n-#define ICE_RSS_TYPE_INNER_IPV4\t\tETH_RSS_IPV4\n-#define ICE_RSS_TYPE_INNER_IPV4_UDP\t(ETH_RSS_IPV4 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV4_UDP)\n-#define ICE_RSS_TYPE_INNER_IPV4_TCP\t(ETH_RSS_IPV4 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV4_TCP)\n-#define ICE_RSS_TYPE_INNER_IPV4_SCTP\t(ETH_RSS_IPV4 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV4_SCTP)\n-/* IPv6 inner */\n-#define ICE_RSS_TYPE_INNER_IPV6\t\tETH_RSS_IPV6\n-#define ICE_RSS_TYPE_INNER_IPV6_UDP\t(ETH_RSS_IPV6 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV6_UDP)\n-#define ICE_RSS_TYPE_INNER_IPV6_TCP\t(ETH_RSS_IPV6 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV6_TCP)\n-#define ICE_RSS_TYPE_INNER_IPV6_SCTP\t(ETH_RSS_IPV6 | \\\n-\t\t\t\t\t ETH_RSS_NONFRAG_IPV6_SCTP)\n-\n-/* GTPU IPv4 */\n-#define ICE_RSS_TYPE_GTPU_IPV4\t\t(ICE_RSS_TYPE_INNER_IPV4 | \\\n-\t\t\t\t\t ETH_RSS_GTPU)\n-#define ICE_RSS_TYPE_GTPU_IPV4_UDP\t(ICE_RSS_TYPE_INNER_IPV4_UDP | \\\n-\t\t\t\t\t ETH_RSS_GTPU)\n-#define ICE_RSS_TYPE_GTPU_IPV4_TCP\t(ICE_RSS_TYPE_INNER_IPV4_TCP | \\\n-\t\t\t\t\t ETH_RSS_GTPU)\n-/* GTPU IPv6 */\n-#define ICE_RSS_TYPE_GTPU_IPV6\t\t(ICE_RSS_TYPE_INNER_IPV6 | \\\n-\t\t\t\t\t ETH_RSS_GTPU)\n-#define ICE_RSS_TYPE_GTPU_IPV6_UDP\t(ICE_RSS_TYPE_INNER_IPV6_UDP | \\\n-\t\t\t\t\t ETH_RSS_GTPU)\n-#define ICE_RSS_TYPE_GTPU_IPV6_TCP\t(ICE_RSS_TYPE_INNER_IPV6_TCP | \\\n-\t\t\t\t\t ETH_RSS_GTPU)\n-\n-/* PPPOE IPv4 */\n-#define ICE_RSS_TYPE_PPPOE_IPV4\t\t(ICE_RSS_TYPE_INNER_IPV4 | \\\n-\t\t\t\t\t ETH_RSS_PPPOE)\n-#define ICE_RSS_TYPE_PPPOE_IPV4_UDP\t(ICE_RSS_TYPE_INNER_IPV4_UDP | \\\n-\t\t\t\t\t ETH_RSS_PPPOE)\n-#define ICE_RSS_TYPE_PPPOE_IPV4_TCP\t(ICE_RSS_TYPE_INNER_IPV4_TCP | \\\n-\t\t\t\t\t ETH_RSS_PPPOE)\n-\n-/* PPPOE IPv6 */\n-#define ICE_RSS_TYPE_PPPOE_IPV6\t\t(ICE_RSS_TYPE_INNER_IPV6 | \\\n-\t\t\t\t\t ETH_RSS_PPPOE)\n-#define ICE_RSS_TYPE_PPPOE_IPV6_UDP\t(ICE_RSS_TYPE_INNER_IPV6_UDP | \\\n-\t\t\t\t\t ETH_RSS_PPPOE)\n-#define ICE_RSS_TYPE_PPPOE_IPV6_TCP\t(ICE_RSS_TYPE_INNER_IPV6_TCP | \\\n-\t\t\t\t\t ETH_RSS_PPPOE)\n-\n-/* PPPOE*/\n+/* PPPOE */\n #define ICE_RSS_TYPE_PPPOE\t\t(ETH_RSS_ETH | ETH_RSS_PPPOE)\n \n+/* GTPU */\n+#define ICE_RSS_TYPE_GTPU\t\tETH_RSS_GTPU\n+\n /* ESP, AH, L2TPV3 and PFCP */\n #define ICE_RSS_TYPE_IPV4_ESP\t\t(ETH_RSS_ESP | ETH_RSS_IPV4)\n #define ICE_RSS_TYPE_IPV6_ESP\t\t(ETH_RSS_ESP | ETH_RSS_IPV6)\n@@ -461,67 +429,67 @@ struct ice_rss_hash_cfg empty_tmplt = {\n */\n static struct ice_pattern_match_item ice_hash_pattern_list[] = {\n \t/* IPV4 */\n-\t{pattern_eth_ipv4,\t\t\tICE_RSS_TYPE_OUTER_IPV4,\t&ipv4_tmplt},\n-\t{pattern_eth_ipv4_udp,\t\t\tICE_RSS_TYPE_OUTER_IPV4_UDP,\t&ipv4_udp_tmplt},\n-\t{pattern_eth_ipv4_tcp,\t\t\tICE_RSS_TYPE_OUTER_IPV4_TCP,\t&ipv4_tcp_tmplt},\n-\t{pattern_eth_ipv4_sctp,\t\t\tICE_RSS_TYPE_OUTER_IPV4_SCTP,\t&ipv4_sctp_tmplt},\n-\t{pattern_eth_vlan_ipv4,\t\t\tICE_RSS_TYPE_VLAN_IPV4,\t\t&ipv4_tmplt},\n-\t{pattern_eth_vlan_ipv4_udp,\t\tICE_RSS_TYPE_VLAN_IPV4_UDP,\t&ipv4_udp_tmplt},\n-\t{pattern_eth_vlan_ipv4_tcp,\t\tICE_RSS_TYPE_VLAN_IPV4_TCP,\t&ipv4_tcp_tmplt},\n-\t{pattern_eth_vlan_ipv4_sctp,\t\tICE_RSS_TYPE_VLAN_IPV4_SCTP,\t&ipv4_sctp_tmplt},\n-\t{pattern_eth_ipv4_gtpu_ipv4,\t\tICE_RSS_TYPE_GTPU_IPV4,\t\t&outer_ipv4_inner_ipv4_tmplt},\n-\t{pattern_eth_ipv4_gtpu_ipv4_udp,\tICE_RSS_TYPE_GTPU_IPV4_UDP,\t&outer_ipv4_inner_ipv4_udp_tmplt},\n-\t{pattern_eth_ipv4_gtpu_ipv4_tcp,\tICE_RSS_TYPE_GTPU_IPV4_TCP,\t&outer_ipv4_inner_ipv4_tcp_tmplt},\n-\t{pattern_eth_ipv6_gtpu_ipv4,\t\tICE_RSS_TYPE_GTPU_IPV4,\t\t&outer_ipv6_inner_ipv4_tmplt},\n-\t{pattern_eth_ipv6_gtpu_ipv4_udp,\tICE_RSS_TYPE_GTPU_IPV4_UDP,\t&outer_ipv6_inner_ipv4_udp_tmplt},\n-\t{pattern_eth_ipv6_gtpu_ipv4_tcp,\tICE_RSS_TYPE_GTPU_IPV4_TCP,\t&outer_ipv6_inner_ipv4_tcp_tmplt},\n-\t{pattern_eth_ipv4_gtpu_eh_ipv4,\t\tICE_RSS_TYPE_GTPU_IPV4,\t\t&outer_ipv4_inner_ipv4_tmplt},\n-\t{pattern_eth_ipv4_gtpu_eh_ipv4_udp,\tICE_RSS_TYPE_GTPU_IPV4_UDP,\t&outer_ipv4_inner_ipv4_udp_tmplt},\n-\t{pattern_eth_ipv4_gtpu_eh_ipv4_tcp,\tICE_RSS_TYPE_GTPU_IPV4_TCP,\t&outer_ipv4_inner_ipv4_tcp_tmplt},\n-\t{pattern_eth_ipv6_gtpu_eh_ipv4,\t\tICE_RSS_TYPE_GTPU_IPV4,\t\t&outer_ipv6_inner_ipv4_tmplt},\n-\t{pattern_eth_ipv6_gtpu_eh_ipv4_udp,\tICE_RSS_TYPE_GTPU_IPV4_UDP,\t&outer_ipv6_inner_ipv4_udp_tmplt},\n-\t{pattern_eth_ipv6_gtpu_eh_ipv4_tcp,\tICE_RSS_TYPE_GTPU_IPV4_TCP,\t&outer_ipv6_inner_ipv4_tcp_tmplt},\n-\t{pattern_eth_pppoes_ipv4,\t\tICE_RSS_TYPE_PPPOE_IPV4,\t&ipv4_tmplt},\n-\t{pattern_eth_pppoes_ipv4_udp,\t\tICE_RSS_TYPE_PPPOE_IPV4_UDP,\t&ipv4_udp_tmplt},\n-\t{pattern_eth_pppoes_ipv4_tcp,\t\tICE_RSS_TYPE_PPPOE_IPV4_TCP,\t&ipv4_tcp_tmplt},\n-\t{pattern_eth_ipv4_esp,\t\t\tICE_RSS_TYPE_IPV4_ESP,\t\tð_ipv4_esp_tmplt},\n-\t{pattern_eth_ipv4_udp_esp,\t\tICE_RSS_TYPE_IPV4_ESP,\t\tð_ipv4_udp_esp_tmplt},\n-\t{pattern_eth_ipv4_ah,\t\t\tICE_RSS_TYPE_IPV4_AH,\t\tð_ipv4_ah_tmplt},\n-\t{pattern_eth_ipv4_l2tp,\t\t\tICE_RSS_TYPE_IPV4_L2TPV3,\tð_ipv4_l2tpv3_tmplt},\n-\t{pattern_eth_ipv4_pfcp,\t\t\tICE_RSS_TYPE_IPV4_PFCP,\t\tð_ipv4_pfcp_tmplt},\n+\t{pattern_eth_ipv4,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_ETH_IPV4,\t\t&ipv4_tmplt},\n+\t{pattern_eth_ipv4_udp,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_ETH_IPV4_UDP,\t&ipv4_udp_tmplt},\n+\t{pattern_eth_ipv4_tcp,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_ETH_IPV4_TCP,\t&ipv4_tcp_tmplt},\n+\t{pattern_eth_ipv4_sctp,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_ETH_IPV4_SCTP,\t&ipv4_sctp_tmplt},\n+\t{pattern_eth_vlan_ipv4,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_VLAN_IPV4,\t\t&ipv4_tmplt},\n+\t{pattern_eth_vlan_ipv4_udp,\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_VLAN_IPV4_UDP,\t&ipv4_udp_tmplt},\n+\t{pattern_eth_vlan_ipv4_tcp,\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_VLAN_IPV4_TCP,\t&ipv4_tcp_tmplt},\n+\t{pattern_eth_vlan_ipv4_sctp,\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_VLAN_IPV4_SCTP,\t&ipv4_sctp_tmplt},\n+\t{pattern_eth_ipv4_gtpu_ipv4,\t\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4,\t\t&outer_ipv4_inner_ipv4_tmplt},\n+\t{pattern_eth_ipv4_gtpu_ipv4_udp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4_UDP,\t\t&outer_ipv4_inner_ipv4_udp_tmplt},\n+\t{pattern_eth_ipv4_gtpu_ipv4_tcp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4_TCP,\t\t&outer_ipv4_inner_ipv4_tcp_tmplt},\n+\t{pattern_eth_ipv6_gtpu_ipv4,\t\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4,\t\t&outer_ipv6_inner_ipv4_tmplt},\n+\t{pattern_eth_ipv6_gtpu_ipv4_udp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4_UDP,\t\t&outer_ipv6_inner_ipv4_udp_tmplt},\n+\t{pattern_eth_ipv6_gtpu_ipv4_tcp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4_TCP,\t\t&outer_ipv6_inner_ipv4_tcp_tmplt},\n+\t{pattern_eth_ipv4_gtpu_eh_ipv4,\t\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4,\t\t&outer_ipv4_inner_ipv4_tmplt},\n+\t{pattern_eth_ipv4_gtpu_eh_ipv4_udp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4_UDP,\t\t&outer_ipv4_inner_ipv4_udp_tmplt},\n+\t{pattern_eth_ipv4_gtpu_eh_ipv4_tcp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4_TCP,\t\t&outer_ipv4_inner_ipv4_tcp_tmplt},\n+\t{pattern_eth_ipv6_gtpu_eh_ipv4,\t\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4,\t\t&outer_ipv6_inner_ipv4_tmplt},\n+\t{pattern_eth_ipv6_gtpu_eh_ipv4_udp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4_UDP,\t\t&outer_ipv6_inner_ipv4_udp_tmplt},\n+\t{pattern_eth_ipv6_gtpu_eh_ipv4_tcp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV4_TCP,\t\t&outer_ipv6_inner_ipv4_tcp_tmplt},\n+\t{pattern_eth_pppoes_ipv4,\t\tICE_RSS_TYPE_PPPOE,\t\tICE_RSS_TYPE_IPV4,\t\t&ipv4_tmplt},\n+\t{pattern_eth_pppoes_ipv4_udp,\t\tICE_RSS_TYPE_PPPOE,\t\tICE_RSS_TYPE_IPV4_UDP,\t\t&ipv4_udp_tmplt},\n+\t{pattern_eth_pppoes_ipv4_tcp,\t\tICE_RSS_TYPE_PPPOE,\t\tICE_RSS_TYPE_IPV4_TCP,\t\t&ipv4_tcp_tmplt},\n+\t{pattern_eth_ipv4_esp,\t\t\tICE_RSS_TYPE_IPV4_ESP,\t\tICE_INSET_NONE,\t\t\tð_ipv4_esp_tmplt},\n+\t{pattern_eth_ipv4_udp_esp,\t\tICE_RSS_TYPE_IPV4_ESP,\t\tICE_INSET_NONE,\t\t\tð_ipv4_udp_esp_tmplt},\n+\t{pattern_eth_ipv4_ah,\t\t\tICE_RSS_TYPE_IPV4_AH,\t\tICE_INSET_NONE,\t\t\tð_ipv4_ah_tmplt},\n+\t{pattern_eth_ipv4_l2tp,\t\t\tICE_RSS_TYPE_IPV4_L2TPV3,\tICE_INSET_NONE,\t\t\tð_ipv4_l2tpv3_tmplt},\n+\t{pattern_eth_ipv4_pfcp,\t\t\tICE_RSS_TYPE_IPV4_PFCP,\t\tICE_INSET_NONE,\t\t\tð_ipv4_pfcp_tmplt},\n \t/* IPV6 */\n-\t{pattern_eth_ipv6,\t\t\tICE_RSS_TYPE_OUTER_IPV6,\t&ipv6_tmplt},\n-\t{pattern_eth_ipv6_udp,\t\t\tICE_RSS_TYPE_OUTER_IPV6_UDP,\t&ipv6_udp_tmplt},\n-\t{pattern_eth_ipv6_tcp,\t\t\tICE_RSS_TYPE_OUTER_IPV6_TCP,\t&ipv6_tcp_tmplt},\n-\t{pattern_eth_ipv6_sctp,\t\t\tICE_RSS_TYPE_OUTER_IPV6_SCTP,\t&ipv6_sctp_tmplt},\n-\t{pattern_eth_vlan_ipv6,\t\t\tICE_RSS_TYPE_VLAN_IPV6,\t\t&ipv6_tmplt},\n-\t{pattern_eth_vlan_ipv6_udp,\t\tICE_RSS_TYPE_VLAN_IPV6_UDP,\t&ipv6_udp_tmplt},\n-\t{pattern_eth_vlan_ipv6_tcp,\t\tICE_RSS_TYPE_VLAN_IPV6_TCP,\t&ipv6_tcp_tmplt},\n-\t{pattern_eth_vlan_ipv6_sctp,\t\tICE_RSS_TYPE_VLAN_IPV6_SCTP,\t&ipv6_sctp_tmplt},\n-\t{pattern_eth_ipv4_gtpu_ipv6,\t\tICE_RSS_TYPE_GTPU_IPV6,\t\t&outer_ipv4_inner_ipv6_tmplt},\n-\t{pattern_eth_ipv4_gtpu_ipv6_udp,\tICE_RSS_TYPE_GTPU_IPV6_UDP,\t&outer_ipv4_inner_ipv6_udp_tmplt},\n-\t{pattern_eth_ipv4_gtpu_ipv6_tcp,\tICE_RSS_TYPE_GTPU_IPV6_TCP,\t&outer_ipv4_inner_ipv6_tcp_tmplt},\n-\t{pattern_eth_ipv6_gtpu_ipv6,\t\tICE_RSS_TYPE_GTPU_IPV6,\t\t&outer_ipv6_inner_ipv6_tmplt},\n-\t{pattern_eth_ipv6_gtpu_ipv6_udp,\tICE_RSS_TYPE_GTPU_IPV6_UDP,\t&outer_ipv6_inner_ipv6_udp_tmplt},\n-\t{pattern_eth_ipv6_gtpu_ipv6_tcp,\tICE_RSS_TYPE_GTPU_IPV6_TCP,\t&outer_ipv6_inner_ipv6_tcp_tmplt},\n-\t{pattern_eth_ipv4_gtpu_eh_ipv6,\t\tICE_RSS_TYPE_GTPU_IPV6,\t\t&outer_ipv4_inner_ipv6_tmplt},\n-\t{pattern_eth_ipv4_gtpu_eh_ipv6_udp,\tICE_RSS_TYPE_GTPU_IPV6_UDP,\t&outer_ipv4_inner_ipv6_udp_tmplt},\n-\t{pattern_eth_ipv4_gtpu_eh_ipv6_tcp,\tICE_RSS_TYPE_GTPU_IPV6_TCP,\t&outer_ipv4_inner_ipv6_tcp_tmplt},\n-\t{pattern_eth_ipv6_gtpu_eh_ipv6,\t\tICE_RSS_TYPE_GTPU_IPV6,\t\t&outer_ipv6_inner_ipv6_tmplt},\n-\t{pattern_eth_ipv6_gtpu_eh_ipv6_udp,\tICE_RSS_TYPE_GTPU_IPV6_UDP,\t&outer_ipv6_inner_ipv6_udp_tmplt},\n-\t{pattern_eth_ipv6_gtpu_eh_ipv6_tcp,\tICE_RSS_TYPE_GTPU_IPV6_TCP,\t&outer_ipv6_inner_ipv6_tcp_tmplt},\n-\t{pattern_eth_pppoes_ipv6,\t\tICE_RSS_TYPE_PPPOE_IPV6,\t&ipv6_tmplt},\n-\t{pattern_eth_pppoes_ipv6_udp,\t\tICE_RSS_TYPE_PPPOE_IPV6_UDP,\t&ipv6_udp_tmplt},\n-\t{pattern_eth_pppoes_ipv6_tcp,\t\tICE_RSS_TYPE_PPPOE_IPV6_TCP,\t&ipv6_tcp_tmplt},\n-\t{pattern_eth_ipv6_esp,\t\t\tICE_RSS_TYPE_IPV6_ESP,\t\tð_ipv6_esp_tmplt},\n-\t{pattern_eth_ipv6_udp_esp,\t\tICE_RSS_TYPE_IPV6_ESP,\t\tð_ipv6_udp_esp_tmplt},\n-\t{pattern_eth_ipv6_ah,\t\t\tICE_RSS_TYPE_IPV6_AH,\t\tð_ipv6_ah_tmplt},\n-\t{pattern_eth_ipv6_l2tp,\t\t\tICE_RSS_TYPE_IPV6_L2TPV3,\tð_ipv6_l2tpv3_tmplt},\n-\t{pattern_eth_ipv6_pfcp,\t\t\tICE_RSS_TYPE_IPV6_PFCP,\t\tð_ipv6_pfcp_tmplt},\n+\t{pattern_eth_ipv6,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_ETH_IPV6,\t\t&ipv6_tmplt},\n+\t{pattern_eth_ipv6_udp,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_ETH_IPV6_UDP,\t&ipv6_udp_tmplt},\n+\t{pattern_eth_ipv6_tcp,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_ETH_IPV6_TCP,\t&ipv6_tcp_tmplt},\n+\t{pattern_eth_ipv6_sctp,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_ETH_IPV6_SCTP,\t&ipv6_sctp_tmplt},\n+\t{pattern_eth_vlan_ipv6,\t\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_VLAN_IPV6,\t\t&ipv6_tmplt},\n+\t{pattern_eth_vlan_ipv6_udp,\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_VLAN_IPV6_UDP,\t&ipv6_udp_tmplt},\n+\t{pattern_eth_vlan_ipv6_tcp,\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_VLAN_IPV6_TCP,\t&ipv6_tcp_tmplt},\n+\t{pattern_eth_vlan_ipv6_sctp,\t\tICE_INSET_NONE,\t\t\tICE_RSS_TYPE_VLAN_IPV6_SCTP,\t&ipv6_sctp_tmplt},\n+\t{pattern_eth_ipv4_gtpu_ipv6,\t\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6,\t\t&outer_ipv4_inner_ipv6_tmplt},\n+\t{pattern_eth_ipv4_gtpu_ipv6_udp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6_UDP,\t\t&outer_ipv4_inner_ipv6_udp_tmplt},\n+\t{pattern_eth_ipv4_gtpu_ipv6_tcp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6_TCP,\t\t&outer_ipv4_inner_ipv6_tcp_tmplt},\n+\t{pattern_eth_ipv6_gtpu_ipv6,\t\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6,\t\t&outer_ipv6_inner_ipv6_tmplt},\n+\t{pattern_eth_ipv6_gtpu_ipv6_udp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6_UDP,\t\t&outer_ipv6_inner_ipv6_udp_tmplt},\n+\t{pattern_eth_ipv6_gtpu_ipv6_tcp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6_TCP,\t\t&outer_ipv6_inner_ipv6_tcp_tmplt},\n+\t{pattern_eth_ipv4_gtpu_eh_ipv6,\t\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6,\t\t&outer_ipv4_inner_ipv6_tmplt},\n+\t{pattern_eth_ipv4_gtpu_eh_ipv6_udp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6_UDP,\t\t&outer_ipv4_inner_ipv6_udp_tmplt},\n+\t{pattern_eth_ipv4_gtpu_eh_ipv6_tcp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6_TCP,\t\t&outer_ipv4_inner_ipv6_tcp_tmplt},\n+\t{pattern_eth_ipv6_gtpu_eh_ipv6,\t\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6,\t\t&outer_ipv6_inner_ipv6_tmplt},\n+\t{pattern_eth_ipv6_gtpu_eh_ipv6_udp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6_UDP,\t\t&outer_ipv6_inner_ipv6_udp_tmplt},\n+\t{pattern_eth_ipv6_gtpu_eh_ipv6_tcp,\tICE_RSS_TYPE_GTPU,\t\tICE_RSS_TYPE_IPV6_TCP,\t\t&outer_ipv6_inner_ipv6_tcp_tmplt},\n+\t{pattern_eth_pppoes_ipv6,\t\tICE_RSS_TYPE_PPPOE,\t\tICE_RSS_TYPE_IPV6,\t\t&ipv6_tmplt},\n+\t{pattern_eth_pppoes_ipv6_udp,\t\tICE_RSS_TYPE_PPPOE,\t\tICE_RSS_TYPE_IPV6_UDP,\t\t&ipv6_udp_tmplt},\n+\t{pattern_eth_pppoes_ipv6_tcp,\t\tICE_RSS_TYPE_PPPOE,\t\tICE_RSS_TYPE_IPV6_TCP,\t\t&ipv6_tcp_tmplt},\n+\t{pattern_eth_ipv6_esp,\t\t\tICE_RSS_TYPE_IPV6_ESP,\t\tICE_INSET_NONE,\t\t\tð_ipv6_esp_tmplt},\n+\t{pattern_eth_ipv6_udp_esp,\t\tICE_RSS_TYPE_IPV6_ESP,\t\tICE_INSET_NONE,\t\t\tð_ipv6_udp_esp_tmplt},\n+\t{pattern_eth_ipv6_ah,\t\t\tICE_RSS_TYPE_IPV6_AH,\t\tICE_INSET_NONE,\t\t\tð_ipv6_ah_tmplt},\n+\t{pattern_eth_ipv6_l2tp,\t\t\tICE_RSS_TYPE_IPV6_L2TPV3,\tICE_INSET_NONE,\t\t\tð_ipv6_l2tpv3_tmplt},\n+\t{pattern_eth_ipv6_pfcp,\t\t\tICE_RSS_TYPE_IPV6_PFCP,\t\tICE_INSET_NONE,\t\t\tð_ipv6_pfcp_tmplt},\n \t/* PPPOE */\n-\t{pattern_eth_pppoes,\t\t\tICE_RSS_TYPE_PPPOE,\t\t&pppoe_tmplt},\n+\t{pattern_eth_pppoes,\t\t\tICE_RSS_TYPE_PPPOE,\t\tICE_INSET_NONE,\t\t\t&pppoe_tmplt},\n \t/* EMPTY */\n-\t{pattern_empty,\t\t\t\tICE_RSS_TYPE_EMPTY,\t\t&empty_tmplt},\n+\t{pattern_empty,\t\t\t\tICE_INSET_NONE,\t\t\tICE_INSET_NONE,\t\t\t&empty_tmplt},\n };\n \n static struct ice_flow_engine ice_hash_engine = {\n@@ -908,6 +876,7 @@ ice_hash_parse_action(struct ice_pattern_match_item *pattern_match_item,\n \tenum rte_flow_action_type action_type;\n \tconst struct rte_flow_action_rss *rss;\n \tconst struct rte_flow_action *action;\n+\tuint64_t allow_rss_type;\n \tuint64_t rss_type;\n \n \t/* Supported action is RSS. */\n@@ -959,8 +928,10 @@ ice_hash_parse_action(struct ice_pattern_match_item *pattern_match_item,\n \t\t\t */\n \t\t\trss_type = rte_eth_rss_hf_refine(rss_type);\n \n+\t\t\tallow_rss_type = pattern_match_item->input_set_mask_f |\n+\t\t\t\tpattern_match_item->input_set_mask;\n \t\t\tif (ice_any_invalid_rss_type(rss->func, rss_type,\n-\t\t\t\t\tpattern_match_item->input_set_mask))\n+\t\t\t\t\tallow_rss_type))\n \t\t\t\treturn rte_flow_error_set(error, ENOTSUP,\n \t\t\t\t\tRTE_FLOW_ERROR_TYPE_ACTION,\n \t\t\t\t\taction, \"RSS type not supported\");\ndiff --git a/drivers/net/ice/ice_switch_filter.c b/drivers/net/ice/ice_switch_filter.c\nindex 7bac77ecd1..ee0055e415 100644\n--- a/drivers/net/ice/ice_switch_filter.c\n+++ b/drivers/net/ice/ice_switch_filter.c\n@@ -148,206 +148,108 @@ static struct ice_flow_parser ice_switch_perm_parser;\n \n static struct\n ice_pattern_match_item ice_switch_pattern_dist_list[] = {\n-\t{pattern_ethertype,\n-\t\t\tICE_SW_INSET_ETHER, ICE_INSET_NONE},\n-\t{pattern_ethertype_vlan,\n-\t\t\tICE_SW_INSET_MAC_VLAN, ICE_INSET_NONE},\n-\t{pattern_ethertype_qinq,\n-\t\t\tICE_SW_INSET_MAC_QINQ, ICE_INSET_NONE},\n-\t{pattern_eth_arp,\n-\t\t\tICE_INSET_NONE, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4,\n-\t\t\tICE_SW_INSET_MAC_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_tcp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6,\n-\t\t\tICE_SW_INSET_MAC_IPV6, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_udp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_tcp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4,\n-\t\t\tICE_SW_INSET_DIST_VXLAN_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,\n-\t\t\tICE_SW_INSET_DIST_VXLAN_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,\n-\t\t\tICE_SW_INSET_DIST_VXLAN_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_nvgre_eth_ipv4,\n-\t\t\tICE_SW_INSET_DIST_NVGRE_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_nvgre_eth_ipv4_udp,\n-\t\t\tICE_SW_INSET_DIST_NVGRE_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_nvgre_eth_ipv4_tcp,\n-\t\t\tICE_SW_INSET_DIST_NVGRE_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes,\n-\t\t\tICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes,\n-\t\t\tICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_proto,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_proto,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv4,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv4_tcp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv4_udp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv6,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv6_tcp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv6_udp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv4,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv4_tcp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv4_udp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv6,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv6_tcp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv6_udp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_esp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_ESP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_esp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_ESP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_esp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_ESP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_udp_esp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_ESP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_ah,\n-\t\t\tICE_SW_INSET_MAC_IPV4_AH, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_ah,\n-\t\t\tICE_SW_INSET_MAC_IPV6_AH, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_udp_ah,\n-\t\t\tICE_INSET_NONE, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_l2tp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_L2TP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_l2tp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_L2TP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_pfcp,\n-\t\t\tICE_INSET_NONE, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_pfcp,\n-\t\t\tICE_INSET_NONE, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_ipv4,\n-\t\t\tICE_SW_INSET_MAC_QINQ_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_ipv6,\n-\t\t\tICE_SW_INSET_MAC_QINQ_IPV6, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_pppoes,\n-\t\t\tICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_pppoes_proto,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_pppoes_ipv4,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_pppoes_ipv6,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},\n+\t{pattern_ethertype,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_ETHER,\t\t\tICE_INSET_NONE},\n+\t{pattern_ethertype_vlan,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_VLAN,\t\t\tICE_INSET_NONE},\n+\t{pattern_ethertype_qinq,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_QINQ,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_arp,\t\t\t\tICE_INSET_NONE,\t\tICE_INSET_NONE,\t\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_UDP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_tcp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_TCP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_udp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_UDP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_tcp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_TCP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_DIST_VXLAN_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,\tICE_INSET_NONE,\t\tICE_SW_INSET_DIST_VXLAN_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,\tICE_INSET_NONE,\t\tICE_SW_INSET_DIST_VXLAN_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_nvgre_eth_ipv4,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_DIST_NVGRE_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_nvgre_eth_ipv4_udp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_DIST_NVGRE_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_nvgre_eth_ipv4_tcp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_DIST_NVGRE_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_proto,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_PROTO,\t\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_proto,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_PROTO,\t\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv4,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv4_tcp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv4_udp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv6,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6,\t\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv6_tcp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv6_udp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv4,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv4_tcp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv4_udp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv6,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6,\t\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv6_tcp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv6_udp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_esp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_ESP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_esp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_ESP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_esp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_ESP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_udp_esp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_ESP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_ah,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_AH,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_ah,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_AH,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_udp_ah,\t\t\tICE_INSET_NONE,\t\tICE_INSET_NONE,\t\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_l2tp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_L2TP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_l2tp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_L2TP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_pfcp,\t\t\t\tICE_INSET_NONE,\t\tICE_INSET_NONE,\t\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_pfcp,\t\t\t\tICE_INSET_NONE,\t\tICE_INSET_NONE,\t\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_ipv4,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_QINQ_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_ipv6,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_QINQ_IPV6,\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_pppoes,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_pppoes_proto,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_PROTO,\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_pppoes_ipv4,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_pppoes_ipv6,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6,\t\tICE_INSET_NONE},\n };\n \n static struct\n ice_pattern_match_item ice_switch_pattern_perm_list[] = {\n-\t{pattern_ethertype,\n-\t\t\tICE_SW_INSET_ETHER, ICE_INSET_NONE},\n-\t{pattern_ethertype_vlan,\n-\t\t\tICE_SW_INSET_MAC_VLAN, ICE_INSET_NONE},\n-\t{pattern_ethertype_qinq,\n-\t\t\tICE_SW_INSET_MAC_QINQ, ICE_INSET_NONE},\n-\t{pattern_eth_arp,\n-\t\tICE_INSET_NONE, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4,\n-\t\t\tICE_SW_INSET_MAC_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_tcp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6,\n-\t\t\tICE_SW_INSET_MAC_IPV6, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_udp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_tcp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4,\n-\t\t\tICE_SW_INSET_PERM_TUNNEL_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,\n-\t\t\tICE_SW_INSET_PERM_TUNNEL_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,\n-\t\t\tICE_SW_INSET_PERM_TUNNEL_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_nvgre_eth_ipv4,\n-\t\t\tICE_SW_INSET_PERM_TUNNEL_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_nvgre_eth_ipv4_udp,\n-\t\t\tICE_SW_INSET_PERM_TUNNEL_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_nvgre_eth_ipv4_tcp,\n-\t\t\tICE_SW_INSET_PERM_TUNNEL_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes,\n-\t\t\tICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes,\n-\t\t\tICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_proto,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_proto,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv4,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv4_tcp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv4_udp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv6,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv6_tcp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_pppoes_ipv6_udp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv4,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv4_tcp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv4_udp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv6,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv6_tcp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6_TCP, ICE_INSET_NONE},\n-\t{pattern_eth_vlan_pppoes_ipv6_udp,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6_UDP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_esp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_ESP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_udp_esp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_ESP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_esp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_ESP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_udp_esp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_ESP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_ah,\n-\t\t\tICE_SW_INSET_MAC_IPV4_AH, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_ah,\n-\t\t\tICE_SW_INSET_MAC_IPV6_AH, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_udp_ah,\n-\t\t\tICE_INSET_NONE, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_l2tp,\n-\t\t\tICE_SW_INSET_MAC_IPV4_L2TP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_l2tp,\n-\t\t\tICE_SW_INSET_MAC_IPV6_L2TP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_pfcp,\n-\t\t\tICE_INSET_NONE, ICE_INSET_NONE},\n-\t{pattern_eth_ipv6_pfcp,\n-\t\t\tICE_INSET_NONE, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_ipv4,\n-\t\t\tICE_SW_INSET_MAC_QINQ_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_ipv6,\n-\t\t\tICE_SW_INSET_MAC_QINQ_IPV6, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_pppoes,\n-\t\t\tICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_pppoes_proto,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_pppoes_ipv4,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},\n-\t{pattern_eth_qinq_pppoes_ipv6,\n-\t\t\tICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},\n+\t{pattern_ethertype,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_ETHER,\t\t\tICE_INSET_NONE},\n+\t{pattern_ethertype_vlan,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_VLAN,\t\t\tICE_INSET_NONE},\n+\t{pattern_ethertype_qinq,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_QINQ,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_arp,\t\t\t\tICE_INSET_NONE,\t\tICE_INSET_NONE,\t\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_UDP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_tcp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_TCP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_udp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_UDP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_tcp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_TCP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_PERM_TUNNEL_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,\tICE_INSET_NONE,\t\tICE_SW_INSET_PERM_TUNNEL_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,\tICE_INSET_NONE,\t\tICE_SW_INSET_PERM_TUNNEL_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_nvgre_eth_ipv4,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_PERM_TUNNEL_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_nvgre_eth_ipv4_udp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_PERM_TUNNEL_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_nvgre_eth_ipv4_tcp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_PERM_TUNNEL_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_proto,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_PROTO,\t\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_proto,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_PROTO,\t\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv4,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv4_tcp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv4_udp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv6,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6,\t\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv6_tcp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_pppoes_ipv6_udp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv4,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv4_tcp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv4_udp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv6,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6,\t\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv6_tcp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6_TCP,\tICE_INSET_NONE},\n+\t{pattern_eth_vlan_pppoes_ipv6_udp,\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6_UDP,\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_esp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_ESP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_udp_esp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_ESP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_esp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_ESP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_udp_esp,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_ESP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_ah,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_AH,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_ah,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_AH,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_udp_ah,\t\t\tICE_INSET_NONE,\t\tICE_INSET_NONE,\t\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_l2tp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV4_L2TP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_l2tp,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_IPV6_L2TP,\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv4_pfcp,\t\t\t\tICE_INSET_NONE,\t\tICE_INSET_NONE,\t\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_ipv6_pfcp,\t\t\t\tICE_INSET_NONE,\t\tICE_INSET_NONE,\t\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_ipv4,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_QINQ_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_ipv6,\t\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_QINQ_IPV6,\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_pppoes,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE,\t\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_pppoes_proto,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_PROTO,\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_pppoes_ipv4,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV4,\t\tICE_INSET_NONE},\n+\t{pattern_eth_qinq_pppoes_ipv6,\t\t\tICE_INSET_NONE,\t\tICE_SW_INSET_MAC_PPPOE_IPV6,\t\tICE_INSET_NONE},\n };\n \n static int\n", "prefixes": [ "v2", "3/3" ] }{ "id": 87394, "url": "