Skip to content

Commit 34192a2

Browse files
author
Paolo Abeni
committed
Merge branch 'fix-up-dev-flags-when-add-p2p-down-link'
Hangbin Liu says: ==================== Fix up dev flags when add P2P down link When adding p2p interfaces to bond/team. The POINTOPOINT, NOARP flags are not inherit to up devices. Which will trigger IPv6 DAD. Since there is no ethernet MAC address for P2P devices. This will cause unexpected DAD failures. ==================== Link: https://lore.kernel.org/r/20230721040356.3591174-1-liuhangbin@gmail.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2 parents f029110 + fa532be commit 34192a2

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

drivers/net/bonding/bond_main.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1508,6 +1508,11 @@ static void bond_setup_by_slave(struct net_device *bond_dev,
15081508

15091509
memcpy(bond_dev->broadcast, slave_dev->broadcast,
15101510
slave_dev->addr_len);
1511+
1512+
if (slave_dev->flags & IFF_POINTOPOINT) {
1513+
bond_dev->flags &= ~(IFF_BROADCAST | IFF_MULTICAST);
1514+
bond_dev->flags |= (IFF_POINTOPOINT | IFF_NOARP);
1515+
}
15111516
}
15121517

15131518
/* On bonding slaves other than the currently active slave, suppress

drivers/net/team/team.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2135,6 +2135,15 @@ static void team_setup_by_port(struct net_device *dev,
21352135
dev->mtu = port_dev->mtu;
21362136
memcpy(dev->broadcast, port_dev->broadcast, port_dev->addr_len);
21372137
eth_hw_addr_inherit(dev, port_dev);
2138+
2139+
if (port_dev->flags & IFF_POINTOPOINT) {
2140+
dev->flags &= ~(IFF_BROADCAST | IFF_MULTICAST);
2141+
dev->flags |= (IFF_POINTOPOINT | IFF_NOARP);
2142+
} else if ((port_dev->flags & (IFF_BROADCAST | IFF_MULTICAST)) ==
2143+
(IFF_BROADCAST | IFF_MULTICAST)) {
2144+
dev->flags |= (IFF_BROADCAST | IFF_MULTICAST);
2145+
dev->flags &= ~(IFF_POINTOPOINT | IFF_NOARP);
2146+
}
21382147
}
21392148

21402149
static int team_dev_type_check_change(struct net_device *dev,

0 commit comments

Comments
 (0)