get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 87394,
    "url": "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&eth_ipv4_esp_tmplt},\n-\t{pattern_eth_ipv4_udp_esp,\t\tICE_RSS_TYPE_IPV4_ESP,\t\t&eth_ipv4_udp_esp_tmplt},\n-\t{pattern_eth_ipv4_ah,\t\t\tICE_RSS_TYPE_IPV4_AH,\t\t&eth_ipv4_ah_tmplt},\n-\t{pattern_eth_ipv4_l2tp,\t\t\tICE_RSS_TYPE_IPV4_L2TPV3,\t&eth_ipv4_l2tpv3_tmplt},\n-\t{pattern_eth_ipv4_pfcp,\t\t\tICE_RSS_TYPE_IPV4_PFCP,\t\t&eth_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&eth_ipv4_esp_tmplt},\n+\t{pattern_eth_ipv4_udp_esp,\t\tICE_RSS_TYPE_IPV4_ESP,\t\tICE_INSET_NONE,\t\t\t&eth_ipv4_udp_esp_tmplt},\n+\t{pattern_eth_ipv4_ah,\t\t\tICE_RSS_TYPE_IPV4_AH,\t\tICE_INSET_NONE,\t\t\t&eth_ipv4_ah_tmplt},\n+\t{pattern_eth_ipv4_l2tp,\t\t\tICE_RSS_TYPE_IPV4_L2TPV3,\tICE_INSET_NONE,\t\t\t&eth_ipv4_l2tpv3_tmplt},\n+\t{pattern_eth_ipv4_pfcp,\t\t\tICE_RSS_TYPE_IPV4_PFCP,\t\tICE_INSET_NONE,\t\t\t&eth_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&eth_ipv6_esp_tmplt},\n-\t{pattern_eth_ipv6_udp_esp,\t\tICE_RSS_TYPE_IPV6_ESP,\t\t&eth_ipv6_udp_esp_tmplt},\n-\t{pattern_eth_ipv6_ah,\t\t\tICE_RSS_TYPE_IPV6_AH,\t\t&eth_ipv6_ah_tmplt},\n-\t{pattern_eth_ipv6_l2tp,\t\t\tICE_RSS_TYPE_IPV6_L2TPV3,\t&eth_ipv6_l2tpv3_tmplt},\n-\t{pattern_eth_ipv6_pfcp,\t\t\tICE_RSS_TYPE_IPV6_PFCP,\t\t&eth_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&eth_ipv6_esp_tmplt},\n+\t{pattern_eth_ipv6_udp_esp,\t\tICE_RSS_TYPE_IPV6_ESP,\t\tICE_INSET_NONE,\t\t\t&eth_ipv6_udp_esp_tmplt},\n+\t{pattern_eth_ipv6_ah,\t\t\tICE_RSS_TYPE_IPV6_AH,\t\tICE_INSET_NONE,\t\t\t&eth_ipv6_ah_tmplt},\n+\t{pattern_eth_ipv6_l2tp,\t\t\tICE_RSS_TYPE_IPV6_L2TPV3,\tICE_INSET_NONE,\t\t\t&eth_ipv6_l2tpv3_tmplt},\n+\t{pattern_eth_ipv6_pfcp,\t\t\tICE_RSS_TYPE_IPV6_PFCP,\t\tICE_INSET_NONE,\t\t\t&eth_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"
    ]
}