From 85c4ffffe32996fc262dd6f69d0ce272ae8e8350 Mon Sep 17 00:00:00 2001
From: Yu Wenjun <yuwenjun_yewu@cmss.chinamobile.com>
Date: Wed, 12 Jan 2022 15:01:10 +0800
Subject: [PATCH] net/bonding: fix RSS not work for bonding
RSS don't work when upgrade to DPDK21.11.
e.g.:
examples/bond/main.c:
conf:
static struct rte_eth_conf port_conf = {
.rxmode = {
.mq_mode = RTE_ETH_MQ_RX_NONE,
.split_hdr_size = 0,
},
.rx_adv_conf = {
.rss_conf = {
.rss_key = NULL,
.rss_hf = RTE_ETH_RSS_IP,
},
},
.txmode = {
.mq_mode = RTE_ETH_MQ_TX_NONE,
},
};
call chain:
rte_eth_bond_create()->rte_eth_dev_configure()->rte_eth_bond_slave_add()->rte_eth_dev_start()
Signed-off-by: Yu Wenjun <yuwenjun_yewu@cmss.chinamobile.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