[PATCH 2/2] net/i40e: program default RSS RETA at port configure

Ciara Loftus <[email protected]>
Newsgroups org.dpdk.dev
Message-ID <[email protected]>
Currently the default RSS redirection table is only programmed
when the port is started, in `i40e_dev_rx_init()`. Between
`rte_eth_dev_configure()` and `rte_eth_dev_start()` the table holds a
stale value, so querying it with `rte_eth_dev_rss_reta_query()` reports
entries spread over the hardware default queue count instead of the
number of Rx queues the port was just configured with.

Program the default table in `i40e_dev_configure()`, where the Rx queue
count is already known, so a query before start reflects the configured
queues. VMDQ queue counts aren't known until queue setup, so that case is
still handled at start.

Fixes: 4861cde46116 ("i40e: new poll mode driver")
Cc: [email protected]

Signed-off-by: Ciara Loftus <[email protected]>
---
 drivers/net/intel/i40e/i40e_ethdev.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/intel/i40e/i40e_ethdev.c b/drivers/net/intel/i40e/i40e_ethdev.c
index 3de3423634..e84c9ea857 100644
--- a/drivers/net/intel/i40e/i40e_ethdev.c
+++ b/drivers/net/intel/i40e/i40e_ethdev.c
@@ -1995,6 +1995,13 @@ i40e_dev_configure(struct rte_eth_dev *dev)
 	/* A new configuration reverts the RETA to the driver default. */
 	pf->adapter->rss_reta_updated = 0;
 
+	/* Program the default RETA now while the Rx queue count is known, so that
+	 * a query before the port is started reflects the configured queues.
+	 */
+	ret = i40e_pf_reset_rss_reta(pf);
+	if (ret)
+		return ret;
+
 	ret = i40e_dev_init_vlan(dev);
 	if (ret < 0)
 		goto err;
-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.