]> www.infradead.org Git - users/jedix/linux-maple.git/commit
net: Look for bonding slaves in the bond's network namespace
authorShay Drory <shayd@nvidia.com>
Tue, 13 May 2025 08:19:22 +0000 (11:19 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 15 May 2025 11:15:17 +0000 (13:15 +0200)
commitc16608005ccb99fbde3a4cd96eab28e16f148abf
tree3ae6019a1d4857341040fa82a17a1f21978cc672
parente24431a2bc20313b25f75852511381ea664d45bc
net: Look for bonding slaves in the bond's network namespace

Update the for_each_netdev_in_bond_rcu macro to iterate through network
devices in the bond's network namespace instead of always using
init_net. This change is safe because:

1. **Bond-Slave Namespace Relationship**: A bond device and its slaves
   must reside in the same network namespace. The bond device's
   namespace is established at creation time and cannot change.

2. **Slave Movement Implications**: Any attempt to move a slave device
   to a different namespace automatically removes it from the bond, as
   per kernel networking stack rules.
   This maintains the invariant that slaves must exist in the same
   namespace as their bond.

This change is part of an effort to enable Link Aggregation (LAG) to
work properly inside custom network namespaces. Previously, the macro
would only find slave devices in the initial network namespace,
preventing proper bonding functionality in custom namespaces.

Signed-off-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Link: https://patch.msgid.link/20250513081922.525716-1-mbloch@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/linux/netdevice.h