RSS don't work when bond_ethdev_configure called before rte_eth_bond_slave_add 
in DPDK21.11.

e.g.:

dont't work(examples/bond/main.c):
rte_eth_bond_create()
rte_eth_dev_configure()
rte_eth_bond_slave_add()
rte_eth_dev_start()

work(testpmd):
rte_eth_bond_create()
rte_eth_bond_slave_add()
rte_eth_dev_configure()
rte_eth_dev_start()

Signed-off-by: Yu Wenjun <yuwen...@cmss.chinamobile.com>
Acked-by: Min Hu (Connor) <humi...@huawei.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c 
b/drivers/net/bonding/rte_eth_bond_pmd.c
index 84f4900ee5..31bcee15cf 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -3504,6 +3504,11 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
        if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
                struct rte_eth_rss_conf *rss_conf =
                        &dev->data->dev_conf.rx_adv_conf.rss_conf;
+
+               if (internals->rss_key_len == 0) {
+                       internals->rss_key_len = sizeof(default_rss_key);
+               }
+
                if (rss_conf->rss_key != NULL) {
                        if (internals->rss_key_len > rss_conf->rss_key_len) {
                                RTE_BOND_LOG(ERR, "Invalid rss key length(%u)",
-- 
2.32.0.windows.1



Reply via email to