From patchwork Mon Nov 2 11:39:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simei Su X-Patchwork-Id: 83396 X-Patchwork-Delegate: qi.z.zhang@intel.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 00E35A0521; Mon, 2 Nov 2020 12:48:20 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C0419C810; Mon, 2 Nov 2020 12:48:19 +0100 (CET) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 32679C802 for ; Mon, 2 Nov 2020 12:48:17 +0100 (CET) IronPort-SDR: 6ADMiAPssPJZvHGC2JOlgV3wKcL7kp0QUpf4i+tUHBjY51SqjC6swYAAyYLN8a1ndJisvEvRQ+ qJMJcCoecDsg== X-IronPort-AV: E=McAfee;i="6000,8403,9792"; a="233040735" X-IronPort-AV: E=Sophos;i="5.77,444,1596524400"; d="scan'208";a="233040735" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2020 03:48:15 -0800 IronPort-SDR: 54HV1rap1JWSbV5wXfOCgpNQKj3EfVOb46fEWtIlUuzeBirUB/wTZao6MTokz8wXh37a1SeZR7 OIhg/8HDXpUA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,444,1596524400"; d="scan'208";a="352739564" Received: from unknown (HELO npg-dpdk-cvl-simeisu-118d193.sh.intel.com) ([10.67.119.195]) by fmsmga004.fm.intel.com with ESMTP; 02 Nov 2020 03:48:13 -0800 From: Simei Su To: qi.z.zhang@intel.com Cc: dev@dpdk.org, junfeng.guo@intel.com, jia.guo@intel.com, Simei Su Date: Mon, 2 Nov 2020 19:39:48 +0800 Message-Id: <20201102113948.259870-1-simei.su@intel.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20201102020419.149961-1-simei.su@intel.com> References: <20201102020419.149961-1-simei.su@intel.com> Subject: [dpdk-dev] [PATCH v3] net/iavf: fix invalid RSS type 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" When a RSS rule with symmetric hash function, the RSS type shouldn't carry with SRC/DST_ONLY. This patch adds invalid RSS type check for the case. Fixes: 91f27b2e39ab ("net/iavf: refactor RSS") Signed-off-by: Simei Su v3: * correct invalid case. v2: * move invalid check into "iavf_any_invalid_rss_type". --- drivers/net/iavf/iavf_hash.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index be821b6..c7fef5b 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -834,10 +834,22 @@ static struct rss_attr_type rss_attr_to_valid_type[] = { }; static bool -iavf_any_invalid_rss_type(uint64_t rss_type, uint64_t allow_rss_type) +iavf_any_invalid_rss_type(enum rte_eth_hash_function func, + uint64_t rss_type, uint64_t allow_rss_type) { uint32_t i; + /** + * Check if SRC/DST_ONLY is set for SYMMETRIC_TOEPLITZ + * hash function. + */ + if (func == RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ) { + if (rss_type & (VALID_RSS_ATTR & + ~(RTE_ETH_RSS_L3_PRE64 | ETH_RSS_L2_SRC_ONLY | + ETH_RSS_L2_DST_ONLY))) + return true; + } + /* check invalid combination */ for (i = 0; i < RTE_DIM(invalid_rss_comb); i++) { if (__builtin_popcountll(rss_type & invalid_rss_comb[i]) > 1) @@ -917,7 +929,7 @@ iavf_hash_parse_action(struct iavf_pattern_match_item *match_item, */ rss_type = rte_eth_rss_hf_refine(rss_type); - if (iavf_any_invalid_rss_type(rss_type, + if (iavf_any_invalid_rss_type(rss->func, rss_type, match_item->input_set_mask)) return rte_flow_error_set(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION,