]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests: bridge_fdb_local_vlan_0: Test FDB vs. NET_ADDR_SET behavior
authorPetr Machata <petrm@nvidia.com>
Mon, 22 Sep 2025 14:14:49 +0000 (16:14 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 24 Sep 2025 00:10:49 +0000 (17:10 -0700)
The previous patch fixed an issue whereby no FDB entry would be created for
the bridge itself on VLAN 0 under some circumstances. This could break
forwarding. Add a test for the fix.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/137cc25396f5a4f407267af895a14bc45552ba5f.1758550408.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/forwarding/bridge_fdb_local_vlan_0.sh

index 5a0b43aff5aaf036e16af0363a04e2120e50fc9f..65f74c46c2f38db58381ba6baae3332a91003919 100755 (executable)
@@ -27,6 +27,7 @@ ALL_TESTS="
        test_d_sharing
        test_q_no_sharing
        test_q_sharing
+       test_addr_set
 "
 
 NUM_NETIFS=6
@@ -110,13 +111,10 @@ setup_prepare()
        switch_create
 }
 
-adf_bridge_create()
+adf_bridge_configure()
 {
        local dev
-       local mac
 
-       ip_link_add br up type bridge vlan_default_pvid 0 "$@"
-       mac=$(mac_get br)
        ip_addr_add br 192.0.2.3/28
        ip_addr_add br 2001:db8:1::3/64
 
@@ -130,7 +128,15 @@ adf_bridge_create()
                bridge_vlan_add dev "$dev" vid 2
                bridge_vlan_add dev "$dev" vid 3
        done
+}
+
+adf_bridge_create()
+{
+       local mac
 
+       ip_link_add br up type bridge vlan_default_pvid 0 "$@"
+       mac=$(mac_get br)
+       adf_bridge_configure
        ip_link_set_addr br "$mac"
 }
 
@@ -367,6 +373,20 @@ test_q_sharing()
        do_test_sharing 1
 }
 
+adf_addr_set_bridge_create()
+{
+       ip_link_add br up type bridge vlan_filtering 0
+       ip_link_set_addr br "$(mac_get br)"
+       adf_bridge_configure
+}
+
+test_addr_set()
+{
+       adf_addr_set_bridge_create
+       setup_wait
+
+       do_end_to_end_test "$(mac_get br)" "NET_ADDR_SET: end to end, br MAC"
+}
 
 trap cleanup EXIT