From patchwork Thu Jul 9 02:06:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qi Zhang X-Patchwork-Id: 73572 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9790EA0526; Thu, 9 Jul 2020 04:03:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1FB801DC91; Thu, 9 Jul 2020 04:02:53 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 126541DC32 for ; Thu, 9 Jul 2020 04:02:49 +0200 (CEST) IronPort-SDR: rfDyJ6TR5ULA6Y8UDvbzEpccWRPpnoYmPb2KYd1e3X2kzRDLGCi+V8QQyXosxU0lsii4jdZEzM RVTWsaQOkBrQ== X-IronPort-AV: E=McAfee;i="6000,8403,9676"; a="127995985" X-IronPort-AV: E=Sophos;i="5.75,330,1589266800"; d="scan'208";a="127995985" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jul 2020 19:02:49 -0700 IronPort-SDR: RsGnmYrJNN/nwicJZSPWIRYeYu1o6bo7C2+LL+tBTzCMp6wYdRewXHyQwvPKSDoMo7M9hII9K0 a8lTtGRN/dTw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,330,1589266800"; d="scan'208";a="314802296" Received: from dpdk51.sh.intel.com ([10.67.111.82]) by orsmga008.jf.intel.com with ESMTP; 08 Jul 2020 19:02:47 -0700 From: Qi Zhang To: thomas@monjalon.net Cc: dev@dpdk.org, ferruh.yigit@intel.com, arybchenko@solarflare.com, Junfeng Guo Date: Thu, 9 Jul 2020 10:06:43 +0800 Message-Id: <20200709020643.18415-3-qi.z.zhang@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20200709020643.18415-1-qi.z.zhang@intel.com> References: <20200708133703.48945-1-qi.z.zhang@intel.com> <20200709020643.18415-1-qi.z.zhang@intel.com> Subject: [dpdk-dev] [PATCH v6 3/3] net/ice: add RSS support for IPv6 prefix X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Junfeng Guo RSS for IPv6 prefix fields are supported in this patch, so that we can use prefixes instead of full IPv6 address for RSS. These prefixes include the first 32, 48, 64 bits of both SRC and DST IPv6 address. Signed-off-by: Junfeng Guo Acked-by: Qi Zhang --- drivers/net/ice/ice_hash.c | 207 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c index a10734af0..0315c3015 100644 --- a/drivers/net/ice/ice_hash.c +++ b/drivers/net/ice/ice_hash.c @@ -462,6 +462,21 @@ struct ice_hash_match_type ice_hash_type_list[] = { {ETH_RSS_IPV6 | ETH_RSS_L3_DST_ONLY, BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_DA)}, {ETH_RSS_IPV6, ICE_FLOW_HASH_IPV6}, + {ETH_RSS_IPV6_PRE32 | ETH_RSS_L3_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA)}, + {ETH_RSS_IPV6_PRE32 | ETH_RSS_L3_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_DA)}, + {ETH_RSS_IPV6_PRE32, ICE_FLOW_HASH_IPV6_PRE32}, + {ETH_RSS_IPV6_PRE48 | ETH_RSS_L3_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA)}, + {ETH_RSS_IPV6_PRE48 | ETH_RSS_L3_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_DA)}, + {ETH_RSS_IPV6_PRE48, ICE_FLOW_HASH_IPV6_PRE48}, + {ETH_RSS_IPV6_PRE64 | ETH_RSS_L3_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA)}, + {ETH_RSS_IPV6_PRE64 | ETH_RSS_L3_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_DA)}, + {ETH_RSS_IPV6_PRE64, ICE_FLOW_HASH_IPV6_PRE64}, {ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA) | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) | @@ -493,6 +508,69 @@ struct ice_hash_match_type ice_hash_type_list[] = { {ETH_RSS_NONFRAG_IPV6_UDP, ICE_HASH_UDP_IPV6 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)}, + {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA) | + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_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_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_UDP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_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_PRE32_DA)}, + {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE32_UDP | ETH_RSS_L4_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)}, + {ETH_RSS_IPV6_PRE32_UDP, ICE_HASH_UDP_IPV6_PRE32}, + {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA) | + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_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_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_UDP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_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_PRE48_DA)}, + {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE48_UDP | ETH_RSS_L4_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)}, + {ETH_RSS_IPV6_PRE48_UDP, ICE_HASH_UDP_IPV6_PRE48}, + {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) | + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_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_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_UDP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_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_PRE64_DA)}, + {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE64_UDP | ETH_RSS_L4_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_UDP_DST_PORT)}, + {ETH_RSS_IPV6_PRE64_UDP, ICE_HASH_UDP_IPV6_PRE64}, {ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA) | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) | @@ -522,6 +600,69 @@ struct ice_hash_match_type ice_hash_type_list[] = { {ETH_RSS_NONFRAG_IPV6_TCP, ICE_HASH_TCP_IPV6 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)}, + {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA) | + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_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_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_TCP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_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_PRE32_DA)}, + {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE32_TCP | ETH_RSS_L4_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)}, + {ETH_RSS_IPV6_PRE32_TCP, ICE_HASH_TCP_IPV6_PRE32}, + {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA) | + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_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_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_TCP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_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_PRE48_DA)}, + {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE48_TCP | ETH_RSS_L4_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)}, + {ETH_RSS_IPV6_PRE48_TCP, ICE_HASH_TCP_IPV6_PRE48}, + {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) | + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_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_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_TCP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_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_PRE64_DA)}, + {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE64_TCP | ETH_RSS_L4_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_TCP_DST_PORT)}, + {ETH_RSS_IPV6_PRE64_TCP, ICE_HASH_TCP_IPV6_PRE64}, {ETH_RSS_NONFRAG_IPV6_SCTP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_SA) | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT) | @@ -551,6 +692,69 @@ struct ice_hash_match_type ice_hash_type_list[] = { {ETH_RSS_NONFRAG_IPV6_SCTP, ICE_HASH_SCTP_IPV6 | BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PROT)}, + {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE32_SA) | + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_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_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_SCTP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_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_PRE32_DA)}, + {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE32_SCTP | ETH_RSS_L4_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)}, + {ETH_RSS_IPV6_PRE32_SCTP, ICE_HASH_SCTP_IPV6_PRE32}, + {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE48_SA) | + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_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_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_SCTP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_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_PRE48_DA)}, + {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE48_SCTP | ETH_RSS_L4_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)}, + {ETH_RSS_IPV6_PRE48_SCTP, ICE_HASH_SCTP_IPV6_PRE48}, + {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_IPV6_PRE64_SA) | + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L4_DST_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_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_SCTP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_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_PRE64_DA)}, + {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L4_SRC_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_SRC_PORT)}, + {ETH_RSS_IPV6_PRE64_SCTP | ETH_RSS_L4_DST_ONLY, + BIT_ULL(ICE_FLOW_FIELD_IDX_SCTP_DST_PORT)}, + {ETH_RSS_IPV6_PRE64_SCTP, ICE_HASH_SCTP_IPV6_PRE64}, }; static struct ice_flow_engine ice_hash_engine = { @@ -716,6 +920,9 @@ ice_hash_parse_action(struct ice_pattern_match_item *pattern_match_item, combine_type = ETH_RSS_L2_SRC_ONLY | ETH_RSS_L2_DST_ONLY | + RTE_ETH_RSS_L3_PRE32 | + RTE_ETH_RSS_L3_PRE48 | + RTE_ETH_RSS_L3_PRE64 | ETH_RSS_L3_SRC_ONLY | ETH_RSS_L3_DST_ONLY | ETH_RSS_L4_SRC_ONLY |