[20.11,5/7] net/ice: support 6-tuple RSS

Message ID 20210910080821.18718-6-wenjun1.wu@intel.com (mailing list archive)
State Not Applicable, archived
Delegated to: Qi Zhang
Headers
Series backport feature support to DPDK 20.11 |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Wenjun Wu Sept. 10, 2021, 8:08 a.m. UTC
  This patch is not for LTS upstream, just for users to cherry-pick.

Add 6-tuple RSS support for pattern eth/vlan/ipv4, eth/vlan/ipv4/sctp,
eth/vlan/ipv4/udp,eth/vlan/ipv4/tcp.

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
---
 drivers/net/ice/ice_hash.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
  

Patch

diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c
index b8a87ea1dd..89bc458b86 100644
--- a/drivers/net/ice/ice_hash.c
+++ b/drivers/net/ice/ice_hash.c
@@ -505,6 +505,9 @@  struct ice_hash_match_type ice_hash_type_list[] = {
 	{ETH_RSS_IPV4 | ETH_RSS_L3_DST_ONLY,
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_DA)},
 	{ETH_RSS_IPV4, ICE_FLOW_HASH_IPV4},
+	{ETH_RSS_C_VLAN | ETH_RSS_IPV4,
+		BIT_ULL(ICE_FLOW_FIELD_IDX_C_VLAN) |
+		ICE_FLOW_HASH_IPV4},
 	{ETH_RSS_FRAG_IPV4,
 		ICE_FLOW_HASH_IPV4 |
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_ID)},
@@ -539,6 +542,10 @@  struct ice_hash_match_type ice_hash_type_list[] = {
 	{ETH_RSS_NONFRAG_IPV4_UDP,
 		ICE_HASH_UDP_IPV4 |
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
+	{ETH_RSS_C_VLAN | ETH_RSS_NONFRAG_IPV4_UDP,
+		BIT_ULL(ICE_FLOW_FIELD_IDX_C_VLAN) |
+		ICE_HASH_UDP_IPV4 |
+		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
 	{ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) |
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
@@ -570,6 +577,10 @@  struct ice_hash_match_type ice_hash_type_list[] = {
 	{ETH_RSS_NONFRAG_IPV4_TCP,
 		ICE_HASH_TCP_IPV4 |
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
+	{ETH_RSS_C_VLAN | ETH_RSS_NONFRAG_IPV4_TCP,
+		BIT_ULL(ICE_FLOW_FIELD_IDX_C_VLAN) |
+		ICE_HASH_TCP_IPV4 |
+		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
 	{ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY,
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_SA) |
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT) |
@@ -601,6 +612,10 @@  struct ice_hash_match_type ice_hash_type_list[] = {
 	{ETH_RSS_NONFRAG_IPV4_SCTP,
 		ICE_HASH_SCTP_IPV4 |
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
+	{ETH_RSS_C_VLAN | ETH_RSS_NONFRAG_IPV4_SCTP,
+		BIT_ULL(ICE_FLOW_FIELD_IDX_C_VLAN) |
+		ICE_HASH_SCTP_IPV4 |
+		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV4_PROT)},
 	/* IPV6 */
 	{ETH_RSS_IPV6 | ETH_RSS_L3_SRC_ONLY,
 		BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA)},