On Sun, Oct 09, 2022 at 07:40:52PM +0200, Hans J. Schultz wrote:
+++ b/tools/testing/selftests/net/forwarding/bridge_blackhole_fdb.sh @@ -0,0 +1,134 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0
+ALL_TESTS="blackhole_fdb" +NUM_NETIFS=4 +source tc_common.sh +source lib.sh
+h1_create() +{
- simple_if_init $h1 192.0.2.1/24 2001:db8:1::1/64
- vlan_create $h1 100 v$h1 198.51.100.1/24
+}
+h1_destroy() +{
- vlan_destroy $h1 100
- simple_if_fini $h1 192.0.2.1/24 2001:db8:1::1/64
+}
+h2_create() +{
- simple_if_init $h2 192.0.2.2/24 2001:db8:1::2/64
- vlan_create $h2 100 v$h2 198.51.100.2/24
+}
+h2_destroy() +{
- vlan_destroy $h2 100
- simple_if_fini $h2 192.0.2.2/24 2001:db8:1::2/64
+}
There is unnecessary configuration here. Can be simplified:
diff --git a/tools/testing/selftests/net/forwarding/bridge_blackhole_fdb.sh b/tools/testing/selftests/net/forwarding/bridge_blackhole_fdb.sh index 77d166180bc4..cc2145ea1968 100755 --- a/tools/testing/selftests/net/forwarding/bridge_blackhole_fdb.sh +++ b/tools/testing/selftests/net/forwarding/bridge_blackhole_fdb.sh @@ -8,26 +8,22 @@ source lib.sh
h1_create() { - simple_if_init $h1 192.0.2.1/24 2001:db8:1::1/64 - vlan_create $h1 100 v$h1 198.51.100.1/24 + simple_if_init $h1 192.0.2.1/24 }
h1_destroy() { - vlan_destroy $h1 100 - simple_if_fini $h1 192.0.2.1/24 2001:db8:1::1/64 + simple_if_fini $h1 192.0.2.1/24 }
h2_create() { - simple_if_init $h2 192.0.2.2/24 2001:db8:1::2/64 - vlan_create $h2 100 v$h2 198.51.100.2/24 + simple_if_init $h2 192.0.2.2/24 }
h2_destroy() { - vlan_destroy $h2 100 - simple_if_fini $h2 192.0.2.2/24 2001:db8:1::2/64 + simple_if_fini $h2 192.0.2.2/24 }
switch_create()
+switch_create() +{
- ip link add dev br0 type bridge vlan_filtering 1
- ip link set dev $swp1 master br0
- ip link set dev $swp2 master br0
- ip link set dev br0 up
- ip link set dev $swp1 up
- ip link set dev $swp2 up
- tc qdisc add dev $swp2 clsact
+}
+switch_destroy() +{
- tc qdisc del dev $swp2 clsact
- ip link set dev $swp2 down
- ip link set dev $swp1 down
- ip link del dev br0
+}
+setup_prepare() +{
- h1=${NETIFS[p1]}
- swp1=${NETIFS[p2]}
- h2=${NETIFS[p3]}
- swp2=${NETIFS[p4]}
- vrf_prepare
- h1_create
- h2_create
- switch_create
+}
+cleanup() +{
- pre_cleanup
- switch_destroy
- h2_destroy
- h1_destroy
- vrf_cleanup
+}
+# Check that there is no egress with blackhole entry and that blackhole entries can be replaced
Wrap this to 80 columns:
# Check that there is no egress with blackhole entry and that blackhole entries # can be replaced.
+blackhole_fdb() +{
- RET=0
- check_blackhole_fdb_support || return 0
- tc filter add dev $swp2 egress protocol ip pref 1 handle 1 flower \
dst_ip 192.0.2.2 ip_proto udp dst_port 12345 action pass
- $MZ $h1 -c 1 -p 128 -t udp "sp=54321,dp=12345" \
-a own -b `mac_get $h2` -A 192.0.2.1 -B 192.0.2.2 -q
- tc_check_packets "dev $swp2 egress" 1 1
- check_err $? "Packet not seen on egress before adding blackhole entry"
- bridge fdb replace `mac_get $h2` dev br0 blackhole
vlan 1
- bridge fdb get `mac_get $h2` br br0 | grep -q blackhole
vlan 1
- check_err $? "Blackhole entry not found"
- $MZ $h1 -c 1 -p 128 -t udp "sp=54321,dp=12345" \
-a own -b `mac_get $h2` -A 192.0.2.1 -B 192.0.2.2 -q
- tc_check_packets "dev $swp2 egress" 1 1
- check_err $? "Packet seen on egress after adding blackhole entry"
- # Check blackhole entries can be replaced.
- bridge fdb replace `mac_get $h2` dev $swp2 master static
vlan 1
- bridge fdb get `mac_get $h2` br br0 | grep -q blackhole
vlan 1
- check_fail $? "Blackhole entry found after replacement"
- $MZ $h1 -c 1 -p 128 -t udp "sp=54321,dp=12345" \
-a own -b `mac_get $h2` -A 192.0.2.1 -B 192.0.2.2 -q
- tc_check_packets "dev $swp2 egress" 1 2
- check_err $? "Packet not seen on egress after replacing blackhole entry"
- bridge fdb del `mac_get $h2` dev $swp2 master static
vlan 1
- tc filter del dev $swp2 egress protocol ip pref 1 handle 1 flower
- log_test "Blackhole FDB entry"
+}
Tested with veth pairs. Looks OK to me.