patch 'net/bonding: avoid RSS RETA update in flow isolation mode' has been queued to stable release 22.11.9

luca.boccassi at gmail.com luca.boccassi at gmail.com
Mon Jul 14 17:11:09 CEST 2025


Hi,

FYI, your patch has been queued to stable release 22.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/16/25. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/a82211e6288953a2c7c14a4305f62a63993ce00a

Thanks.

Luca Boccassi

---
>From a82211e6288953a2c7c14a4305f62a63993ce00a Mon Sep 17 00:00:00 2001
From: Madhuker Mythri <madhuker.mythri at oracle.com>
Date: Fri, 4 Jul 2025 19:20:31 +0530
Subject: [PATCH] net/bonding: avoid RSS RETA update in flow isolation mode

[ upstream commit a0000859ffbaaaf90bbb9c0f2f5bb7a3d4f5bc9f ]

In bonding PMD, member_start() function checks whether RSS(mq_mode) is
enabled and then calling the RSS rte_eth_dev_rss_reta_update() API, which
is returning error in-case of device configured in flow isolation-mode.
When the device configured with flow isolation mode RSS reta update is not
required and the API was not supported. For example in-case of mlx5 PMD,
RSS reta update API was not supported, when the device is configured in
flow isolation-mode.

So, added check to verify if the device is configured in flow-isolation
mode, then do not call the rte_eth_dev_rss_reta_update() API.

Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")

Signed-off-by: Madhuker Mythri <madhuker.mythri at oracle.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 0e6f3aa42b..9bcca18a45 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1901,12 +1901,13 @@ slave_start(struct rte_eth_dev *bonded_eth_dev,
 		}
 	}
 
-	/* If RSS is enabled for bonding, synchronize RETA */
-	if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
+	/*
+	 * If flow-isolation is not enabled, then check whether RSS is enabled for
+	 * bonding, synchronize RETA
+	 */
+	if (internals->flow_isolated_valid == 0 &&
+		(bonded_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS)) {
 		int i;
-		struct bond_dev_private *internals;
-
-		internals = bonded_eth_dev->data->dev_private;
 
 		for (i = 0; i < internals->slave_count; i++) {
 			if (internals->slaves[i].port_id == slave_eth_dev->data->port_id) {
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-07-14 16:09:41.231343442 +0100
+++ 0014-net-bonding-avoid-RSS-RETA-update-in-flow-isolation-.patch	2025-07-14 16:09:40.712448986 +0100
@@ -1 +1 @@
-From a0000859ffbaaaf90bbb9c0f2f5bb7a3d4f5bc9f Mon Sep 17 00:00:00 2001
+From a82211e6288953a2c7c14a4305f62a63993ce00a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a0000859ffbaaaf90bbb9c0f2f5bb7a3d4f5bc9f ]
+
@@ -18 +19,0 @@
-Cc: stable at dpdk.org
@@ -26 +27 @@
-index 83339bae3d..4906701a95 100644
+index 0e6f3aa42b..9bcca18a45 100644
@@ -29 +30 @@
-@@ -1904,12 +1904,13 @@ member_start(struct rte_eth_dev *bonding_eth_dev,
+@@ -1901,12 +1901,13 @@ slave_start(struct rte_eth_dev *bonded_eth_dev,
@@ -34 +35 @@
--	if (bonding_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
+-	if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
@@ -40 +41 @@
-+		(bonding_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS)) {
++		(bonded_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS)) {
@@ -44 +45 @@
--		internals = bonding_eth_dev->data->dev_private;
+-		internals = bonded_eth_dev->data->dev_private;
@@ -46,2 +47,2 @@
- 		for (i = 0; i < internals->member_count; i++) {
- 			if (internals->members[i].port_id == member_port_id) {
+ 		for (i = 0; i < internals->slave_count; i++) {
+ 			if (internals->slaves[i].port_id == slave_eth_dev->data->port_id) {


More information about the stable mailing list