net/ice: distinguish input set outer fields
authorZhirun Yan <zhirun.yan@intel.com>
Tue, 2 Mar 2021 02:54:06 +0000 (10:54 +0800)
committerQi Zhang <qi.z.zhang@intel.com>
Fri, 5 Mar 2021 08:46:53 +0000 (09:46 +0100)
Distinguish input_set_mask to inner and outer part. Use
input_set_mask_o for tunnel outer or non-tunnel input set.
input_set_mask_i is used for tunnel inner fields only.

Adjust indentation of ice_pattern_match_item list in switch, ACL, RSS
and FDIR for easy review.

For switch, ACL and RSS, only use
input_set_mask_o and set the input_set_mask_i all none.

Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/ice_acl_filter.c
drivers/net/ice/ice_fdir_filter.c
drivers/net/ice/ice_generic_flow.c
drivers/net/ice/ice_generic_flow.h
drivers/net/ice/ice_hash.c
drivers/net/ice/ice_switch_filter.c

index 113cb68..9e06e8a 100644 (file)
@@ -50,10 +50,10 @@ struct acl_rule {
 
 static struct
 ice_pattern_match_item ice_acl_pattern[] = {
-       {pattern_eth_ipv4,      ICE_ACL_INSET_ETH_IPV4,      ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp,  ICE_ACL_INSET_ETH_IPV4_UDP,  ICE_INSET_NONE},
-       {pattern_eth_ipv4_tcp,  ICE_ACL_INSET_ETH_IPV4_TCP,  ICE_INSET_NONE},
-       {pattern_eth_ipv4_sctp, ICE_ACL_INSET_ETH_IPV4_SCTP, ICE_INSET_NONE},
+       {pattern_eth_ipv4,      ICE_ACL_INSET_ETH_IPV4,         ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp,  ICE_ACL_INSET_ETH_IPV4_UDP,     ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_tcp,  ICE_ACL_INSET_ETH_IPV4_TCP,     ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_sctp, ICE_ACL_INSET_ETH_IPV4_SCTP,    ICE_INSET_NONE, ICE_INSET_NONE},
 };
 
 static int
@@ -923,7 +923,7 @@ ice_acl_parse(struct ice_adapter *ad,
        if (ret)
                goto error;
        input_set = filter->input_set;
-       if (!input_set || input_set & ~item->input_set_mask) {
+       if (!input_set || input_set & ~item->input_set_mask_o) {
                rte_flow_error_set(error, EINVAL,
                                   RTE_FLOW_ERROR_TYPE_ITEM_SPEC,
                                   pattern,
index 9cc0e6e..72836fc 100644 (file)
        ICE_FDIR_INSET_ETH_IPV6 | \
        ICE_INSET_SCTP_SRC_PORT | ICE_INSET_SCTP_DST_PORT)
 
-#define ICE_FDIR_INSET_VXLAN_IPV4 (\
+#define ICE_FDIR_INSET_IPV4 (\
        ICE_INSET_IPV4_SRC | ICE_INSET_IPV4_DST)
 
-#define ICE_FDIR_INSET_VXLAN_IPV4_TCP (\
-       ICE_FDIR_INSET_VXLAN_IPV4 | \
+#define ICE_FDIR_INSET_IPV4_TCP (\
+       ICE_FDIR_INSET_IPV4 | \
        ICE_INSET_TCP_SRC_PORT | ICE_INSET_TCP_DST_PORT)
 
-#define ICE_FDIR_INSET_VXLAN_IPV4_UDP (\
-       ICE_FDIR_INSET_VXLAN_IPV4 | \
+#define ICE_FDIR_INSET_IPV4_UDP (\
+       ICE_FDIR_INSET_IPV4 | \
        ICE_INSET_UDP_SRC_PORT | ICE_INSET_UDP_DST_PORT)
 
-#define ICE_FDIR_INSET_VXLAN_IPV4_SCTP (\
-       ICE_FDIR_INSET_VXLAN_IPV4 | \
+#define ICE_FDIR_INSET_IPV4_SCTP (\
+       ICE_FDIR_INSET_IPV4 | \
        ICE_INSET_SCTP_SRC_PORT | ICE_INSET_SCTP_DST_PORT)
 
+#define ICE_FDIR_INSET_ETH_IPV4_VXLAN (\
+       ICE_FDIR_INSET_ETH | \
+       ICE_INSET_IPV4_SRC | ICE_INSET_IPV4_DST)
+
 #define ICE_FDIR_INSET_IPV4_GTPU (\
        ICE_INSET_IPV4_SRC | ICE_INSET_IPV4_DST | ICE_INSET_GTPU_TEID)
 
        ICE_INSET_GTPU_TEID | ICE_INSET_GTPU_QFI)
 
 static struct ice_pattern_match_item ice_fdir_pattern_list[] = {
-       {pattern_ethertype,            ICE_FDIR_INSET_ETH,                   ICE_INSET_NONE},
-       {pattern_eth_ipv4,             ICE_FDIR_INSET_ETH_IPV4,              ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp,         ICE_FDIR_INSET_ETH_IPV4_UDP,          ICE_INSET_NONE},
-       {pattern_eth_ipv4_tcp,         ICE_FDIR_INSET_ETH_IPV4_TCP,          ICE_INSET_NONE},
-       {pattern_eth_ipv4_sctp,        ICE_FDIR_INSET_ETH_IPV4_SCTP,         ICE_INSET_NONE},
-       {pattern_eth_ipv6,             ICE_FDIR_INSET_ETH_IPV6,              ICE_INSET_NONE},
-       {pattern_eth_ipv6_udp,         ICE_FDIR_INSET_ETH_IPV6_UDP,          ICE_INSET_NONE},
-       {pattern_eth_ipv6_tcp,         ICE_FDIR_INSET_ETH_IPV6_TCP,          ICE_INSET_NONE},
-       {pattern_eth_ipv6_sctp,        ICE_FDIR_INSET_ETH_IPV6_SCTP,         ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_ipv4,
-                                      ICE_FDIR_INSET_VXLAN_IPV4,            ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_ipv4_udp,
-                                      ICE_FDIR_INSET_VXLAN_IPV4_UDP,        ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_ipv4_tcp,
-                                      ICE_FDIR_INSET_VXLAN_IPV4_TCP,        ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_ipv4_sctp,
-                                      ICE_FDIR_INSET_VXLAN_IPV4_SCTP,       ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4,
-                                      ICE_FDIR_INSET_VXLAN_IPV4,            ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,
-                                      ICE_FDIR_INSET_VXLAN_IPV4_UDP,        ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,
-                                      ICE_FDIR_INSET_VXLAN_IPV4_TCP,        ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_sctp,
-                                      ICE_FDIR_INSET_VXLAN_IPV4_SCTP,       ICE_INSET_NONE},
-       {pattern_eth_ipv4_gtpu,        ICE_FDIR_INSET_IPV4_GTPU,             ICE_INSET_NONE},
-       {pattern_eth_ipv4_gtpu_eh,     ICE_FDIR_INSET_IPV4_GTPU_EH,          ICE_INSET_NONE},
-       {pattern_eth_ipv6_gtpu,        ICE_FDIR_INSET_IPV6_GTPU,             ICE_INSET_NONE},
-       {pattern_eth_ipv6_gtpu_eh,     ICE_FDIR_INSET_IPV6_GTPU_EH,          ICE_INSET_NONE},
+       {pattern_ethertype,                             ICE_FDIR_INSET_ETH,             ICE_INSET_NONE,                 ICE_INSET_NONE},
+       {pattern_eth_ipv4,                              ICE_FDIR_INSET_ETH_IPV4,        ICE_INSET_NONE,                 ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp,                          ICE_FDIR_INSET_ETH_IPV4_UDP,    ICE_INSET_NONE,                 ICE_INSET_NONE},
+       {pattern_eth_ipv4_tcp,                          ICE_FDIR_INSET_ETH_IPV4_TCP,    ICE_INSET_NONE,                 ICE_INSET_NONE},
+       {pattern_eth_ipv4_sctp,                         ICE_FDIR_INSET_ETH_IPV4_SCTP,   ICE_INSET_NONE,                 ICE_INSET_NONE},
+       {pattern_eth_ipv6,                              ICE_FDIR_INSET_ETH_IPV6,        ICE_INSET_NONE,                 ICE_INSET_NONE},
+       {pattern_eth_ipv6_udp,                          ICE_FDIR_INSET_ETH_IPV6_UDP,    ICE_INSET_NONE,                 ICE_INSET_NONE},
+       {pattern_eth_ipv6_tcp,                          ICE_FDIR_INSET_ETH_IPV6_TCP,    ICE_INSET_NONE,                 ICE_INSET_NONE},
+       {pattern_eth_ipv6_sctp,                         ICE_FDIR_INSET_ETH_IPV6_SCTP,   ICE_INSET_NONE,                 ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_ipv4,               ICE_FDIR_INSET_ETH_IPV4_VXLAN,  ICE_FDIR_INSET_IPV4,            ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_ipv4_udp,           ICE_FDIR_INSET_ETH_IPV4_VXLAN,  ICE_FDIR_INSET_IPV4_UDP,        ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_ipv4_tcp,           ICE_FDIR_INSET_ETH_IPV4_VXLAN,  ICE_FDIR_INSET_IPV4_TCP,        ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_ipv4_sctp,          ICE_FDIR_INSET_ETH_IPV4_VXLAN,  ICE_FDIR_INSET_IPV4_SCTP,       ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4,           ICE_FDIR_INSET_ETH_IPV4_VXLAN,  ICE_FDIR_INSET_ETH_IPV4,        ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,       ICE_FDIR_INSET_ETH_IPV4_VXLAN,  ICE_FDIR_INSET_ETH_IPV4_UDP,    ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,       ICE_FDIR_INSET_ETH_IPV4_VXLAN,  ICE_FDIR_INSET_ETH_IPV4_TCP,    ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_sctp,      ICE_FDIR_INSET_ETH_IPV4_VXLAN,  ICE_FDIR_INSET_ETH_IPV4_SCTP,   ICE_INSET_NONE},
+       /* duplicated GTPU input set in 3rd column to align with shared code behavior. Ideally, only put GTPU field in 2nd column. */
+       {pattern_eth_ipv4_gtpu,                         ICE_FDIR_INSET_IPV4_GTPU,       ICE_FDIR_INSET_IPV4_GTPU,       ICE_INSET_NONE},
+       {pattern_eth_ipv4_gtpu_eh,                      ICE_FDIR_INSET_IPV4_GTPU_EH,    ICE_FDIR_INSET_IPV4_GTPU_EH,    ICE_INSET_NONE},
+       {pattern_eth_ipv6_gtpu,                         ICE_FDIR_INSET_IPV6_GTPU,       ICE_FDIR_INSET_IPV6_GTPU,       ICE_INSET_NONE},
+       {pattern_eth_ipv6_gtpu_eh,                      ICE_FDIR_INSET_IPV6_GTPU_EH,    ICE_FDIR_INSET_IPV6_GTPU_EH,    ICE_INSET_NONE},
 };
 
 static struct ice_flow_parser ice_fdir_parser;
@@ -2005,7 +2002,8 @@ ice_fdir_parse(struct ice_adapter *ad,
        if (ret)
                goto error;
        input_set = filter->input_set_o | filter->input_set_i;
-       if (!input_set || input_set & ~item->input_set_mask) {
+       if (!input_set || filter->input_set_o & ~item->input_set_mask_o ||
+           filter->input_set_i & ~item->input_set_mask_i) {
                rte_flow_error_set(error, EINVAL,
                                   RTE_FLOW_ERROR_TYPE_ITEM_SPEC,
                                   pattern,
index 25d15a8..8704812 100644 (file)
@@ -2216,8 +2216,10 @@ ice_search_pattern_match_item(struct ice_adapter *ad,
        for (i = 0; i < array_len; i++) {
                if (ice_match_pattern(array[i].pattern_list,
                                      items)) {
-                       pattern_match_item->input_set_mask =
-                               array[i].input_set_mask;
+                       pattern_match_item->input_set_mask_o =
+                               array[i].input_set_mask_o;
+                       pattern_match_item->input_set_mask_i =
+                               array[i].input_set_mask_i;
                        pattern_match_item->pattern_list =
                                array[i].pattern_list;
                        pattern_match_item->meta = array[i].meta;
index 3c648c0..9f422e5 100644 (file)
@@ -473,8 +473,9 @@ enum ice_flow_classification_stage {
 /* pattern structure */
 struct ice_pattern_match_item {
        enum rte_flow_item_type *pattern_list;
+       uint64_t input_set_mask_o; /* used for tunnel outer or non tunnel fields */
        /* pattern_list must end with RTE_FLOW_ITEM_TYPE_END */
-       uint64_t input_set_mask;
+       uint64_t input_set_mask_i; /* only used for tunnel inner fields */
        void *meta;
 };
 
index 81caf6c..58a0c18 100644 (file)
@@ -352,95 +352,89 @@ struct ice_rss_hash_cfg empty_tmplt = {
        0
 };
 
-/* rss type super set */
-/* Empty rss type to support simple_xor. */
-#define ICE_RSS_TYPE_EMPTY     0ULL
-
-/* IPv4 outer */
-#define ICE_RSS_TYPE_OUTER_IPV4                (ETH_RSS_ETH | ETH_RSS_IPV4)
-#define ICE_RSS_TYPE_OUTER_IPV4_UDP    (ICE_RSS_TYPE_OUTER_IPV4 | \
+/* IPv4 */
+#define ICE_RSS_TYPE_ETH_IPV4          (ETH_RSS_ETH | ETH_RSS_IPV4)
+#define ICE_RSS_TYPE_ETH_IPV4_UDP      (ICE_RSS_TYPE_ETH_IPV4 | \
+                                        ETH_RSS_NONFRAG_IPV4_UDP)
+#define ICE_RSS_TYPE_ETH_IPV4_TCP      (ICE_RSS_TYPE_ETH_IPV4 | \
+                                        ETH_RSS_NONFRAG_IPV4_TCP)
+#define ICE_RSS_TYPE_ETH_IPV4_SCTP     (ICE_RSS_TYPE_ETH_IPV4 | \
+                                        ETH_RSS_NONFRAG_IPV4_SCTP)
+#define ICE_RSS_TYPE_IPV4              ETH_RSS_IPV4
+#define ICE_RSS_TYPE_IPV4_UDP          (ETH_RSS_IPV4 | \
                                         ETH_RSS_NONFRAG_IPV4_UDP)
-#define ICE_RSS_TYPE_OUTER_IPV4_TCP    (ICE_RSS_TYPE_OUTER_IPV4 | \
+#define ICE_RSS_TYPE_IPV4_TCP          (ETH_RSS_IPV4 | \
                                         ETH_RSS_NONFRAG_IPV4_TCP)
-#define ICE_RSS_TYPE_OUTER_IPV4_SCTP   (ICE_RSS_TYPE_OUTER_IPV4 | \
+#define ICE_RSS_TYPE_IPV4_SCTP         (ETH_RSS_IPV4 | \
                                         ETH_RSS_NONFRAG_IPV4_SCTP)
-/* IPv6 outer */
-#define ICE_RSS_TYPE_OUTER_IPV6                (ETH_RSS_ETH | ETH_RSS_IPV6)
-#define ICE_RSS_TYPE_OUTER_IPV6_UDP    (ICE_RSS_TYPE_OUTER_IPV6 | \
+
+/* IPv6 */
+#define ICE_RSS_TYPE_ETH_IPV6          (ETH_RSS_ETH | ETH_RSS_IPV6)
+#define ICE_RSS_TYPE_ETH_IPV6_UDP      (ICE_RSS_TYPE_ETH_IPV6 | \
+                                        ETH_RSS_NONFRAG_IPV6_UDP)
+#define ICE_RSS_TYPE_ETH_IPV6_TCP      (ICE_RSS_TYPE_ETH_IPV6 | \
+                                        ETH_RSS_NONFRAG_IPV6_TCP)
+#define ICE_RSS_TYPE_ETH_IPV6_SCTP     (ICE_RSS_TYPE_ETH_IPV6 | \
+                                        ETH_RSS_NONFRAG_IPV6_SCTP)
+#define ICE_RSS_TYPE_IPV6              ETH_RSS_IPV6
+#define ICE_RSS_TYPE_IPV6_UDP          (ETH_RSS_IPV6 | \
                                         ETH_RSS_NONFRAG_IPV6_UDP)
-#define ICE_RSS_TYPE_OUTER_IPV6_TCP    (ICE_RSS_TYPE_OUTER_IPV6 | \
+#define ICE_RSS_TYPE_IPV6_TCP          (ETH_RSS_IPV6 | \
                                         ETH_RSS_NONFRAG_IPV6_TCP)
-#define ICE_RSS_TYPE_OUTER_IPV6_SCTP   (ICE_RSS_TYPE_OUTER_IPV6 | \
+#define ICE_RSS_TYPE_IPV6_SCTP         (ETH_RSS_IPV6 | \
                                         ETH_RSS_NONFRAG_IPV6_SCTP)
 
 /* VLAN IPV4 */
-#define ICE_RSS_TYPE_VLAN_IPV4         (ICE_RSS_TYPE_OUTER_IPV4 | \
+#define ICE_RSS_TYPE_VLAN_IPV4         (ICE_RSS_TYPE_IPV4 | \
                                         ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)
-#define ICE_RSS_TYPE_VLAN_IPV4_UDP     (ICE_RSS_TYPE_OUTER_IPV4_UDP | \
+#define ICE_RSS_TYPE_VLAN_IPV4_UDP     (ICE_RSS_TYPE_IPV4_UDP | \
                                         ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)
-#define ICE_RSS_TYPE_VLAN_IPV4_TCP     (ICE_RSS_TYPE_OUTER_IPV4_TCP | \
+#define ICE_RSS_TYPE_VLAN_IPV4_TCP     (ICE_RSS_TYPE_IPV4_TCP | \
                                         ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)
-#define ICE_RSS_TYPE_VLAN_IPV4_SCTP    (ICE_RSS_TYPE_OUTER_IPV4_SCTP | \
+#define ICE_RSS_TYPE_VLAN_IPV4_SCTP    (ICE_RSS_TYPE_IPV4_SCTP | \
                                         ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)
 /* VLAN IPv6 */
-#define ICE_RSS_TYPE_VLAN_IPV6         (ICE_RSS_TYPE_OUTER_IPV6 | \
+#define ICE_RSS_TYPE_VLAN_IPV6         (ICE_RSS_TYPE_IPV6 | \
                                         ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)
-#define ICE_RSS_TYPE_VLAN_IPV6_UDP     (ICE_RSS_TYPE_OUTER_IPV6_UDP | \
+#define ICE_RSS_TYPE_VLAN_IPV6_UDP     (ICE_RSS_TYPE_IPV6_UDP | \
                                         ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)
-#define ICE_RSS_TYPE_VLAN_IPV6_TCP     (ICE_RSS_TYPE_OUTER_IPV6_TCP | \
+#define ICE_RSS_TYPE_VLAN_IPV6_TCP     (ICE_RSS_TYPE_IPV6_TCP | \
                                         ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)
-#define ICE_RSS_TYPE_VLAN_IPV6_SCTP    (ICE_RSS_TYPE_OUTER_IPV6_SCTP | \
+#define ICE_RSS_TYPE_VLAN_IPV6_SCTP    (ICE_RSS_TYPE_IPV6_SCTP | \
                                         ETH_RSS_S_VLAN | ETH_RSS_C_VLAN)
 
-/* IPv4 inner */
-#define ICE_RSS_TYPE_INNER_IPV4                ETH_RSS_IPV4
-#define ICE_RSS_TYPE_INNER_IPV4_UDP    (ETH_RSS_IPV4 | \
-                                        ETH_RSS_NONFRAG_IPV4_UDP)
-#define ICE_RSS_TYPE_INNER_IPV4_TCP    (ETH_RSS_IPV4 | \
-                                        ETH_RSS_NONFRAG_IPV4_TCP)
-#define ICE_RSS_TYPE_INNER_IPV4_SCTP   (ETH_RSS_IPV4 | \
-                                        ETH_RSS_NONFRAG_IPV4_SCTP)
-/* IPv6 inner */
-#define ICE_RSS_TYPE_INNER_IPV6                ETH_RSS_IPV6
-#define ICE_RSS_TYPE_INNER_IPV6_UDP    (ETH_RSS_IPV6 | \
-                                        ETH_RSS_NONFRAG_IPV6_UDP)
-#define ICE_RSS_TYPE_INNER_IPV6_TCP    (ETH_RSS_IPV6 | \
-                                        ETH_RSS_NONFRAG_IPV6_TCP)
-#define ICE_RSS_TYPE_INNER_IPV6_SCTP   (ETH_RSS_IPV6 | \
-                                        ETH_RSS_NONFRAG_IPV6_SCTP)
-
 /* GTPU IPv4 */
-#define ICE_RSS_TYPE_GTPU_IPV4         (ICE_RSS_TYPE_INNER_IPV4 | \
+#define ICE_RSS_TYPE_GTPU_IPV4         (ICE_RSS_TYPE_IPV4 | \
                                         ETH_RSS_GTPU)
-#define ICE_RSS_TYPE_GTPU_IPV4_UDP     (ICE_RSS_TYPE_INNER_IPV4_UDP | \
+#define ICE_RSS_TYPE_GTPU_IPV4_UDP     (ICE_RSS_TYPE_IPV4_UDP | \
                                         ETH_RSS_GTPU)
-#define ICE_RSS_TYPE_GTPU_IPV4_TCP     (ICE_RSS_TYPE_INNER_IPV4_TCP | \
+#define ICE_RSS_TYPE_GTPU_IPV4_TCP     (ICE_RSS_TYPE_IPV4_TCP | \
                                         ETH_RSS_GTPU)
 /* GTPU IPv6 */
-#define ICE_RSS_TYPE_GTPU_IPV6         (ICE_RSS_TYPE_INNER_IPV6 | \
+#define ICE_RSS_TYPE_GTPU_IPV6         (ICE_RSS_TYPE_IPV6 | \
                                         ETH_RSS_GTPU)
-#define ICE_RSS_TYPE_GTPU_IPV6_UDP     (ICE_RSS_TYPE_INNER_IPV6_UDP | \
+#define ICE_RSS_TYPE_GTPU_IPV6_UDP     (ICE_RSS_TYPE_IPV6_UDP | \
                                         ETH_RSS_GTPU)
-#define ICE_RSS_TYPE_GTPU_IPV6_TCP     (ICE_RSS_TYPE_INNER_IPV6_TCP | \
+#define ICE_RSS_TYPE_GTPU_IPV6_TCP     (ICE_RSS_TYPE_IPV6_TCP | \
                                         ETH_RSS_GTPU)
 
 /* PPPOE */
 #define ICE_RSS_TYPE_PPPOE             (ETH_RSS_ETH | ETH_RSS_PPPOE)
 
 /* PPPOE IPv4 */
-#define ICE_RSS_TYPE_PPPOE_IPV4                (ICE_RSS_TYPE_INNER_IPV4 | \
+#define ICE_RSS_TYPE_PPPOE_IPV4                (ICE_RSS_TYPE_IPV4 | \
                                         ICE_RSS_TYPE_PPPOE)
-#define ICE_RSS_TYPE_PPPOE_IPV4_UDP    (ICE_RSS_TYPE_INNER_IPV4_UDP | \
+#define ICE_RSS_TYPE_PPPOE_IPV4_UDP    (ICE_RSS_TYPE_IPV4_UDP | \
                                         ICE_RSS_TYPE_PPPOE)
-#define ICE_RSS_TYPE_PPPOE_IPV4_TCP    (ICE_RSS_TYPE_INNER_IPV4_TCP | \
+#define ICE_RSS_TYPE_PPPOE_IPV4_TCP    (ICE_RSS_TYPE_IPV4_TCP | \
                                         ICE_RSS_TYPE_PPPOE)
 
 /* PPPOE IPv6 */
-#define ICE_RSS_TYPE_PPPOE_IPV6                (ICE_RSS_TYPE_INNER_IPV6 | \
+#define ICE_RSS_TYPE_PPPOE_IPV6                (ICE_RSS_TYPE_IPV6 | \
                                         ICE_RSS_TYPE_PPPOE)
-#define ICE_RSS_TYPE_PPPOE_IPV6_UDP    (ICE_RSS_TYPE_INNER_IPV6_UDP | \
+#define ICE_RSS_TYPE_PPPOE_IPV6_UDP    (ICE_RSS_TYPE_IPV6_UDP | \
                                         ICE_RSS_TYPE_PPPOE)
-#define ICE_RSS_TYPE_PPPOE_IPV6_TCP    (ICE_RSS_TYPE_INNER_IPV6_TCP | \
+#define ICE_RSS_TYPE_PPPOE_IPV6_TCP    (ICE_RSS_TYPE_IPV6_TCP | \
                                         ICE_RSS_TYPE_PPPOE)
 
 /* ESP, AH, L2TPV3 and PFCP */
@@ -461,67 +455,67 @@ struct ice_rss_hash_cfg empty_tmplt = {
  */
 static struct ice_pattern_match_item ice_hash_pattern_list[] = {
        /* IPV4 */
-       {pattern_eth_ipv4,                      ICE_RSS_TYPE_OUTER_IPV4,        &ipv4_tmplt},
-       {pattern_eth_ipv4_udp,                  ICE_RSS_TYPE_OUTER_IPV4_UDP,    &ipv4_udp_tmplt},
-       {pattern_eth_ipv4_tcp,                  ICE_RSS_TYPE_OUTER_IPV4_TCP,    &ipv4_tcp_tmplt},
-       {pattern_eth_ipv4_sctp,                 ICE_RSS_TYPE_OUTER_IPV4_SCTP,   &ipv4_sctp_tmplt},
-       {pattern_eth_vlan_ipv4,                 ICE_RSS_TYPE_VLAN_IPV4,         &ipv4_tmplt},
-       {pattern_eth_vlan_ipv4_udp,             ICE_RSS_TYPE_VLAN_IPV4_UDP,     &ipv4_udp_tmplt},
-       {pattern_eth_vlan_ipv4_tcp,             ICE_RSS_TYPE_VLAN_IPV4_TCP,     &ipv4_tcp_tmplt},
-       {pattern_eth_vlan_ipv4_sctp,            ICE_RSS_TYPE_VLAN_IPV4_SCTP,    &ipv4_sctp_tmplt},
-       {pattern_eth_ipv4_gtpu_ipv4,            ICE_RSS_TYPE_GTPU_IPV4,         &outer_ipv4_inner_ipv4_tmplt},
-       {pattern_eth_ipv4_gtpu_ipv4_udp,        ICE_RSS_TYPE_GTPU_IPV4_UDP,     &outer_ipv4_inner_ipv4_udp_tmplt},
-       {pattern_eth_ipv4_gtpu_ipv4_tcp,        ICE_RSS_TYPE_GTPU_IPV4_TCP,     &outer_ipv4_inner_ipv4_tcp_tmplt},
-       {pattern_eth_ipv6_gtpu_ipv4,            ICE_RSS_TYPE_GTPU_IPV4,         &outer_ipv6_inner_ipv4_tmplt},
-       {pattern_eth_ipv6_gtpu_ipv4_udp,        ICE_RSS_TYPE_GTPU_IPV4_UDP,     &outer_ipv6_inner_ipv4_udp_tmplt},
-       {pattern_eth_ipv6_gtpu_ipv4_tcp,        ICE_RSS_TYPE_GTPU_IPV4_TCP,     &outer_ipv6_inner_ipv4_tcp_tmplt},
-       {pattern_eth_ipv4_gtpu_eh_ipv4,         ICE_RSS_TYPE_GTPU_IPV4,         &outer_ipv4_inner_ipv4_tmplt},
-       {pattern_eth_ipv4_gtpu_eh_ipv4_udp,     ICE_RSS_TYPE_GTPU_IPV4_UDP,     &outer_ipv4_inner_ipv4_udp_tmplt},
-       {pattern_eth_ipv4_gtpu_eh_ipv4_tcp,     ICE_RSS_TYPE_GTPU_IPV4_TCP,     &outer_ipv4_inner_ipv4_tcp_tmplt},
-       {pattern_eth_ipv6_gtpu_eh_ipv4,         ICE_RSS_TYPE_GTPU_IPV4,         &outer_ipv6_inner_ipv4_tmplt},
-       {pattern_eth_ipv6_gtpu_eh_ipv4_udp,     ICE_RSS_TYPE_GTPU_IPV4_UDP,     &outer_ipv6_inner_ipv4_udp_tmplt},
-       {pattern_eth_ipv6_gtpu_eh_ipv4_tcp,     ICE_RSS_TYPE_GTPU_IPV4_TCP,     &outer_ipv6_inner_ipv4_tcp_tmplt},
-       {pattern_eth_pppoes_ipv4,               ICE_RSS_TYPE_PPPOE_IPV4,        &ipv4_tmplt},
-       {pattern_eth_pppoes_ipv4_udp,           ICE_RSS_TYPE_PPPOE_IPV4_UDP,    &ipv4_udp_tmplt},
-       {pattern_eth_pppoes_ipv4_tcp,           ICE_RSS_TYPE_PPPOE_IPV4_TCP,    &ipv4_tcp_tmplt},
-       {pattern_eth_ipv4_esp,                  ICE_RSS_TYPE_IPV4_ESP,          &eth_ipv4_esp_tmplt},
-       {pattern_eth_ipv4_udp_esp,              ICE_RSS_TYPE_IPV4_ESP,          &eth_ipv4_udp_esp_tmplt},
-       {pattern_eth_ipv4_ah,                   ICE_RSS_TYPE_IPV4_AH,           &eth_ipv4_ah_tmplt},
-       {pattern_eth_ipv4_l2tp,                 ICE_RSS_TYPE_IPV4_L2TPV3,       &eth_ipv4_l2tpv3_tmplt},
-       {pattern_eth_ipv4_pfcp,                 ICE_RSS_TYPE_IPV4_PFCP,         &eth_ipv4_pfcp_tmplt},
+       {pattern_eth_ipv4,                      ICE_RSS_TYPE_ETH_IPV4,          ICE_INSET_NONE, &ipv4_tmplt},
+       {pattern_eth_ipv4_udp,                  ICE_RSS_TYPE_ETH_IPV4_UDP,      ICE_INSET_NONE, &ipv4_udp_tmplt},
+       {pattern_eth_ipv4_tcp,                  ICE_RSS_TYPE_ETH_IPV4_TCP,      ICE_INSET_NONE, &ipv4_tcp_tmplt},
+       {pattern_eth_ipv4_sctp,                 ICE_RSS_TYPE_ETH_IPV4_SCTP,     ICE_INSET_NONE, &ipv4_sctp_tmplt},
+       {pattern_eth_vlan_ipv4,                 ICE_RSS_TYPE_VLAN_IPV4,         ICE_INSET_NONE, &ipv4_tmplt},
+       {pattern_eth_vlan_ipv4_udp,             ICE_RSS_TYPE_VLAN_IPV4_UDP,     ICE_INSET_NONE, &ipv4_udp_tmplt},
+       {pattern_eth_vlan_ipv4_tcp,             ICE_RSS_TYPE_VLAN_IPV4_TCP,     ICE_INSET_NONE, &ipv4_tcp_tmplt},
+       {pattern_eth_vlan_ipv4_sctp,            ICE_RSS_TYPE_VLAN_IPV4_SCTP,    ICE_INSET_NONE, &ipv4_sctp_tmplt},
+       {pattern_eth_ipv4_gtpu_ipv4,            ICE_RSS_TYPE_GTPU_IPV4,         ICE_INSET_NONE, &outer_ipv4_inner_ipv4_tmplt},
+       {pattern_eth_ipv4_gtpu_ipv4_udp,        ICE_RSS_TYPE_GTPU_IPV4_UDP,     ICE_INSET_NONE, &outer_ipv4_inner_ipv4_udp_tmplt},
+       {pattern_eth_ipv4_gtpu_ipv4_tcp,        ICE_RSS_TYPE_GTPU_IPV4_TCP,     ICE_INSET_NONE, &outer_ipv4_inner_ipv4_tcp_tmplt},
+       {pattern_eth_ipv6_gtpu_ipv4,            ICE_RSS_TYPE_GTPU_IPV4,         ICE_INSET_NONE, &outer_ipv6_inner_ipv4_tmplt},
+       {pattern_eth_ipv6_gtpu_ipv4_udp,        ICE_RSS_TYPE_GTPU_IPV4_UDP,     ICE_INSET_NONE, &outer_ipv6_inner_ipv4_udp_tmplt},
+       {pattern_eth_ipv6_gtpu_ipv4_tcp,        ICE_RSS_TYPE_GTPU_IPV4_TCP,     ICE_INSET_NONE, &outer_ipv6_inner_ipv4_tcp_tmplt},
+       {pattern_eth_ipv4_gtpu_eh_ipv4,         ICE_RSS_TYPE_GTPU_IPV4,         ICE_INSET_NONE, &outer_ipv4_inner_ipv4_tmplt},
+       {pattern_eth_ipv4_gtpu_eh_ipv4_udp,     ICE_RSS_TYPE_GTPU_IPV4_UDP,     ICE_INSET_NONE, &outer_ipv4_inner_ipv4_udp_tmplt},
+       {pattern_eth_ipv4_gtpu_eh_ipv4_tcp,     ICE_RSS_TYPE_GTPU_IPV4_TCP,     ICE_INSET_NONE, &outer_ipv4_inner_ipv4_tcp_tmplt},
+       {pattern_eth_ipv6_gtpu_eh_ipv4,         ICE_RSS_TYPE_GTPU_IPV4,         ICE_INSET_NONE, &outer_ipv6_inner_ipv4_tmplt},
+       {pattern_eth_ipv6_gtpu_eh_ipv4_udp,     ICE_RSS_TYPE_GTPU_IPV4_UDP,     ICE_INSET_NONE, &outer_ipv6_inner_ipv4_udp_tmplt},
+       {pattern_eth_ipv6_gtpu_eh_ipv4_tcp,     ICE_RSS_TYPE_GTPU_IPV4_TCP,     ICE_INSET_NONE, &outer_ipv6_inner_ipv4_tcp_tmplt},
+       {pattern_eth_pppoes_ipv4,               ICE_RSS_TYPE_PPPOE_IPV4,        ICE_INSET_NONE, &ipv4_tmplt},
+       {pattern_eth_pppoes_ipv4_udp,           ICE_RSS_TYPE_PPPOE_IPV4_UDP,    ICE_INSET_NONE, &ipv4_udp_tmplt},
+       {pattern_eth_pppoes_ipv4_tcp,           ICE_RSS_TYPE_PPPOE_IPV4_TCP,    ICE_INSET_NONE, &ipv4_tcp_tmplt},
+       {pattern_eth_ipv4_esp,                  ICE_RSS_TYPE_IPV4_ESP,          ICE_INSET_NONE, &eth_ipv4_esp_tmplt},
+       {pattern_eth_ipv4_udp_esp,              ICE_RSS_TYPE_IPV4_ESP,          ICE_INSET_NONE, &eth_ipv4_udp_esp_tmplt},
+       {pattern_eth_ipv4_ah,                   ICE_RSS_TYPE_IPV4_AH,           ICE_INSET_NONE, &eth_ipv4_ah_tmplt},
+       {pattern_eth_ipv4_l2tp,                 ICE_RSS_TYPE_IPV4_L2TPV3,       ICE_INSET_NONE, &eth_ipv4_l2tpv3_tmplt},
+       {pattern_eth_ipv4_pfcp,                 ICE_RSS_TYPE_IPV4_PFCP,         ICE_INSET_NONE, &eth_ipv4_pfcp_tmplt},
        /* IPV6 */
-       {pattern_eth_ipv6,                      ICE_RSS_TYPE_OUTER_IPV6,        &ipv6_tmplt},
-       {pattern_eth_ipv6_udp,                  ICE_RSS_TYPE_OUTER_IPV6_UDP,    &ipv6_udp_tmplt},
-       {pattern_eth_ipv6_tcp,                  ICE_RSS_TYPE_OUTER_IPV6_TCP,    &ipv6_tcp_tmplt},
-       {pattern_eth_ipv6_sctp,                 ICE_RSS_TYPE_OUTER_IPV6_SCTP,   &ipv6_sctp_tmplt},
-       {pattern_eth_vlan_ipv6,                 ICE_RSS_TYPE_VLAN_IPV6,         &ipv6_tmplt},
-       {pattern_eth_vlan_ipv6_udp,             ICE_RSS_TYPE_VLAN_IPV6_UDP,     &ipv6_udp_tmplt},
-       {pattern_eth_vlan_ipv6_tcp,             ICE_RSS_TYPE_VLAN_IPV6_TCP,     &ipv6_tcp_tmplt},
-       {pattern_eth_vlan_ipv6_sctp,            ICE_RSS_TYPE_VLAN_IPV6_SCTP,    &ipv6_sctp_tmplt},
-       {pattern_eth_ipv4_gtpu_ipv6,            ICE_RSS_TYPE_GTPU_IPV6,         &outer_ipv4_inner_ipv6_tmplt},
-       {pattern_eth_ipv4_gtpu_ipv6_udp,        ICE_RSS_TYPE_GTPU_IPV6_UDP,     &outer_ipv4_inner_ipv6_udp_tmplt},
-       {pattern_eth_ipv4_gtpu_ipv6_tcp,        ICE_RSS_TYPE_GTPU_IPV6_TCP,     &outer_ipv4_inner_ipv6_tcp_tmplt},
-       {pattern_eth_ipv6_gtpu_ipv6,            ICE_RSS_TYPE_GTPU_IPV6,         &outer_ipv6_inner_ipv6_tmplt},
-       {pattern_eth_ipv6_gtpu_ipv6_udp,        ICE_RSS_TYPE_GTPU_IPV6_UDP,     &outer_ipv6_inner_ipv6_udp_tmplt},
-       {pattern_eth_ipv6_gtpu_ipv6_tcp,        ICE_RSS_TYPE_GTPU_IPV6_TCP,     &outer_ipv6_inner_ipv6_tcp_tmplt},
-       {pattern_eth_ipv4_gtpu_eh_ipv6,         ICE_RSS_TYPE_GTPU_IPV6,         &outer_ipv4_inner_ipv6_tmplt},
-       {pattern_eth_ipv4_gtpu_eh_ipv6_udp,     ICE_RSS_TYPE_GTPU_IPV6_UDP,     &outer_ipv4_inner_ipv6_udp_tmplt},
-       {pattern_eth_ipv4_gtpu_eh_ipv6_tcp,     ICE_RSS_TYPE_GTPU_IPV6_TCP,     &outer_ipv4_inner_ipv6_tcp_tmplt},
-       {pattern_eth_ipv6_gtpu_eh_ipv6,         ICE_RSS_TYPE_GTPU_IPV6,         &outer_ipv6_inner_ipv6_tmplt},
-       {pattern_eth_ipv6_gtpu_eh_ipv6_udp,     ICE_RSS_TYPE_GTPU_IPV6_UDP,     &outer_ipv6_inner_ipv6_udp_tmplt},
-       {pattern_eth_ipv6_gtpu_eh_ipv6_tcp,     ICE_RSS_TYPE_GTPU_IPV6_TCP,     &outer_ipv6_inner_ipv6_tcp_tmplt},
-       {pattern_eth_pppoes_ipv6,               ICE_RSS_TYPE_PPPOE_IPV6,        &ipv6_tmplt},
-       {pattern_eth_pppoes_ipv6_udp,           ICE_RSS_TYPE_PPPOE_IPV6_UDP,    &ipv6_udp_tmplt},
-       {pattern_eth_pppoes_ipv6_tcp,           ICE_RSS_TYPE_PPPOE_IPV6_TCP,    &ipv6_tcp_tmplt},
-       {pattern_eth_ipv6_esp,                  ICE_RSS_TYPE_IPV6_ESP,          &eth_ipv6_esp_tmplt},
-       {pattern_eth_ipv6_udp_esp,              ICE_RSS_TYPE_IPV6_ESP,          &eth_ipv6_udp_esp_tmplt},
-       {pattern_eth_ipv6_ah,                   ICE_RSS_TYPE_IPV6_AH,           &eth_ipv6_ah_tmplt},
-       {pattern_eth_ipv6_l2tp,                 ICE_RSS_TYPE_IPV6_L2TPV3,       &eth_ipv6_l2tpv3_tmplt},
-       {pattern_eth_ipv6_pfcp,                 ICE_RSS_TYPE_IPV6_PFCP,         &eth_ipv6_pfcp_tmplt},
+       {pattern_eth_ipv6,                      ICE_RSS_TYPE_ETH_IPV6,          ICE_INSET_NONE, &ipv6_tmplt},
+       {pattern_eth_ipv6_udp,                  ICE_RSS_TYPE_ETH_IPV6_UDP,      ICE_INSET_NONE, &ipv6_udp_tmplt},
+       {pattern_eth_ipv6_tcp,                  ICE_RSS_TYPE_ETH_IPV6_TCP,      ICE_INSET_NONE, &ipv6_tcp_tmplt},
+       {pattern_eth_ipv6_sctp,                 ICE_RSS_TYPE_ETH_IPV6_SCTP,     ICE_INSET_NONE, &ipv6_sctp_tmplt},
+       {pattern_eth_vlan_ipv6,                 ICE_RSS_TYPE_VLAN_IPV6,         ICE_INSET_NONE, &ipv6_tmplt},
+       {pattern_eth_vlan_ipv6_udp,             ICE_RSS_TYPE_VLAN_IPV6_UDP,     ICE_INSET_NONE, &ipv6_udp_tmplt},
+       {pattern_eth_vlan_ipv6_tcp,             ICE_RSS_TYPE_VLAN_IPV6_TCP,     ICE_INSET_NONE, &ipv6_tcp_tmplt},
+       {pattern_eth_vlan_ipv6_sctp,            ICE_RSS_TYPE_VLAN_IPV6_SCTP,    ICE_INSET_NONE, &ipv6_sctp_tmplt},
+       {pattern_eth_ipv4_gtpu_ipv6,            ICE_RSS_TYPE_GTPU_IPV6,         ICE_INSET_NONE, &outer_ipv4_inner_ipv6_tmplt},
+       {pattern_eth_ipv4_gtpu_ipv6_udp,        ICE_RSS_TYPE_GTPU_IPV6_UDP,     ICE_INSET_NONE, &outer_ipv4_inner_ipv6_udp_tmplt},
+       {pattern_eth_ipv4_gtpu_ipv6_tcp,        ICE_RSS_TYPE_GTPU_IPV6_TCP,     ICE_INSET_NONE, &outer_ipv4_inner_ipv6_tcp_tmplt},
+       {pattern_eth_ipv6_gtpu_ipv6,            ICE_RSS_TYPE_GTPU_IPV6,         ICE_INSET_NONE, &outer_ipv6_inner_ipv6_tmplt},
+       {pattern_eth_ipv6_gtpu_ipv6_udp,        ICE_RSS_TYPE_GTPU_IPV6_UDP,     ICE_INSET_NONE, &outer_ipv6_inner_ipv6_udp_tmplt},
+       {pattern_eth_ipv6_gtpu_ipv6_tcp,        ICE_RSS_TYPE_GTPU_IPV6_TCP,     ICE_INSET_NONE, &outer_ipv6_inner_ipv6_tcp_tmplt},
+       {pattern_eth_ipv4_gtpu_eh_ipv6,         ICE_RSS_TYPE_GTPU_IPV6,         ICE_INSET_NONE, &outer_ipv4_inner_ipv6_tmplt},
+       {pattern_eth_ipv4_gtpu_eh_ipv6_udp,     ICE_RSS_TYPE_GTPU_IPV6_UDP,     ICE_INSET_NONE, &outer_ipv4_inner_ipv6_udp_tmplt},
+       {pattern_eth_ipv4_gtpu_eh_ipv6_tcp,     ICE_RSS_TYPE_GTPU_IPV6_TCP,     ICE_INSET_NONE, &outer_ipv4_inner_ipv6_tcp_tmplt},
+       {pattern_eth_ipv6_gtpu_eh_ipv6,         ICE_RSS_TYPE_GTPU_IPV6,         ICE_INSET_NONE, &outer_ipv6_inner_ipv6_tmplt},
+       {pattern_eth_ipv6_gtpu_eh_ipv6_udp,     ICE_RSS_TYPE_GTPU_IPV6_UDP,     ICE_INSET_NONE, &outer_ipv6_inner_ipv6_udp_tmplt},
+       {pattern_eth_ipv6_gtpu_eh_ipv6_tcp,     ICE_RSS_TYPE_GTPU_IPV6_TCP,     ICE_INSET_NONE, &outer_ipv6_inner_ipv6_tcp_tmplt},
+       {pattern_eth_pppoes_ipv6,               ICE_RSS_TYPE_PPPOE_IPV6,        ICE_INSET_NONE, &ipv6_tmplt},
+       {pattern_eth_pppoes_ipv6_udp,           ICE_RSS_TYPE_PPPOE_IPV6_UDP,    ICE_INSET_NONE, &ipv6_udp_tmplt},
+       {pattern_eth_pppoes_ipv6_tcp,           ICE_RSS_TYPE_PPPOE_IPV6_TCP,    ICE_INSET_NONE, &ipv6_tcp_tmplt},
+       {pattern_eth_ipv6_esp,                  ICE_RSS_TYPE_IPV6_ESP,          ICE_INSET_NONE, &eth_ipv6_esp_tmplt},
+       {pattern_eth_ipv6_udp_esp,              ICE_RSS_TYPE_IPV6_ESP,          ICE_INSET_NONE, &eth_ipv6_udp_esp_tmplt},
+       {pattern_eth_ipv6_ah,                   ICE_RSS_TYPE_IPV6_AH,           ICE_INSET_NONE, &eth_ipv6_ah_tmplt},
+       {pattern_eth_ipv6_l2tp,                 ICE_RSS_TYPE_IPV6_L2TPV3,       ICE_INSET_NONE, &eth_ipv6_l2tpv3_tmplt},
+       {pattern_eth_ipv6_pfcp,                 ICE_RSS_TYPE_IPV6_PFCP,         ICE_INSET_NONE, &eth_ipv6_pfcp_tmplt},
        /* PPPOE */
-       {pattern_eth_pppoes,                    ICE_RSS_TYPE_PPPOE,             &pppoe_tmplt},
+       {pattern_eth_pppoes,                    ICE_RSS_TYPE_PPPOE,             ICE_INSET_NONE, &pppoe_tmplt},
        /* EMPTY */
-       {pattern_empty,                         ICE_RSS_TYPE_EMPTY,             &empty_tmplt},
+       {pattern_empty,                         ICE_INSET_NONE,                 ICE_INSET_NONE, &empty_tmplt},
 };
 
 static struct ice_flow_engine ice_hash_engine = {
@@ -960,7 +954,7 @@ ice_hash_parse_action(struct ice_pattern_match_item *pattern_match_item,
                        rss_type = rte_eth_rss_hf_refine(rss_type);
 
                        if (ice_any_invalid_rss_type(rss->func, rss_type,
-                                       pattern_match_item->input_set_mask))
+                                       pattern_match_item->input_set_mask_o))
                                return rte_flow_error_set(error, ENOTSUP,
                                        RTE_FLOW_ERROR_TYPE_ACTION,
                                        action, "RSS type not supported");
index 6525e6c..ada3ecf 100644 (file)
@@ -149,206 +149,108 @@ static struct ice_flow_parser ice_switch_perm_parser;
 
 static struct
 ice_pattern_match_item ice_switch_pattern_dist_list[] = {
-       {pattern_ethertype,
-                       ICE_SW_INSET_ETHER, ICE_INSET_NONE},
-       {pattern_ethertype_vlan,
-                       ICE_SW_INSET_MAC_VLAN, ICE_INSET_NONE},
-       {pattern_ethertype_qinq,
-                       ICE_SW_INSET_MAC_QINQ, ICE_INSET_NONE},
-       {pattern_eth_arp,
-                       ICE_INSET_NONE, ICE_INSET_NONE},
-       {pattern_eth_ipv4,
-                       ICE_SW_INSET_MAC_IPV4, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp,
-                       ICE_SW_INSET_MAC_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_tcp,
-                       ICE_SW_INSET_MAC_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_ipv6,
-                       ICE_SW_INSET_MAC_IPV6, ICE_INSET_NONE},
-       {pattern_eth_ipv6_udp,
-                       ICE_SW_INSET_MAC_IPV6_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv6_tcp,
-                       ICE_SW_INSET_MAC_IPV6_TCP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4,
-                       ICE_SW_INSET_DIST_VXLAN_IPV4, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,
-                       ICE_SW_INSET_DIST_VXLAN_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,
-                       ICE_SW_INSET_DIST_VXLAN_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_nvgre_eth_ipv4,
-                       ICE_SW_INSET_DIST_NVGRE_IPV4, ICE_INSET_NONE},
-       {pattern_eth_ipv4_nvgre_eth_ipv4_udp,
-                       ICE_SW_INSET_DIST_NVGRE_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_nvgre_eth_ipv4_tcp,
-                       ICE_SW_INSET_DIST_NVGRE_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_pppoes,
-                       ICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes,
-                       ICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},
-       {pattern_eth_pppoes_proto,
-                       ICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_proto,
-                       ICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv4,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv4_tcp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv4_udp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv6,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv6_tcp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6_TCP, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv6_udp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6_UDP, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv4,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv4_tcp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv4_udp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv6,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv6_tcp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6_TCP, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv6_udp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_esp,
-                       ICE_SW_INSET_MAC_IPV4_ESP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_esp,
-                       ICE_SW_INSET_MAC_IPV4_ESP, ICE_INSET_NONE},
-       {pattern_eth_ipv6_esp,
-                       ICE_SW_INSET_MAC_IPV6_ESP, ICE_INSET_NONE},
-       {pattern_eth_ipv6_udp_esp,
-                       ICE_SW_INSET_MAC_IPV6_ESP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_ah,
-                       ICE_SW_INSET_MAC_IPV4_AH, ICE_INSET_NONE},
-       {pattern_eth_ipv6_ah,
-                       ICE_SW_INSET_MAC_IPV6_AH, ICE_INSET_NONE},
-       {pattern_eth_ipv6_udp_ah,
-                       ICE_INSET_NONE, ICE_INSET_NONE},
-       {pattern_eth_ipv4_l2tp,
-                       ICE_SW_INSET_MAC_IPV4_L2TP, ICE_INSET_NONE},
-       {pattern_eth_ipv6_l2tp,
-                       ICE_SW_INSET_MAC_IPV6_L2TP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_pfcp,
-                       ICE_INSET_NONE, ICE_INSET_NONE},
-       {pattern_eth_ipv6_pfcp,
-                       ICE_INSET_NONE, ICE_INSET_NONE},
-       {pattern_eth_qinq_ipv4,
-                       ICE_SW_INSET_MAC_QINQ_IPV4, ICE_INSET_NONE},
-       {pattern_eth_qinq_ipv6,
-                       ICE_SW_INSET_MAC_QINQ_IPV6, ICE_INSET_NONE},
-       {pattern_eth_qinq_pppoes,
-                       ICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},
-       {pattern_eth_qinq_pppoes_proto,
-                       ICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},
-       {pattern_eth_qinq_pppoes_ipv4,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},
-       {pattern_eth_qinq_pppoes_ipv6,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},
+       {pattern_ethertype,                             ICE_SW_INSET_ETHER,                     ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_ethertype_vlan,                        ICE_SW_INSET_MAC_VLAN,                  ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_ethertype_qinq,                        ICE_SW_INSET_MAC_QINQ,                  ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_arp,                               ICE_INSET_NONE,                         ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4,                              ICE_SW_INSET_MAC_IPV4,                  ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp,                          ICE_SW_INSET_MAC_IPV4_UDP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_tcp,                          ICE_SW_INSET_MAC_IPV4_TCP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6,                              ICE_SW_INSET_MAC_IPV6,                  ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_udp,                          ICE_SW_INSET_MAC_IPV6_UDP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_tcp,                          ICE_SW_INSET_MAC_IPV6_TCP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4,           ICE_SW_INSET_DIST_VXLAN_IPV4,           ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,       ICE_SW_INSET_DIST_VXLAN_IPV4_UDP,       ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,       ICE_SW_INSET_DIST_VXLAN_IPV4_TCP,       ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_nvgre_eth_ipv4,               ICE_SW_INSET_DIST_NVGRE_IPV4,           ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_nvgre_eth_ipv4_udp,           ICE_SW_INSET_DIST_NVGRE_IPV4_UDP,       ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_nvgre_eth_ipv4_tcp,           ICE_SW_INSET_DIST_NVGRE_IPV4_TCP,       ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes,                            ICE_SW_INSET_MAC_PPPOE,                 ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes,                       ICE_SW_INSET_MAC_PPPOE,                 ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_proto,                      ICE_SW_INSET_MAC_PPPOE_PROTO,           ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_proto,                 ICE_SW_INSET_MAC_PPPOE_PROTO,           ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv4,                       ICE_SW_INSET_MAC_PPPOE_IPV4,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv4_tcp,                   ICE_SW_INSET_MAC_PPPOE_IPV4_TCP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv4_udp,                   ICE_SW_INSET_MAC_PPPOE_IPV4_UDP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv6,                       ICE_SW_INSET_MAC_PPPOE_IPV6,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv6_tcp,                   ICE_SW_INSET_MAC_PPPOE_IPV6_TCP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv6_udp,                   ICE_SW_INSET_MAC_PPPOE_IPV6_UDP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv4,                  ICE_SW_INSET_MAC_PPPOE_IPV4,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv4_tcp,              ICE_SW_INSET_MAC_PPPOE_IPV4_TCP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv4_udp,              ICE_SW_INSET_MAC_PPPOE_IPV4_UDP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv6,                  ICE_SW_INSET_MAC_PPPOE_IPV6,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv6_tcp,              ICE_SW_INSET_MAC_PPPOE_IPV6_TCP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv6_udp,              ICE_SW_INSET_MAC_PPPOE_IPV6_UDP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_esp,                          ICE_SW_INSET_MAC_IPV4_ESP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_esp,                      ICE_SW_INSET_MAC_IPV4_ESP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_esp,                          ICE_SW_INSET_MAC_IPV6_ESP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_udp_esp,                      ICE_SW_INSET_MAC_IPV6_ESP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_ah,                           ICE_SW_INSET_MAC_IPV4_AH,               ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_ah,                           ICE_SW_INSET_MAC_IPV6_AH,               ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_udp_ah,                       ICE_INSET_NONE,                         ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_l2tp,                         ICE_SW_INSET_MAC_IPV4_L2TP,             ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_l2tp,                         ICE_SW_INSET_MAC_IPV6_L2TP,             ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_pfcp,                         ICE_INSET_NONE,                         ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_pfcp,                         ICE_INSET_NONE,                         ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_ipv4,                         ICE_SW_INSET_MAC_QINQ_IPV4,             ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_ipv6,                         ICE_SW_INSET_MAC_QINQ_IPV6,             ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_pppoes,                       ICE_SW_INSET_MAC_PPPOE,                 ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_pppoes_proto,                 ICE_SW_INSET_MAC_PPPOE_PROTO,           ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_pppoes_ipv4,                  ICE_SW_INSET_MAC_PPPOE_IPV4,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_pppoes_ipv6,                  ICE_SW_INSET_MAC_PPPOE_IPV6,            ICE_INSET_NONE, ICE_INSET_NONE},
 };
 
 static struct
 ice_pattern_match_item ice_switch_pattern_perm_list[] = {
-       {pattern_ethertype,
-                       ICE_SW_INSET_ETHER, ICE_INSET_NONE},
-       {pattern_ethertype_vlan,
-                       ICE_SW_INSET_MAC_VLAN, ICE_INSET_NONE},
-       {pattern_ethertype_qinq,
-                       ICE_SW_INSET_MAC_QINQ, ICE_INSET_NONE},
-       {pattern_eth_arp,
-               ICE_INSET_NONE, ICE_INSET_NONE},
-       {pattern_eth_ipv4,
-                       ICE_SW_INSET_MAC_IPV4, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp,
-                       ICE_SW_INSET_MAC_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_tcp,
-                       ICE_SW_INSET_MAC_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_ipv6,
-                       ICE_SW_INSET_MAC_IPV6, ICE_INSET_NONE},
-       {pattern_eth_ipv6_udp,
-                       ICE_SW_INSET_MAC_IPV6_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv6_tcp,
-                       ICE_SW_INSET_MAC_IPV6_TCP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4,
-                       ICE_SW_INSET_PERM_TUNNEL_IPV4, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,
-                       ICE_SW_INSET_PERM_TUNNEL_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,
-                       ICE_SW_INSET_PERM_TUNNEL_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_nvgre_eth_ipv4,
-                       ICE_SW_INSET_PERM_TUNNEL_IPV4, ICE_INSET_NONE},
-       {pattern_eth_ipv4_nvgre_eth_ipv4_udp,
-                       ICE_SW_INSET_PERM_TUNNEL_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_nvgre_eth_ipv4_tcp,
-                       ICE_SW_INSET_PERM_TUNNEL_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_pppoes,
-                       ICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes,
-                       ICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},
-       {pattern_eth_pppoes_proto,
-                       ICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_proto,
-                       ICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv4,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv4_tcp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv4_udp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv6,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv6_tcp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6_TCP, ICE_INSET_NONE},
-       {pattern_eth_pppoes_ipv6_udp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6_UDP, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv4,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv4_tcp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4_TCP, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv4_udp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4_UDP, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv6,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv6_tcp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6_TCP, ICE_INSET_NONE},
-       {pattern_eth_vlan_pppoes_ipv6_udp,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6_UDP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_esp,
-                       ICE_SW_INSET_MAC_IPV4_ESP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_udp_esp,
-                       ICE_SW_INSET_MAC_IPV4_ESP, ICE_INSET_NONE},
-       {pattern_eth_ipv6_esp,
-                       ICE_SW_INSET_MAC_IPV6_ESP, ICE_INSET_NONE},
-       {pattern_eth_ipv6_udp_esp,
-                       ICE_SW_INSET_MAC_IPV6_ESP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_ah,
-                       ICE_SW_INSET_MAC_IPV4_AH, ICE_INSET_NONE},
-       {pattern_eth_ipv6_ah,
-                       ICE_SW_INSET_MAC_IPV6_AH, ICE_INSET_NONE},
-       {pattern_eth_ipv6_udp_ah,
-                       ICE_INSET_NONE, ICE_INSET_NONE},
-       {pattern_eth_ipv4_l2tp,
-                       ICE_SW_INSET_MAC_IPV4_L2TP, ICE_INSET_NONE},
-       {pattern_eth_ipv6_l2tp,
-                       ICE_SW_INSET_MAC_IPV6_L2TP, ICE_INSET_NONE},
-       {pattern_eth_ipv4_pfcp,
-                       ICE_INSET_NONE, ICE_INSET_NONE},
-       {pattern_eth_ipv6_pfcp,
-                       ICE_INSET_NONE, ICE_INSET_NONE},
-       {pattern_eth_qinq_ipv4,
-                       ICE_SW_INSET_MAC_QINQ_IPV4, ICE_INSET_NONE},
-       {pattern_eth_qinq_ipv6,
-                       ICE_SW_INSET_MAC_QINQ_IPV6, ICE_INSET_NONE},
-       {pattern_eth_qinq_pppoes,
-                       ICE_SW_INSET_MAC_PPPOE, ICE_INSET_NONE},
-       {pattern_eth_qinq_pppoes_proto,
-                       ICE_SW_INSET_MAC_PPPOE_PROTO, ICE_INSET_NONE},
-       {pattern_eth_qinq_pppoes_ipv4,
-                       ICE_SW_INSET_MAC_PPPOE_IPV4, ICE_INSET_NONE},
-       {pattern_eth_qinq_pppoes_ipv6,
-                       ICE_SW_INSET_MAC_PPPOE_IPV6, ICE_INSET_NONE},
+       {pattern_ethertype,                             ICE_SW_INSET_ETHER,                     ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_ethertype_vlan,                        ICE_SW_INSET_MAC_VLAN,                  ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_ethertype_qinq,                        ICE_SW_INSET_MAC_QINQ,                  ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_arp,                               ICE_INSET_NONE,                         ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4,                              ICE_SW_INSET_MAC_IPV4,                  ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp,                          ICE_SW_INSET_MAC_IPV4_UDP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_tcp,                          ICE_SW_INSET_MAC_IPV4_TCP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6,                              ICE_SW_INSET_MAC_IPV6,                  ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_udp,                          ICE_SW_INSET_MAC_IPV6_UDP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_tcp,                          ICE_SW_INSET_MAC_IPV6_TCP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4,           ICE_SW_INSET_PERM_TUNNEL_IPV4,          ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_udp,       ICE_SW_INSET_PERM_TUNNEL_IPV4_UDP,      ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_vxlan_eth_ipv4_tcp,       ICE_SW_INSET_PERM_TUNNEL_IPV4_TCP,      ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_nvgre_eth_ipv4,               ICE_SW_INSET_PERM_TUNNEL_IPV4,          ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_nvgre_eth_ipv4_udp,           ICE_SW_INSET_PERM_TUNNEL_IPV4_UDP,      ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_nvgre_eth_ipv4_tcp,           ICE_SW_INSET_PERM_TUNNEL_IPV4_TCP,      ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes,                            ICE_SW_INSET_MAC_PPPOE,                 ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes,                       ICE_SW_INSET_MAC_PPPOE,                 ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_proto,                      ICE_SW_INSET_MAC_PPPOE_PROTO,           ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_proto,                 ICE_SW_INSET_MAC_PPPOE_PROTO,           ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv4,                       ICE_SW_INSET_MAC_PPPOE_IPV4,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv4_tcp,                   ICE_SW_INSET_MAC_PPPOE_IPV4_TCP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv4_udp,                   ICE_SW_INSET_MAC_PPPOE_IPV4_UDP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv6,                       ICE_SW_INSET_MAC_PPPOE_IPV6,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv6_tcp,                   ICE_SW_INSET_MAC_PPPOE_IPV6_TCP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_pppoes_ipv6_udp,                   ICE_SW_INSET_MAC_PPPOE_IPV6_UDP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv4,                  ICE_SW_INSET_MAC_PPPOE_IPV4,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv4_tcp,              ICE_SW_INSET_MAC_PPPOE_IPV4_TCP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv4_udp,              ICE_SW_INSET_MAC_PPPOE_IPV4_UDP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv6,                  ICE_SW_INSET_MAC_PPPOE_IPV6,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv6_tcp,              ICE_SW_INSET_MAC_PPPOE_IPV6_TCP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_vlan_pppoes_ipv6_udp,              ICE_SW_INSET_MAC_PPPOE_IPV6_UDP,        ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_esp,                          ICE_SW_INSET_MAC_IPV4_ESP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_udp_esp,                      ICE_SW_INSET_MAC_IPV4_ESP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_esp,                          ICE_SW_INSET_MAC_IPV6_ESP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_udp_esp,                      ICE_SW_INSET_MAC_IPV6_ESP,              ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_ah,                           ICE_SW_INSET_MAC_IPV4_AH,               ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_ah,                           ICE_SW_INSET_MAC_IPV6_AH,               ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_udp_ah,                       ICE_INSET_NONE,                         ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_l2tp,                         ICE_SW_INSET_MAC_IPV4_L2TP,             ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_l2tp,                         ICE_SW_INSET_MAC_IPV6_L2TP,             ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv4_pfcp,                         ICE_INSET_NONE,                         ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_ipv6_pfcp,                         ICE_INSET_NONE,                         ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_ipv4,                         ICE_SW_INSET_MAC_QINQ_IPV4,             ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_ipv6,                         ICE_SW_INSET_MAC_QINQ_IPV6,             ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_pppoes,                       ICE_SW_INSET_MAC_PPPOE,                 ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_pppoes_proto,                 ICE_SW_INSET_MAC_PPPOE_PROTO,           ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_pppoes_ipv4,                  ICE_SW_INSET_MAC_PPPOE_IPV4,            ICE_INSET_NONE, ICE_INSET_NONE},
+       {pattern_eth_qinq_pppoes_ipv6,                  ICE_SW_INSET_MAC_PPPOE_IPV6,            ICE_INSET_NONE, ICE_INSET_NONE},
 };
 
 static int
@@ -1724,7 +1626,7 @@ ice_switch_parse_pattern_action(struct ice_adapter *ad,
        inputset = ice_switch_inset_get
                (pattern, error, list, &lkups_num, &tun_type);
        if ((!inputset && !ice_is_profile_rule(tun_type)) ||
-               (inputset & ~pattern_match_item->input_set_mask)) {
+               (inputset & ~pattern_match_item->input_set_mask_o)) {
                rte_flow_error_set(error, EINVAL,
                                   RTE_FLOW_ERROR_TYPE_ITEM_SPEC,
                                   pattern,