net/bonding: fix RSS inconsistency between ports
authorHuisong Li <lihuisong@huawei.com>
Wed, 8 Jun 2022 11:45:47 +0000 (19:45 +0800)
committerAndrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Thu, 9 Jun 2022 08:47:03 +0000 (10:47 +0200)
Currently, RSS configuration of slave is set only when RSS is enabled for
bonded port. If RSS is enabled for the slaves port before adding to the
bonded port with disabling RSS, it will run into that the RSS enabled state
of bonded and slaves port is inconsistent after starting bonded port.
So the RSS configuration of slave should also be set when RSS is disabled
for bonded port.

Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
drivers/net/bonding/rte_eth_bond_pmd.c

index ace8f8b..73e6972 100644 (file)
@@ -1707,6 +1707,12 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
                                bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf;
                slave_eth_dev->data->dev_conf.rxmode.mq_mode =
                                bonded_eth_dev->data->dev_conf.rxmode.mq_mode;
+       } else {
+               slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len = 0;
+               slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL;
+               slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf = 0;
+               slave_eth_dev->data->dev_conf.rxmode.mq_mode =
+                               bonded_eth_dev->data->dev_conf.rxmode.mq_mode;
        }
 
        slave_eth_dev->data->dev_conf.rxmode.mtu =