[PATCH] net/cpfl: fix fail to re-configure RSS

beilei.xing at intel.com beilei.xing at intel.com
Fri Jun 16 14:00:03 CEST 2023


From: Beilei Xing <beilei.xing at intel.com>

Currently, if launch testpmd with multiple queues and re-configure
rxq with 'port config all rxq 1', Rx queue 0 may not receive packets.
that's because RSS lookup tale is not re-configured when Rxq number
is 1.
Although Rxq number is 1 and multi queue mode is RTE_ETH_MQ_RX_NONE,
cpfl PMD should init RSS to allow RSS re-configuration.

Fixes: cfbc66551a14 ("net/cpfl: support RSS")

Signed-off-by: Beilei Xing <beilei.xing at intel.com>
---
 drivers/net/cpfl/cpfl_ethdev.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
index e96bf0a82e..9755ffe508 100644
--- a/drivers/net/cpfl/cpfl_ethdev.c
+++ b/drivers/net/cpfl/cpfl_ethdev.c
@@ -712,17 +712,15 @@ cpfl_dev_configure(struct rte_eth_dev *dev)
 		return -EINVAL;
 	}
 
-	if (base->caps.rss_caps != 0 && dev->data->nb_rx_queues != 0 &&
-		conf->rxmode.mq_mode == RTE_ETH_MQ_RX_RSS) {
+	if (base->caps.rss_caps != 0 && dev->data->nb_rx_queues != 0) {
 		ret = cpfl_init_rss(vport);
 		if (ret != 0) {
 			PMD_INIT_LOG(ERR, "Failed to init rss");
 			return ret;
 		}
-	} else {
+	} else if (conf->rxmode.mq_mode == RTE_ETH_MQ_RX_RSS) {
 		PMD_INIT_LOG(ERR, "RSS is not supported.");
-		if (conf->rxmode.mq_mode == RTE_ETH_MQ_RX_RSS)
-			return -ENOTSUP;
+		return -ENOTSUP;
 	}
 
 	vport->max_pkt_len =
-- 
2.34.1



More information about the dev mailing list