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 <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 > + * 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. > + */ > + 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." > + * 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 */