From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 7ACEBA0545;
	Wed, 15 Jul 2020 13:40:51 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 27E2A1BED0;
	Wed, 15 Jul 2020 13:40:50 +0200 (CEST)
Received: from huawei.com (szxga06-in.huawei.com [45.249.212.32])
 by dpdk.org (Postfix) with ESMTP id 6ED221BE8E
 for <dev@dpdk.org>; Wed, 15 Jul 2020 13:40:48 +0200 (CEST)
Received: from DGGEMS401-HUB.china.huawei.com (unknown [172.30.72.59])
 by Forcepoint Email with ESMTP id F3AB66FAED26063327F4;
 Wed, 15 Jul 2020 19:40:46 +0800 (CST)
Received: from [127.0.0.1] (10.67.103.119) by DGGEMS401-HUB.china.huawei.com
 (10.3.19.201) with Microsoft SMTP Server id 14.3.487.0; Wed, 15 Jul 2020
 19:40:38 +0800
To: Phil Yang <Phil.Yang@arm.com>, "wenzhuo.lu@intel.com"
 <wenzhuo.lu@intel.com>, "beilei.xing@intel.com" <beilei.xing@intel.com>,
 "bernard.iremonger@intel.com" <bernard.iremonger@intel.com>,
 "adrien.mazarguil@6wind.com" <adrien.mazarguil@6wind.com>,
 "ferruh.yigit@intel.com" <ferruh.yigit@intel.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, "linuxarm@huawei.com"
 <linuxarm@huawei.com>, nd <nd@arm.com>
References: <1594302456-48256-1-git-send-email-oulijun@huawei.com>
 <VE1PR08MB4640BF90E007CA8576FFFFEFE97E0@VE1PR08MB4640.eurprd08.prod.outlook.com>
From: oulijun <oulijun@huawei.com>
Message-ID: <8b0132df-19b7-508b-3484-56bc1b16c416@huawei.com>
Date: Wed, 15 Jul 2020 19:40:34 +0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
 Thunderbird/52.1.0
MIME-Version: 1.0
In-Reply-To: <VE1PR08MB4640BF90E007CA8576FFFFEFE97E0@VE1PR08MB4640.eurprd08.prod.outlook.com>
Content-Type: text/plain; charset="gbk"; format=flowed
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.67.103.119]
X-CFilter-Loop: Reflected
Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix the default RSS key
 configuration
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>



在 2020/7/15 15:14, Phil Yang 写道:
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Lijun Ou
>> Sent: Thursday, July 9, 2020 9:48 PM
>> To: wenzhuo.lu@intel.com; beilei.xing@intel.com;
>> bernard.iremonger@intel.com; adrien.mazarguil@6wind.com;
>> ferruh.yigit@intel.com
>> Cc: dev@dpdk.org; linuxarm@huawei.com
>> Subject: [dpdk-dev] [PATCH] app/testpmd: fix the default RSS key
>> configuration
>>
>> When an user runs a flow create cmd to configure an RSS rule
>> without specifying the empty rss actions in testpmd, this mean
>> that the flow gets the default RSS functions. However, the
>> testpmd is not set the default RSS key incorrectly when RSS key
>> is specified in flow create cmd.
> 
> Hi Lijun,
> 
> I think it works.
> When we create an RSS flow rule which doesn't specify any 'rss-hash-key', the 'rss-hash-key' will be updated with the default key.
> 
> Step 1:
> testpmd> show port 0 rss-hash key
> RSS functions:
>   all ipv4-frag ipv4-other ipv6-frag ipv6-other ip
> RSS key:
> 4439796BB54C5023B675EA5B124F9F30B8A2C03DDFDC4D02A08C9B334AF64A4C05C6FA343958D8557D99583AE138C92E81150366
> 
> Step 2:
> testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end queues end / end
> Flow rule #0 created
> 
> Step 3:
> testpmd> show port 0 rss-hash key
> RSS functions:
>   all ipv4-udp udp
> RSS key:
> 74657374706D6427732064656661756C74205253532068617368206B65792C206F7665727269646520697420666F722062657474
> 
> 
> Thanks,
> Phil
>>
Yes, However, it is not the default value that users use when testpmd 
starts. This may mislead users. When the driver is initialized, the 
default key used by the driver is provided for users. The key varies 
according to the DPDK vendor.However, after the DPDK is initialized, if 
the user runs the flow create command without specifying the rss key, 
the driver obtains another default key value, which may be different 
from the default value expected by the user.

Thanks
Lijun Ou
>> Now, it uses rte_eth_dev_rss_hash_conf_get to correctly the
>> default rss key.
>>
>> Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Lijun Ou <oulijun@huawei.com>
>> ---
>>   app/test-pmd/cmdline_flow.c | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
>> index 4e2006c..7eddde4 100644
>> --- a/app/test-pmd/cmdline_flow.c
>> +++ b/app/test-pmd/cmdline_flow.c
>> @@ -4168,6 +4168,7 @@ parse_vc_action_rss(struct context *ctx, const
>> struct token *token,
>>   		action_rss_data->queue[i] = i;
>>   	if (!port_id_is_invalid(ctx->port, DISABLED_WARN) &&
>>   	    ctx->port != (portid_t)RTE_PORT_ALL) {
>> +		struct rte_eth_rss_conf rss_conf = {0};
>>   		struct rte_eth_dev_info info;
>>   		int ret2;
>>
>> @@ -4178,6 +4179,13 @@ parse_vc_action_rss(struct context *ctx, const
>> struct token *token,
>>   		action_rss_data->conf.key_len =
>>   			RTE_MIN(sizeof(action_rss_data->key),
>>   				info.hash_key_size);
>> +
>> +		rss_conf.rss_key_len = sizeof(action_rss_data->key);
>> +		rss_conf.rss_key = action_rss_data->key;
>> +		ret2 = rte_eth_dev_rss_hash_conf_get(ctx->port,
>> &rss_conf);
>> +		if (ret2 != 0)
>> +			return ret2;
>> +		action_rss_data->conf.key = rss_conf.rss_key;
>>   	}
>>   	action->conf = &action_rss_data->conf;
>>   	return ret;
>> --
>> 2.7.4
> 
> 
> .
>