android_kernel_motorola_sm6375/net/bridge
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ido Schimmel b4684a71d9 bridge: Redirect to backup port when port is administratively down
[ Upstream commit 3d05b24429e1de7a17c8fdccb04a04dbc8ad297b ]

If a backup port is configured for a bridge port, the bridge will
redirect known unicast traffic towards the backup port when the primary
port is administratively up but without a carrier. This is useful, for
example, in MLAG configurations where a system is connected to two
switches and there is a peer link between both switches. The peer link
serves as the backup port in case one of the switches loses its
connection to the multi-homed system.

In order to avoid flooding when the primary port loses its carrier, the
bridge does not flush dynamic FDB entries pointing to the port upon STP
disablement, if the port has a backup port.

The above means that known unicast traffic destined to the primary port
will be blackholed when the port is put administratively down, until the
FDB entries pointing to it are aged-out.

Given that the current behavior is quite weird and unlikely to be
depended on by anyone, amend the bridge to redirect to the backup port
also when the primary port is administratively down and not only when it
does not have a carrier.

The change is motivated by a report from a user who expected traffic to
be redirected to the backup port when the primary port was put
administratively down while debugging a network issue.

Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/20250812080213.325298-2-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-12-03 12:45:09 +01:00
..
netfilter netfilter: bridge: Move specific fragmented packet to slow_path instead of dropping it 2025-06-27 11:02:46 +01:00
br.c
br_arp_nd_proxy.c
br_device.c net: bridge: xmit: make sure we have at least eth header len bytes 2024-11-17 14:58:51 +01:00
br_fdb.c net: bridge: br_fdb_external_learn_add(): always set EXT_LEARN 2024-09-12 11:03:53 +02:00
br_forward.c bridge: Redirect to backup port when port is administratively down 2025-12-03 12:45:09 +01:00
br_if.c net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode 2023-07-27 08:37:23 +02:00
br_input.c net: bridge: fdb: convert is_local to bitops 2024-09-12 11:03:53 +02:00
br_ioctl.c
br_mdb.c
br_multicast.c
br_netfilter_hooks.c netfilter: br_netfilter: fix panic with metadata_dst skb 2024-11-08 16:20:45 +01:00
br_netfilter_ipv6.c netfilter: br_netfilter: Drop dst references before setting. 2022-09-15 12:04:55 +02:00
br_netlink.c net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size() 2021-10-13 10:08:19 +02:00
br_netlink_tunnel.c
br_nf_core.c bridge: netfilter: Fix forwarding of fragmented packets 2025-06-04 14:32:35 +02:00
br_private.h bridge: netfilter: Fix forwarding of fragmented packets 2025-06-04 14:32:35 +02:00
br_private_stp.h
br_private_tunnel.h
br_stp.c
br_stp_bpdu.c
br_stp_if.c
br_stp_timer.c
br_switchdev.c net: bridge: fdb: convert added_by_user to bitops 2024-09-12 11:03:53 +02:00
br_sysfs_br.c
br_sysfs_if.c
br_vlan.c
br_vlan_tunnel.c net: bridge: fix vlan tunnel dst refcnt when egressing 2021-06-23 14:41:30 +02:00
Kconfig
Makefile