From patchwork Mon Nov 2 11:55:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simei Su X-Patchwork-Id: 83397 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 3E0D4A04E7; Mon, 2 Nov 2020 13:04:18 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 19CA2C86A; Mon, 2 Nov 2020 13:04:17 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 1037CC842 for ; Mon, 2 Nov 2020 13:04:15 +0100 (CET) IronPort-SDR: R5uX3+2HzFF7+GJ3wQ4XgboXTMHqO8DmSE/251/oFft5rjpb6LIuDu5t6bwV272tb9T73V1BtL s+77PNQitXWA== X-IronPort-AV: E=McAfee;i="6000,8403,9792"; a="230504484" X-IronPort-AV: E=Sophos;i="5.77,444,1596524400"; d="scan'208";a="230504484" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2020 04:04:13 -0800 IronPort-SDR: njm3ji0yJb4ty7mI1Sx3wZEGUo9HGWxMWt2PeNTjtV7ljYOlkMnjmid7lfDghnJbOYeXWPqIac NpMorEgutZDw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,444,1596524400"; d="scan'208";a="537994545" Received: from unknown (HELO npg-dpdk-cvl-simeisu-118d193.sh.intel.com) ([10.67.119.195]) by orsmga005.jf.intel.com with ESMTP; 02 Nov 2020 04:04:12 -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:55:47 +0800 Message-Id: <20201102115547.262237-1-simei.su@intel.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20201102113948.259870-1-simei.su@intel.com> References: <20201102113948.259870-1-simei.su@intel.com> Subject: [dpdk-dev] [PATCH v4] 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 v4: * Simplify code to be more readable. v3: * Correct invalid case. v2: * Move invalid check into "iavf_any_invalid_rss_type". Acked-by: Qi Zhang --- drivers/net/iavf/iavf_hash.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index be821b6..915b7c5 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -834,10 +834,21 @@ 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 rss_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 (rss_func == RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ) { + if (rss_type & (ETH_RSS_L3_SRC_ONLY | ETH_RSS_L3_DST_ONLY | + ETH_RSS_L4_SRC_ONLY | ETH_RSS_L4_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 +928,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,