Skip to content

Commit a8ba87f

Browse files
liuhangbinkuba-moo
authored andcommitted
bonding: don't set oif to bond dev when getting NS target destination
Unlike IPv4, IPv6 routing strictly requires the source address to be valid on the outgoing interface. If the NS target is set to a remote VLAN interface, and the source address is also configured on a VLAN over a bond interface, setting the oif to the bond device will fail to retrieve the correct destination route. Fix this by not setting the oif to the bond device when retrieving the NS target destination. This allows the correct destination device (the VLAN interface) to be determined, so that bond_verify_device_path can return the proper VLAN tags for sending NS messages. Reported-by: David Wilder <wilder@us.ibm.com> Closes: https://lore.kernel.org/netdev/aGOKggdfjv0cApTO@fedora/ Suggested-by: Jay Vosburgh <jv@jvosburgh.net> Tested-by: David Wilder <wilder@us.ibm.com> Acked-by: Jay Vosburgh <jv@jvosburgh.net> Fixes: 4e24be0 ("bonding: add new parameter ns_targets") Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> Link: https://patch.msgid.link/20250916080127.430626-1-liuhangbin@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 8c47485 commit a8ba87f

1 file changed

Lines changed: 0 additions & 1 deletion

File tree

drivers/net/bonding/bond_main.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3356,7 +3356,6 @@ static void bond_ns_send_all(struct bonding *bond, struct slave *slave)
33563356
/* Find out through which dev should the packet go */
33573357
memset(&fl6, 0, sizeof(struct flowi6));
33583358
fl6.daddr = targets[i];
3359-
fl6.flowi6_oif = bond->dev->ifindex;
33603359

33613360
dst = ip6_route_output(dev_net(bond->dev), NULL, &fl6);
33623361
if (dst->error) {

0 commit comments

Comments
 (0)