From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A3F2A4236B; Thu, 12 Oct 2023 04:47:53 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 64093402BA; Thu, 12 Oct 2023 04:47:53 +0200 (CEST) Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by mails.dpdk.org (Postfix) with ESMTP id CED3E40279 for ; Thu, 12 Oct 2023 04:47:51 +0200 (CEST) Received: from dggpeml100024.china.huawei.com (unknown [172.30.72.57]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4S5YqV5tL0z1kv0r; Thu, 12 Oct 2023 10:43:50 +0800 (CST) Received: from [10.67.121.161] (10.67.121.161) by dggpeml100024.china.huawei.com (7.185.36.115) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Thu, 12 Oct 2023 10:47:49 +0800 Subject: Re: [PATCH v5 01/40] ethdev: overwrite some comment related to RSS To: Jie Hai , , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko , Ori Kam CC: , References: <20230908080030.3837515-1-haijie1@huawei.com> <20231011092805.693171-1-haijie1@huawei.com> <20231011092805.693171-2-haijie1@huawei.com> From: fengchengwen Message-ID: Date: Thu, 12 Oct 2023 10:47:49 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <20231011092805.693171-2-haijie1@huawei.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.67.121.161] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To dggpeml100024.china.huawei.com (7.185.36.115) X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 2023/10/11 17:27, Jie Hai wrote: > 1. overwrite the comments of fields of 'rte_eth_rss_conf'. > 2. Add comments for RTE_ETH_HASH_FUNCTION_DEFAULT. > > Signed-off-by: Jie Hai > --- > lib/ethdev/rte_ethdev.h | 29 ++++++++++++++--------------- > lib/ethdev/rte_flow.h | 3 +++ > 2 files changed, 17 insertions(+), 15 deletions(-) > > diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h > index 8542257721c9..b9e4e21189d2 100644 > --- a/lib/ethdev/rte_ethdev.h > +++ b/lib/ethdev/rte_ethdev.h > @@ -448,24 +448,23 @@ struct rte_vlan_filter_conf { > /** > * A structure used to configure the Receive Side Scaling (RSS) feature > * of an Ethernet port. > - * If not NULL, the *rss_key* pointer of the *rss_conf* structure points > - * to an array holding the RSS key to use for hashing specific header > - * fields of received packets. The length of this array should be indicated > - * by *rss_key_len* below. Otherwise, a default random hash key is used by > - * the device driver. > - * > - * The *rss_key_len* field of the *rss_conf* structure indicates the length > - * in bytes of the array pointed by *rss_key*. To be compatible, this length > - * will be checked in i40e only. Others assume 40 bytes to be used as before. > - * > - * The *rss_hf* field of the *rss_conf* structure indicates the different > - * types of IPv4/IPv6 packets to which the RSS hashing must be applied. > - * Supplying an *rss_hf* equal to zero disables the RSS feature. > */ > struct rte_eth_rss_conf { > - uint8_t *rss_key; /**< If not NULL, 40-byte hash key. */ > + /** > + * If used to query, the'rss_key_len' indicates the size of rss key of add one space in the'rss_key_len' > + * the hardware. And only when rss_key_len is not zero, the 'rss_key' > + * is valid. Actually, there is another condition. When rss_key_len is greater than or equal to the actual key length, the 'rss_key' is valid, most driver's return success even when rss_key_len lower than actual key length. Suggest add there information, could be: If used to query, the 'rss_key_len' should greater than or equal to the hash_key_size which get from rte_eth_dev_info_get() API. and the 'rss_key' should contain at least 'rss_key_len' bytes. If not meet these requirements, the query result is unreliable even the query operation returns success. > + * If used to configure, rss_key_len indicates the length of the > + * 'rss_key' if 'rss_key' is not empty. > + */ > + uint8_t *rss_key; > uint8_t rss_key_len; /**< hash key length in bytes. */ > - uint64_t rss_hf; /**< Hash functions to apply - see below. */ > + /** > + * Indicating which type of packets and which part of the packets > + * to apply for RSS hash, (see RTE_ETH_RSS_*). > + * Setting *rss_hf* to zero disables the RSS feature. > + */ > + uint64_t rss_hf; > }; > > /* > diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h > index b385741fba6d..5d9e3c68af7b 100644 > --- a/lib/ethdev/rte_flow.h > +++ b/lib/ethdev/rte_flow.h > @@ -3227,6 +3227,9 @@ struct rte_flow_query_count { > * Hash function types. > */ > enum rte_eth_hash_function { > + /** > + * DEFAULT means driver decides which hash algorithm to pick. > + */ Suggest one line > RTE_ETH_HASH_FUNCTION_DEFAULT = 0, > RTE_ETH_HASH_FUNCTION_TOEPLITZ, /**< Toeplitz */ > RTE_ETH_HASH_FUNCTION_SIMPLE_XOR, /**< Simple XOR */ >