patch 'net/bonding: fix MAC address propagation in 802.3ad mode' has been queued to stable release 22.11.11

luca.boccassi at gmail.com luca.boccassi at gmail.com
Wed Nov 12 17:52:44 CET 2025


Hi,

FYI, your patch has been queued to stable release 22.11.11

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/14/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/171bfa4f2e8f727a334a54a76386f809a2b97955

Thanks.

Luca Boccassi

---
>From 171bfa4f2e8f727a334a54a76386f809a2b97955 Mon Sep 17 00:00:00 2001
From: Shani Peretz <shperetz at nvidia.com>
Date: Wed, 5 Nov 2025 20:01:35 +0200
Subject: [PATCH] net/bonding: fix MAC address propagation in 802.3ad mode

[ upstream commit 8a2f21630658a7f3ff5c7564b9a2bcb0b681fb55 ]

When changing the MAC address of a bonding device in 802.3ad mode,
the new MAC was not propagated to the physical member NIC.
This caused the physical NIC to drop all data packets sent to the
new MAC address, resulting in connectivity loss.

It happens because the MAC update function only updated the
LACP layer (actor.system) but not the physical NIC hardware MAC
addresses.

This fix adds a call to rte_eth_dev_default_mac_addr_set() to update
the hardware MAC on each member port.

Bugzilla ID: 1158
Fixes: 46fb43683679 ("bond: add mode 4")

Signed-off-by: Shani Peretz <shperetz at nvidia.com>
---
 drivers/net/bonding/rte_eth_bond_8023ad.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c
index 2a81ab5bf3..8ac51a3573 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.c
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
@@ -1183,6 +1183,14 @@ bond_mode_8023ad_mac_address_update(struct rte_eth_dev *bond_dev)
 			continue;
 
 		rte_ether_addr_copy(&internals->mode4.mac_addr, &slave->actor.system);
+
+		/* Update physical NIC hardware MAC address to match bonding device. */
+		if (rte_eth_dev_default_mac_addr_set(slave_id, &internals->mode4.mac_addr) != 0) {
+			RTE_BOND_LOG(ERR,
+				"Failed to update MAC address on member port %u",
+				slave_id);
+		}
+
 		/* Do nothing if this port is not an aggregator. In other case
 		 * Set NTT flag on every port that use this aggregator. */
 		if (slave->aggregator_port_id != slave_id)
-- 
2.47.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-11-12 16:20:42.085206983 +0000
+++ 0030-net-bonding-fix-MAC-address-propagation-in-802.3ad-m.patch	2025-11-12 16:20:40.927716946 +0000
@@ -1 +1 @@
-From 8a2f21630658a7f3ff5c7564b9a2bcb0b681fb55 Mon Sep 17 00:00:00 2001
+From 171bfa4f2e8f727a334a54a76386f809a2b97955 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8a2f21630658a7f3ff5c7564b9a2bcb0b681fb55 ]
+
@@ -20 +21,0 @@
-Cc: stable at dpdk.org
@@ -28 +29 @@
-index 1677615435..ba88f6d261 100644
+index 2a81ab5bf3..8ac51a3573 100644
@@ -31 +32 @@
-@@ -1186,6 +1186,14 @@ bond_mode_8023ad_mac_address_update(struct rte_eth_dev *bond_dev)
+@@ -1183,6 +1183,14 @@ bond_mode_8023ad_mac_address_update(struct rte_eth_dev *bond_dev)
@@ -34 +35 @@
- 		rte_ether_addr_copy(&internals->mode4.mac_addr, &member->actor.system);
+ 		rte_ether_addr_copy(&internals->mode4.mac_addr, &slave->actor.system);
@@ -37 +38 @@
-+		if (rte_eth_dev_default_mac_addr_set(member_id, &internals->mode4.mac_addr) != 0) {
++		if (rte_eth_dev_default_mac_addr_set(slave_id, &internals->mode4.mac_addr) != 0) {
@@ -40 +41 @@
-+				member_id);
++				slave_id);
@@ -45 +46 @@
- 		if (member->aggregator_port_id != member_id)
+ 		if (slave->aggregator_port_id != slave_id)


More information about the stable mailing list