selftests: router_bridge: Add tests to remove and add PVID
authorPetr Machata <petrm@nvidia.com>
Thu, 13 Jul 2023 16:15:31 +0000 (18:15 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Jul 2023 09:20:15 +0000 (10:20 +0100)
This test relies on PVID being configured on the bridge itself. Thus when
it is deconfigured, the system should lose the ability to forward traffic.
Later when it is added again, the ability to forward traffic should be
regained. Add tests to exercise these configuration changes and verify
results.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/forwarding/router_bridge.sh

index 8ce0aed..4f33db0 100755 (executable)
@@ -1,9 +1,33 @@
 #!/bin/bash
 # SPDX-License-Identifier: GPL-2.0
 
+# +------------------------+                           +----------------------+
+# | H1 (vrf)               |                           |             H2 (vrf) |
+# |    + $h1               |                           |  + $h2               |
+# |    | 192.0.2.1/28      |                           |  | 192.0.2.130/28    |
+# |    | 2001:db8:1::1/64  |                           |  | 2001:db8:2::2/64  |
+# |    |                   |                           |  |                   |
+# +----|-------------------+                           +--|-------------------+
+#      |                                                  |
+# +----|--------------------------------------------------|-------------------+
+# | SW |                                                  |                   |
+# | +--|-----------------------------+                    + $swp2             |
+# | |  + $swp1      BR1 (802.1q)     |                      192.0.2.129/28    |
+# | |               192.0.2.2/28     |                      2001:db8:2::1/64  |
+# | |               2001:db8:1::1/64 |                                        |
+# | |                                |                                        |
+# | +--------------------------------+                                        |
+# +---------------------------------------------------------------------------+
+
 ALL_TESTS="
        ping_ipv4
        ping_ipv6
+       config_remove_pvid
+       ping_ipv4_fails
+       ping_ipv6_fails
+       config_add_pvid
+       ping_ipv4
+       ping_ipv6
 "
 NUM_NETIFS=4
 source lib.sh
@@ -62,6 +86,22 @@ router_destroy()
        ip link del dev br1
 }
 
+config_remove_pvid()
+{
+       log_info "Remove PVID from the bridge"
+
+       bridge vlan add dev br1 vid 1 self
+       sleep 2
+}
+
+config_add_pvid()
+{
+       log_info "Add PVID to the bridge"
+
+       bridge vlan add dev br1 vid 1 self pvid untagged
+       sleep 2
+}
+
 setup_prepare()
 {
        h1=${NETIFS[p1]}
@@ -104,6 +144,16 @@ ping_ipv6()
        ping6_test $h1 2001:db8:2::2
 }
 
+ping_ipv4_fails()
+{
+       ping_test_fails $h1 192.0.2.130
+}
+
+ping_ipv6_fails()
+{
+       ping6_test_fails $h1 2001:db8:2::2
+}
+
 trap cleanup EXIT
 
 setup_prepare