linux/tools/testing/selftests/drivers/net/bonding
Jakub Kicinski e83d0a2472 selftests: bonding: add a test for VLAN propagation over a bonded real device
Add a regression test for the VLAN notifier handling that the netdev_work
deferral fixed.

A VLAN's real device propagates its UP/DOWN, MTU and feature changes onto
the VLANs stacked on top of it. This used to be done synchronously from the
real device's notifier and deadlocked when the real device was brought up
while enslaved to a bond (instance lock held across NETDEV_UP) and the VLAN
on top was itself a bond member: the synchronous propagation re-entered the
stack and took the same instance lock again.

The test covers both halves:
 - that the deferred UP/DOWN, MTU and feature propagation actually lands on
   the VLAN (link state and MTU use an ops-locked dummy, i.e. the deferral
   path; features use veth, which exports vlan_features to inherit), and
 - that the deadlock-prone topology - a VLAN on a dummy, with the VLAN and
   the dummy each enslaved to a different bond - can be built without
   hanging.

Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20260624182018.2445732-5-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-06-25 10:18:40 -07:00
..
bond_ipsec_offload.sh selftests: bonding: add ipsec offload test 2025-09-30 09:55:12 +02:00
bond_lacp_prio.sh selftests: bonding: add test for LACP actor port priority 2025-09-09 10:56:02 +02:00
bond_lacp_strict.sh selftests: bonding: add test for lacp_strict mode 2026-06-10 07:53:41 -07:00
bond_macvlan_ipvlan.sh selftests: bonding: add delay before each xvlan_over_bond connectivity check 2025-11-28 20:16:22 -08:00
bond_options.sh selftests: bonding: add vlan over bond testing 2025-09-17 15:13:51 -07:00
bond_passive_lacp.sh selftests: bonding: add test for passive LACP mode 2025-08-21 09:35:21 +02:00
bond_stacked_header_parse.sh selftests: bonding: add test for stacked bond header_parse recursion 2026-03-23 19:37:04 -07:00
bond_topo_2d1c.sh selftests: bonding: add fail_over_mac testing 2025-09-15 17:48:42 -07:00
bond_topo_3d1c.sh selftests: bonding: add fail_over_mac testing 2025-09-15 17:48:42 -07:00
bond_vlan_real_dev.sh selftests: bonding: add a test for VLAN propagation over a bonded real device 2026-06-25 10:18:40 -07:00
bond-arp-interval-causes-panic.sh selftests: bonding: do not set port down when adding to bond 2024-01-02 14:17:05 +00:00
bond-break-lacpdu-tx.sh selftests: bonding: use tc filter to check if LACP was sent 2024-02-07 18:26:20 -08:00
bond-eth-type-change.sh selftests: bonding: Add net/forwarding/lib.sh to TEST_INCLUDES 2024-01-31 10:55:11 +00:00
bond-lladdr-target.sh selftests: bonding: use slowwait instead of hard code sleep 2024-02-07 18:26:20 -08:00
config selftests: bonding: add test for stacked bond header_parse recursion 2026-03-23 19:37:04 -07:00
dev_addr_lists.sh selftests: bonding: Add net/forwarding/lib.sh to TEST_INCLUDES 2024-01-31 10:55:11 +00:00
lag_lib.sh selftests: net: use ip commands instead of teamd in team rx_mode test 2026-04-21 12:50:25 +02:00
Makefile selftests: bonding: add a test for VLAN propagation over a bonded real device 2026-06-25 10:18:40 -07:00
mode-1-recovery-updelay.sh selftests: bonding: Add net/forwarding/lib.sh to TEST_INCLUDES 2024-01-31 10:55:11 +00:00
mode-2-recovery-updelay.sh selftests: bonding: Add net/forwarding/lib.sh to TEST_INCLUDES 2024-01-31 10:55:11 +00:00
netcons_over_bonding.sh selftest: netcons: add test for netconsole over bonded interfaces 2025-11-10 18:34:44 -08:00
settings selftests: bonding: Increase timeout to 1200s 2024-01-19 21:12:31 -08:00