[v2] net/bonding: fix RSS not work for bonding

Message ID 1642497532-16596-1-git-send-email-yuwenjun@cmss.chinamobile.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series [v2] net/bonding: fix RSS not work for bonding |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-abi-testing success Testing PASS

Commit Message

Yu Wenjun Jan. 18, 2022, 9:18 a.m. UTC
  RSS don't work when bond_ethdev_configure called before
rte_eth_bond_slave_add.

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()

Fixes: 6b1a001ec546 ("net/bonding: fix RSS key length")
Cc: stable@dpdk.org

Signed-off-by: Yu Wenjun <yuwenjun@cmss.chinamobile.com>
---
v2:
- Fixed patch format.

 drivers/net/bonding/rte_eth_bond_pmd.c | 5 +++++
 1 file changed, 5 insertions(+)
  

Comments

Ferruh Yigit Jan. 26, 2022, 3:50 p.m. UTC | #1
On 1/18/2022 9:27 AM, Min Hu (Connor) wrote:

> 在 2022/1/18 17:18, Yu Wenjun 写道:
>> RSS don't work when bond_ethdev_configure called before
>> rte_eth_bond_slave_add.
>>
>> 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()
>>
>> Fixes: 6b1a001ec546 ("net/bonding: fix RSS key length")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Yu Wenjun <yuwenjun@cmss.chinamobile.com>
> 
> Acked-by: Min Hu (Connor) <humin29@huawei.com>
> 

Updated commit log to include rss key length being 0 detail,
based on discussions in the mail list.


Applied to dpdk-next-net/main, thanks.
  

Patch

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 84f4900..31bcee1 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -3504,6 +3504,11 @@  struct bwg_slave {
 	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)",