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 <haij...@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
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 */
>