Support AVF RSS for inner most header of GTPoGRE packet. It supports
RSS based on inner most IP src + dst address and TCP/UDP src + dst
port.

Signed-off-by: Lingyu Liu <lingyu....@intel.com>
---
 drivers/net/iavf/iavf_hash.c | 48 ++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c
index 5d3d62839b..b2bb625b98 100644
--- a/drivers/net/iavf/iavf_hash.c
+++ b/drivers/net/iavf/iavf_hash.c
@@ -420,6 +420,54 @@ static struct iavf_pattern_match_item 
iavf_hash_pattern_list[] = {
        {iavf_pattern_eth_ipv6_gtpu_eh_ipv4,            
IAVF_RSS_TYPE_GTPU_IPV4,        &inner_ipv4_tmplt},
        {iavf_pattern_eth_ipv6_gtpu_eh_ipv4_udp,        
IAVF_RSS_TYPE_GTPU_IPV4_UDP,    &inner_ipv4_udp_tmplt},
        {iavf_pattern_eth_ipv6_gtpu_eh_ipv4_tcp,        
IAVF_RSS_TYPE_GTPU_IPV4_TCP,    &inner_ipv4_tcp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_ipv4,              
IAVF_RSS_TYPE_GTPU_IPV4,        &inner_ipv4_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_ipv4_udp,          
IAVF_RSS_TYPE_GTPU_IPV4_UDP,    &inner_ipv4_udp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_ipv4_tcp,          
IAVF_RSS_TYPE_GTPU_IPV4_TCP,    &inner_ipv4_tcp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_ipv6,              
IAVF_RSS_TYPE_GTPU_IPV6,        &inner_ipv6_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_ipv6_udp,          
IAVF_RSS_TYPE_GTPU_IPV6_UDP,    &inner_ipv6_udp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_ipv6_tcp,          
IAVF_RSS_TYPE_GTPU_IPV6_TCP,    &inner_ipv6_tcp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_ipv4,              
IAVF_RSS_TYPE_GTPU_IPV4,        &inner_ipv4_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_ipv4_udp,          
IAVF_RSS_TYPE_GTPU_IPV4_UDP,    &inner_ipv4_udp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_ipv4_tcp,          
IAVF_RSS_TYPE_GTPU_IPV4_TCP,    &inner_ipv4_tcp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_ipv6,              
IAVF_RSS_TYPE_GTPU_IPV6,        &inner_ipv6_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_ipv6_udp,          
IAVF_RSS_TYPE_GTPU_IPV6_UDP,    &inner_ipv6_udp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_ipv6_tcp,          
IAVF_RSS_TYPE_GTPU_IPV6_TCP,    &inner_ipv6_tcp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_ipv4,              
IAVF_RSS_TYPE_GTPU_IPV4,        &inner_ipv4_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_ipv4_udp,          
IAVF_RSS_TYPE_GTPU_IPV4_UDP,    &inner_ipv4_udp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_ipv4_tcp,          
IAVF_RSS_TYPE_GTPU_IPV4_TCP,    &inner_ipv4_tcp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_ipv6,              
IAVF_RSS_TYPE_GTPU_IPV6,        &inner_ipv6_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_ipv6_udp,          
IAVF_RSS_TYPE_GTPU_IPV6_UDP,    &inner_ipv6_udp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_ipv6_tcp,          
IAVF_RSS_TYPE_GTPU_IPV6_TCP,    &inner_ipv6_tcp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_ipv4,              
IAVF_RSS_TYPE_GTPU_IPV4,        &inner_ipv4_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_ipv4_udp,          
IAVF_RSS_TYPE_GTPU_IPV4_UDP,    &inner_ipv4_udp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_ipv4_tcp,          
IAVF_RSS_TYPE_GTPU_IPV4_TCP,    &inner_ipv4_tcp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_ipv6,              
IAVF_RSS_TYPE_GTPU_IPV6,        &inner_ipv6_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_ipv6_udp,          
IAVF_RSS_TYPE_GTPU_IPV6_UDP,    &inner_ipv6_udp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_ipv6_tcp,          
IAVF_RSS_TYPE_GTPU_IPV6_TCP,    &inner_ipv6_tcp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_eh_ipv4,           
IAVF_RSS_TYPE_GTPU_IPV4,        &inner_ipv4_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_eh_ipv4_udp,       
IAVF_RSS_TYPE_GTPU_IPV4_UDP,    &inner_ipv4_udp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_eh_ipv4_tcp,       
IAVF_RSS_TYPE_GTPU_IPV4_TCP,    &inner_ipv4_tcp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_eh_ipv6,           
IAVF_RSS_TYPE_GTPU_IPV6,        &inner_ipv6_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_eh_ipv6_udp,       
IAVF_RSS_TYPE_GTPU_IPV6_UDP,    &inner_ipv6_udp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv4_gtpu_eh_ipv6_tcp,       
IAVF_RSS_TYPE_GTPU_IPV6_TCP,    &inner_ipv6_tcp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_eh_ipv4,           
IAVF_RSS_TYPE_GTPU_IPV4,        &inner_ipv4_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_eh_ipv4_udp,       
IAVF_RSS_TYPE_GTPU_IPV4_UDP,    &inner_ipv4_udp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_eh_ipv4_tcp,       
IAVF_RSS_TYPE_GTPU_IPV4_TCP,    &inner_ipv4_tcp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_eh_ipv6,           
IAVF_RSS_TYPE_GTPU_IPV6,        &inner_ipv6_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_eh_ipv6_udp,       
IAVF_RSS_TYPE_GTPU_IPV6_UDP,    &inner_ipv6_udp_tmplt},
+       {iavf_pattern_eth_ipv4_gre_ipv6_gtpu_eh_ipv6_tcp,       
IAVF_RSS_TYPE_GTPU_IPV6_TCP,    &inner_ipv6_tcp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_eh_ipv4,           
IAVF_RSS_TYPE_GTPU_IPV4,        &inner_ipv4_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_eh_ipv4_udp,       
IAVF_RSS_TYPE_GTPU_IPV4_UDP,    &inner_ipv4_udp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_eh_ipv4_tcp,       
IAVF_RSS_TYPE_GTPU_IPV4_TCP,    &inner_ipv4_tcp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_eh_ipv6,           
IAVF_RSS_TYPE_GTPU_IPV6,        &inner_ipv6_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_eh_ipv6_udp,       
IAVF_RSS_TYPE_GTPU_IPV6_UDP,    &inner_ipv6_udp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv4_gtpu_eh_ipv6_tcp,       
IAVF_RSS_TYPE_GTPU_IPV6_TCP,    &inner_ipv6_tcp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_eh_ipv4,           
IAVF_RSS_TYPE_GTPU_IPV4,        &inner_ipv4_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_eh_ipv4_udp,       
IAVF_RSS_TYPE_GTPU_IPV4_UDP,    &inner_ipv4_udp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_eh_ipv4_tcp,       
IAVF_RSS_TYPE_GTPU_IPV4_TCP,    &inner_ipv4_tcp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_eh_ipv6,           
IAVF_RSS_TYPE_GTPU_IPV6,        &inner_ipv6_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_eh_ipv6_udp,       
IAVF_RSS_TYPE_GTPU_IPV6_UDP,    &inner_ipv6_udp_tmplt},
+       {iavf_pattern_eth_ipv6_gre_ipv6_gtpu_eh_ipv6_tcp,       
IAVF_RSS_TYPE_GTPU_IPV6_TCP,    &inner_ipv6_tcp_tmplt},
        {iavf_pattern_eth_ipv4_esp,                     IAVF_RSS_TYPE_IPV4_ESP, 
        &ipv4_esp_tmplt},
        {iavf_pattern_eth_ipv4_udp_esp,                 IAVF_RSS_TYPE_IPV4_ESP, 
        &ipv4_udp_esp_tmplt},
        {iavf_pattern_eth_ipv4_ah,                      IAVF_RSS_TYPE_IPV4_AH,  
        &ipv4_ah_tmplt},
-- 
2.25.1

Reply via email to