Skip to content

Commit fa532be

Browse files
liuhangbinPaolo Abeni
authored andcommitted
team: reset team's flags when down link is P2P device
When adding a point to point downlink to team device, we neglected to reset the team's flags, which were still using flags like BROADCAST and MULTICAST. Consequently, this would initiate ARP/DAD for P2P downlink interfaces, such as when adding a GRE device to team device. Fix this by remove multicast/broadcast flags and add p2p and noarp flags. After removing the none ethernet interface and adding an ethernet interface to team, we need to reset team interface flags. Unlike bonding interface, team do not need restore IFF_MASTER, IFF_SLAVE flags. Reported-by: Liang Li <[email protected]> Closes: https://bugzilla.redhat.com/show_bug.cgi?id=2221438 Fixes: 1d76efe ("team: add support for non-ethernet devices") Signed-off-by: Hangbin Liu <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
1 parent da19a2b commit fa532be

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

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)