net/ice: fix GTPU L4 hash
authorJeff Guo <jia.guo@intel.com>
Tue, 21 Jul 2020 02:32:46 +0000 (10:32 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 21 Jul 2020 11:54:54 +0000 (13:54 +0200)
When the configure pattern involve GTPU inner l3 and l4, even the
configure input set only l3 but not l4, the different l4 protocol
header should also be configured for the different l4 protocol.

Fixes: 0b952714e9c1 ("net/ice: refactor PF hash flow")
Fixes: de32fa2ba27b ("net/ice: support RSS for IPv6 prefix")

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/ice_hash.c

index 42b3440..e535e4b 100644 (file)
@@ -506,6 +506,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA)},
        {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA)},
        {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
@@ -516,6 +517,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA)},
        {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA)},
        {ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT) |
@@ -535,6 +537,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA)},
        {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA)},
        {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
@@ -545,6 +548,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA)},
        {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA)},
        {ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT) |
@@ -564,6 +568,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA)},
        {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA)},
        {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA) |
@@ -574,6 +579,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA)},
        {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA)},
        {ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT) |
@@ -614,6 +620,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA)},
        {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA)},
        {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA) |
@@ -624,6 +631,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA)},
        {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA)},
        {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT) |
@@ -643,6 +651,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA)},
        {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA)},
        {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
@@ -651,6 +660,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA)},
        {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)},
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA)},
        {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)},
@@ -664,6 +674,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA)},
        {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA)},
        {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
@@ -672,6 +683,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA)},
        {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)},
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA)},
        {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)},
@@ -685,6 +697,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA)},
        {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA)},
        {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
@@ -693,6 +706,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA)},
        {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)},
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA)},
        {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)},
@@ -708,6 +722,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA)},
        {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA)},
        {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA) |
@@ -718,6 +733,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA)},
        {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA)},
        {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT) |
@@ -735,6 +751,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA)},
        {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA)},
        {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
@@ -743,6 +760,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA)},
        {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)},
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA)},
        {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)},
@@ -756,6 +774,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA)},
        {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA)},
        {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
@@ -764,6 +783,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA)},
        {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)},
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA)},
        {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)},
@@ -777,6 +797,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA)},
        {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA)},
        {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
@@ -785,6 +806,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA)},
        {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)},
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA)},
        {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)},
@@ -800,6 +822,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA)},
        {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA)},
        {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA) |
@@ -810,6 +833,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA)},
        {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA)},
        {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT) |
@@ -827,6 +851,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA)},
        {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA)},
        {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
@@ -835,6 +860,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA)},
        {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)},
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA)},
        {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)},
@@ -848,6 +874,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA)},
        {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA)},
        {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
@@ -856,6 +883,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA)},
        {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)},
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA)},
        {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)},
@@ -869,6 +897,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L3_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L3_SRC_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA)},
        {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA)},
        {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
@@ -877,6 +906,7 @@ struct ice_hash_match_type ice_hash_type_list[] = {
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L3_DST_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)},
        {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L3_DST_ONLY,
+               BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) |
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA)},
        {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)},
                BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA)},
        {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L4_SRC_ONLY,
                BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)},