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 049EDA00C5; Thu, 7 May 2020 11:51:27 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D3C621DB3E; Thu, 7 May 2020 11:51:26 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 5F0311DB34 for ; Thu, 7 May 2020 11:51:24 +0200 (CEST) IronPort-SDR: VVARjyX33Nv2S7CuOJulKojFH0GYvBHMB3aoYFMNlTigjC5F5UE8WWHV2MnCtKk6Zdx/SU7cSv +bSqfGVBIecA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 May 2020 02:51:23 -0700 IronPort-SDR: B5W2ZOtsl7WcHKcL9Ppasz7HKREjDqM9q7yIv+hbPscGzJFdCVu5aPphgi3jcqY8fvISp92UkY Iofkvjf7H/xA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,363,1583222400"; d="scan'208";a="339292777" Received: from intel.sh.intel.com ([10.239.255.18]) by orsmga001.jf.intel.com with ESMTP; 07 May 2020 02:51:22 -0700 From: Shougang Wang To: dev@dpdk.org Cc: beilei.xing@intel.com, Shougang Wang Date: Thu, 7 May 2020 09:44:01 +0000 Message-Id: <20200507094401.54928-1-shougangx.wang@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [PATCH] net/i40e: fix hash enable issue in RSS flow 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" This patch fixes the issue that failed to create an RSS rule with type L2-payload. Fixes: feaae285b342 ("net/i40e: support hash configuration in RSS flow") Signed-off-by: Shougang Wang --- drivers/net/i40e/i40e_flow.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index 7e64ae53a..f5f2f0d5d 100644 --- a/drivers/net/i40e/i40e_flow.c +++ b/drivers/net/i40e/i40e_flow.c @@ -4511,6 +4511,7 @@ i40e_flow_parse_rss_pattern(__rte_unused struct rte_eth_dev *dev, { pattern_fdir_ipv6_tcp, ETH_RSS_NONFRAG_IPV6_TCP }, { pattern_fdir_ipv6_udp, ETH_RSS_NONFRAG_IPV6_UDP }, { pattern_fdir_ipv6_sctp, ETH_RSS_NONFRAG_IPV6_SCTP }, + { pattern_ethertype, ETH_RSS_L2_PAYLOAD }, { pattern_fdir_ipv6_esp, ETH_RSS_ESP }, { pattern_fdir_ipv6_udp_esp, ETH_RSS_ESP }, }; @@ -4544,8 +4545,7 @@ i40e_flow_parse_rss_pattern(__rte_unused struct rte_eth_dev *dev, if (i40e_match_pattern(i40e_rss_pctype_patterns[i].item_array, items)) { p_info->types = i40e_rss_pctype_patterns[i].type; - rte_free(items); - return 0; + break; } } @@ -4580,11 +4580,9 @@ i40e_flow_parse_rss_pattern(__rte_unused struct rte_eth_dev *dev, } break; default: - rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ITEM, - item, - "Not support range"); - return -rte_errno; + p_info->action_flag = 0; + memset(info, 0, sizeof(struct i40e_queue_regions)); + return 0; } } @@ -4640,7 +4638,7 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev, return -rte_errno; } - if (p_info.action_flag) { + if (p_info.action_flag && rss->queue_num) { for (n = 0; n < 64; n++) { if (rss->types & (hf_bit << n)) { conf_info->region[0].hw_flowtype[0] = n; -- 2.17.1