瀏覽代碼

Merge branch 'selftests-forwarding-Tweaks-and-a-new-test'

Ido Schimmel says:

====================
selftests: forwarding: Tweaks and a new test

First patch adds a new test for VLAN-unaware bridges.

Next two patches make the tests fail in case they are missing interfaces
or dependencies.

Last patch allows one to create the veth interfaces even without the
optional configuration file.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 7 年之前
父節點
當前提交
daa13701a9

+ 86 - 0
tools/testing/selftests/net/forwarding/bridge_vlan_unaware.sh

@@ -0,0 +1,86 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+
+NUM_NETIFS=4
+source lib.sh
+
+h1_create()
+{
+	simple_if_init $h1 192.0.2.1/24 2001:db8:1::1/64
+}
+
+h1_destroy()
+{
+	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
+}
+
+h2_destroy()
+{
+	simple_if_fini $h2 192.0.2.2/24 2001:db8:1::2/64
+}
+
+switch_create()
+{
+	# 10 Seconds ageing time.
+	ip link add dev br0 type bridge ageing_time 1000 mcast_snooping 0
+
+	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
+}
+
+switch_destroy()
+{
+	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]}
+
+	swp2=${NETIFS[p3]}
+	h2=${NETIFS[p4]}
+
+	vrf_prepare
+
+	h1_create
+	h2_create
+
+	switch_create
+}
+
+cleanup()
+{
+	pre_cleanup
+
+	switch_destroy
+
+	h2_destroy
+	h1_destroy
+
+	vrf_cleanup
+}
+
+trap cleanup EXIT
+
+setup_prepare
+setup_wait
+
+ping_test $h1 192.0.2.2
+ping6_test $h1 2001:db8:1::2
+learning_test "br0" $swp1 $h1 $h2
+flood_test $swp2 $h1 $h2
+
+exit $EXIT_STATUS

+ 4 - 5
tools/testing/selftests/net/forwarding/forwarding.config.sample

@@ -14,11 +14,6 @@ NETIFS[p6]=veth5
 NETIFS[p7]=veth6
 NETIFS[p7]=veth6
 NETIFS[p8]=veth7
 NETIFS[p8]=veth7
 
 
-NETIF_TYPE=veth
-
-# only virtual interfaces (veth) can be created by test infra
-#NETIF_CREATE=yes
-
 ##############################################################################
 ##############################################################################
 # Defines
 # Defines
 
 
@@ -34,3 +29,7 @@ WAIT_TIME=5
 PAUSE_ON_FAIL=no
 PAUSE_ON_FAIL=no
 # Whether to pause on cleanup or not.
 # Whether to pause on cleanup or not.
 PAUSE_ON_CLEANUP=no
 PAUSE_ON_CLEANUP=no
+# Type of network interface to create
+NETIF_TYPE=veth
+# Whether to create virtual interfaces (veth) or not
+NETIF_CREATE=yes

+ 5 - 3
tools/testing/selftests/net/forwarding/lib.sh

@@ -11,6 +11,8 @@ MZ=${MZ:=mausezahn}
 WAIT_TIME=${WAIT_TIME:=5}
 WAIT_TIME=${WAIT_TIME:=5}
 PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no}
 PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no}
 PAUSE_ON_CLEANUP=${PAUSE_ON_CLEANUP:=no}
 PAUSE_ON_CLEANUP=${PAUSE_ON_CLEANUP:=no}
+NETIF_TYPE=${NETIF_TYPE:=veth}
+NETIF_CREATE=${NETIF_CREATE:=yes}
 
 
 if [[ -f forwarding.config ]]; then
 if [[ -f forwarding.config ]]; then
 	source forwarding.config
 	source forwarding.config
@@ -50,12 +52,12 @@ fi
 
 
 if [[ ! -x "$(command -v $MZ)" ]]; then
 if [[ ! -x "$(command -v $MZ)" ]]; then
 	echo "SKIP: $MZ not installed"
 	echo "SKIP: $MZ not installed"
-	exit 0
+	exit 1
 fi
 fi
 
 
 if [[ ! -v NUM_NETIFS ]]; then
 if [[ ! -v NUM_NETIFS ]]; then
 	echo "SKIP: importer does not define \"NUM_NETIFS\""
 	echo "SKIP: importer does not define \"NUM_NETIFS\""
-	exit 0
+	exit 1
 fi
 fi
 
 
 ##############################################################################
 ##############################################################################
@@ -115,7 +117,7 @@ for i in $(eval echo {1..$NUM_NETIFS}); do
 	ip link show dev ${NETIFS[p$i]} &> /dev/null
 	ip link show dev ${NETIFS[p$i]} &> /dev/null
 	if [[ $? -ne 0 ]]; then
 	if [[ $? -ne 0 ]]; then
 		echo "SKIP: could not find all required interfaces"
 		echo "SKIP: could not find all required interfaces"
-		exit 0
+		exit 1
 	fi
 	fi
 done
 done