From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D5229A04C7; Tue, 15 Sep 2020 08:29:42 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D47411C138; Tue, 15 Sep 2020 08:28:27 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 5EE091C12A for ; Tue, 15 Sep 2020 08:28:26 +0200 (CEST) IronPort-SDR: BJ1Kpn3XToaB/1wtmgEBu+U3iZEiU79H3XrYkCL+v+woh34itdUZuwEXmsUf8Mzapus00pAo3C TLJyQLHwXydw== X-IronPort-AV: E=McAfee;i="6000,8403,9744"; a="160141057" X-IronPort-AV: E=Sophos;i="5.76,428,1592895600"; d="scan'208";a="160141057" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2020 23:28:26 -0700 IronPort-SDR: VSgFagZOauVVEVXuRVp9B6chPvuR1BtA2Mr2LVkQvYSuvcIXRkDML8a1qS37lsNonRybVoVSBu C5Kz3208vkCQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,428,1592895600"; d="scan'208";a="345700498" Received: from dpdk-junfengguo-v3.sh.intel.com ([10.67.119.146]) by orsmga007.jf.intel.com with ESMTP; 14 Sep 2020 23:28:24 -0700 From: Junfeng Guo To: qi.z.zhang@intel.com, jingjing.wu@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, junfeng.guo@intel.com Date: Tue, 15 Sep 2020 14:26:09 +0800 Message-Id: <20200915062609.3786061-3-junfeng.guo@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915062609.3786061-1-junfeng.guo@intel.com> References: <20200804123920.485253-1-junfeng.guo@intel.com> <20200915062609.3786061-1-junfeng.guo@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v3 2/2] net/iavf: support RSS for IPv6 prefix 64bit 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" RSS for IPv6 prefix 64bit fields are supported in this patch, so that we can use prefix instead of full IPv6 address for RSS. The prefix here only includes the first 64 bits of both SRC and DST IPv6 address. Signed-off-by: Junfeng Guo --- drivers/net/iavf/iavf_hash.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index d8a4dc8bf..c270daf5f 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -580,7 +580,28 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, } break; case VIRTCHNL_PROTO_HDR_IPV6: + if (rss_type & RTE_ETH_RSS_L3_PRE64) { + REFINE_PROTO_FLD(DEL, IPV6_SRC); + REFINE_PROTO_FLD(DEL, IPV6_DST); + REFINE_PROTO_FLD(ADD, IPV6_PREFIX64_SRC); + REFINE_PROTO_FLD(ADD, IPV6_PREFIX64_DST); + } if (rss_type & + (ETH_RSS_IPV6_PRE64 | + ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_IPV6_PRE64_SCTP)) { + if (rss_type & ETH_RSS_L3_SRC_ONLY) + REFINE_PROTO_FLD(DEL, + IPV6_PREFIX64_DST); + else if (rss_type & ETH_RSS_L3_DST_ONLY) + REFINE_PROTO_FLD(DEL, + IPV6_PREFIX64_SRC); + else if (rss_type & + (ETH_RSS_L4_SRC_ONLY | + ETH_RSS_L4_DST_ONLY)) + hdr->field_selector = 0; + } else if (rss_type & (ETH_RSS_IPV6 | ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_NONFRAG_IPV6_TCP | -- 2.25.1