[PATCH v5 01/40] ethdev: overwrite some comment related to RSS
Jie Hai
haijie1 at huawei.com
Thu Oct 12 04:03:06 CEST 2023
On 2023/10/12 0:31, Ferruh Yigit wrote:
> On 10/11/2023 10:27 AM, 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 <haijie1 at huawei.com>
>> ---
>> 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
>> + * the hardware. And only when rss_key_len is not zero, the 'rss_key'
>> + * is valid.
>> + * If used to configure, rss_key_len indicates the length of the
>> + * 'rss_key' if 'rss_key' is not empty.
>>
>
> Ahh, different APIs have different expectations :(
> Can you please explicitly name the APIs, instead of "to query", "to
> configure"?
>
> And there is a note in original comment that *rss_key_len* is only
> checked by i40e, rest assume this value as 40 bytes. New comment doesn't
> have it.
>
A new version is show below:
* In rte_eth_dev_rss_hash_conf_get(), the *rss_key_len* indicates the
* size of rss key of the hardware. And only when *rss_key_len* is not
* zero, the *rss_key* is valid.
*
* In rte_eth_dev_rss_hash_update() or rte_eth_dev_configure(), the
* *rss_key_len* indicates the length of the *rss_key* in bytes of
* the array pointed by *rss_key*. Drivers are free to ignore the
* *rss_key_len* and assume key length is 40 bytes.
Please check it. Thanks
>
>> + */
>> + 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_*).
>>
>
> There is something doesn't sound right from language perspective,
> perhaps someone whose native language is English can help, what about:
>
> "Indicates the type of packets or the specific part of packets to which
> RSS hashing is to be applied."
>
>
Better, I will change it.
>> + * 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.
>> + */
>> RTE_ETH_HASH_FUNCTION_DEFAULT = 0,
>> RTE_ETH_HASH_FUNCTION_TOEPLITZ, /**< Toeplitz */
>> RTE_ETH_HASH_FUNCTION_SIMPLE_XOR, /**< Simple XOR */
>
> .
More information about the dev
mailing list