Hi Jei, > -----Original Message----- > From: Jie Hai <haij...@huawei.com> > Sent: Friday, October 27, 2023 12:28 PM > > 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 | 33 ++++++++++++++++++--------------- > lib/ethdev/rte_flow.h | 1 + > 2 files changed, 19 insertions(+), 15 deletions(-) > > diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h > index 2fd3cd808dbf..37fd5afef48a 100644 > --- a/lib/ethdev/rte_ethdev.h > +++ b/lib/ethdev/rte_ethdev.h > @@ -448,24 +448,27 @@ 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. */ > + /** > + * In rte_eth_dev_rss_hash_conf_get(), the *rss_key_len* should be > + * 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 operation returns success. > + * > + * 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.
In the original comment, it is stated that if no RSS key is given rss_key = NULL , then the PMD selects a random hash key, Is this behavior changed? > + */ > + uint8_t *rss_key; > uint8_t rss_key_len; /**< hash key length in bytes. */ > - uint64_t rss_hf; /**< Hash functions to apply - see below. */ > + /** > + * Indicates the type of packets or the specific part of packets to > + * which RSS hashing is to be applied. > + */ > + uint64_t rss_hf; > }; > > /* > diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h > index edefa34c10da..25f1dffd1f30 100644 > --- a/lib/ethdev/rte_flow.h > +++ b/lib/ethdev/rte_flow.h > @@ -3226,6 +3226,7 @@ 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 */ > -- > 2.30.0