[20.11,5/7] net/ice: support 6-tuple RSS
Checks
Commit Message
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(+)
@@ -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)},