Skip to content

Commit 8b4514b

Browse files
Shani Peretzshemminger
authored andcommitted
net/bonding: fix MAC address propagation in 802.3ad mode
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: 46fb436 ("bond: add mode 4") Cc: [email protected] Signed-off-by: Shani Peretz <[email protected]>
1 parent c036aed commit 8b4514b

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

drivers/net/bonding/rte_eth_bond_8023ad.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1186,6 +1186,14 @@ bond_mode_8023ad_mac_address_update(struct rte_eth_dev *bond_dev)
11861186
continue;
11871187

11881188
rte_ether_addr_copy(&internals->mode4.mac_addr, &member->actor.system);
1189+
1190+
/* Update physical NIC hardware MAC address to match bonding device. */
1191+
if (rte_eth_dev_default_mac_addr_set(member_id, &internals->mode4.mac_addr) != 0) {
1192+
RTE_BOND_LOG(ERR,
1193+
"Failed to update MAC address on member port %u",
1194+
member_id);
1195+
}
1196+
11891197
/* Do nothing if this port is not an aggregator. In other case
11901198
* Set NTT flag on every port that use this aggregator. */
11911199
if (member->aggregator_port_id != member_id)

0 commit comments

Comments
 (0)