linux-stable/drivers/net/bonding
Hangbin Liu f683f4be80 bonding: fix macvlan over alb bond support
[ Upstream commit e74216b8de ]

The commit 14af9963ba ("bonding: Support macvlans on top of tlb/rlb mode
bonds") aims to enable the use of macvlans on top of rlb bond mode. However,
the current rlb bond mode only handles ARP packets to update remote neighbor
entries. This causes an issue when a macvlan is on top of the bond, and
remote devices send packets to the macvlan using the bond's MAC address
as the destination. After delivering the packets to the macvlan, the macvlan
will rejects them as the MAC address is incorrect. Consequently, this commit
makes macvlan over bond non-functional.

To address this problem, one potential solution is to check for the presence
of a macvlan port on the bond device using netif_is_macvlan_port(bond->dev)
and return NULL in the rlb_arp_xmit() function. However, this approach
doesn't fully resolve the situation when a VLAN exists between the bond and
macvlan.

So let's just do a partial revert for commit 14af9963ba in rlb_arp_xmit().
As the comment said, Don't modify or load balance ARPs that do not originate
locally.

Fixes: 14af9963ba ("bonding: Support macvlans on top of tlb/rlb mode bonds")
Reported-by: susan.zheng@veritas.com
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=2117816
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-08-30 16:18:15 +02:00
..
bond_3ad.c drivers/net/bonding/bond_3ad: return when there's no aggregator 2023-01-12 11:59:15 +01:00
bond_alb.c bonding: fix macvlan over alb bond support 2023-08-30 16:18:15 +02:00
bond_debugfs.c bonding: fix error checking in bond_debug_reregister() 2023-02-14 19:17:58 +01:00
bond_main.c bonding: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves 2023-08-16 18:22:01 +02:00
bond_netlink.c bonding: fix send_peer_notif overflow 2023-06-05 09:21:19 +02:00
bond_options.c bonding: fix send_peer_notif overflow 2023-06-05 09:21:19 +02:00
bond_procfs.c Bonding: add arp_missed_max option 2023-06-05 09:21:19 +02:00
bond_sysfs.c Bonding: add arp_missed_max option 2023-06-05 09:21:19 +02:00
bond_sysfs_slave.c
bonding_priv.h
Makefile