Skip to content

Commit 04279e4

Browse files
author
CKI Backport Bot
committed
bonding: don't set oif to bond dev when getting NS target destination
JIRA: https://issues.redhat.com/browse/RHEL-101175 commit a8ba87f Author: Hangbin Liu <liuhangbin@gmail.com> Date: Tue Sep 16 08:01:26 2025 +0000 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> Signed-off-by: CKI Backport Bot <cki-ci-bot+cki-gitlab-backport-bot@redhat.com>
1 parent 008ae62 commit 04279e4

File tree

1 file changed

+0
-1
lines changed

1 file changed

+0
-1
lines changed

drivers/net/bonding/bond_main.c

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

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

0 commit comments

Comments
 (0)