Skip to content

Commit e1f0da9

Browse files
liuhangbinkuba-moo
authored andcommitted
selftests: bonding: use slowwait instead of hard code sleep
Use slowwait instead of hard code sleep for bonding tests. In function setup_prepare(), the client_create() will be called after server_create(). So I think there is no need to sleep in server_create() and remove it. For lab_lib.sh, remove bonding module may affect other running bonding tests. And some test env may buildin bond which can't be removed. The bonding link should be removed by lag_reset_network() or netns delete. Signed-off-by: Hangbin Liu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 45bf79b commit e1f0da9

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

tools/testing/selftests/drivers/net/bonding/bond-lladdr-target.sh

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
# +----------------+
1818
#
1919
# We use veths instead of physical interfaces
20+
REQUIRE_MZ=no
21+
NUM_NETIFS=0
22+
lib_dir=$(dirname "$0")
23+
source "$lib_dir"/../../../net/forwarding/lib.sh
24+
2025
sw="sw-$(mktemp -u XXXXXX)"
2126
host="ns-$(mktemp -u XXXXXX)"
2227

@@ -26,6 +31,16 @@ cleanup()
2631
ip netns del $host
2732
}
2833

34+
wait_lladdr_dad()
35+
{
36+
$@ | grep fe80 | grep -qv tentative
37+
}
38+
39+
wait_bond_up()
40+
{
41+
$@ | grep -q 'state UP'
42+
}
43+
2944
trap cleanup 0 1 2
3045

3146
ip netns add $sw
@@ -37,8 +52,8 @@ ip -n $host link add veth1 type veth peer name veth1 netns $sw
3752
ip -n $sw link add br0 type bridge
3853
ip -n $sw link set br0 up
3954
sw_lladdr=$(ip -n $sw addr show br0 | awk '/fe80/{print $2}' | cut -d'/' -f1)
40-
# sleep some time to make sure bridge lladdr pass DAD
41-
sleep 2
55+
# wait some time to make sure bridge lladdr pass DAD
56+
slowwait 2 wait_lladdr_dad ip -n $sw addr show br0
4257

4358
ip -n $host link add bond0 type bond mode 1 ns_ip6_target ${sw_lladdr} \
4459
arp_validate 3 arp_interval 1000
@@ -53,7 +68,7 @@ ip -n $sw link set veth1 master br0
5368
ip -n $sw link set veth0 up
5469
ip -n $sw link set veth1 up
5570

56-
sleep 5
71+
slowwait 5 wait_bond_up ip -n $host link show bond0
5772

5873
rc=0
5974
if ip -n $host link show bond0 | grep -q LOWER_UP; then

tools/testing/selftests/drivers/net/bonding/bond_topo_2d1c.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ server_create()
7373
ip -n ${s_ns} link set bond0 up
7474
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
7575
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
76-
sleep 2
7776
}
7877

7978
# Reset bond with new mode and options
@@ -96,7 +95,8 @@ bond_reset()
9695
ip -n ${s_ns} link set bond0 up
9796
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
9897
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
99-
sleep 2
98+
# Wait for IPv6 address ready as it needs DAD
99+
slowwait 2 ip netns exec ${s_ns} ping6 ${c_ip6} -c 1 -W 0.1 &> /dev/null
100100
}
101101

102102
server_destroy()
@@ -150,7 +150,7 @@ bond_check_connection()
150150
{
151151
local msg=${1:-"check connection"}
152152

153-
sleep 2
153+
slowwait 2 ip netns exec ${s_ns} ping ${c_ip4} -c 1 -W 0.1 &> /dev/null
154154
ip netns exec ${s_ns} ping ${c_ip4} -c5 -i 0.1 &>/dev/null
155155
check_err $? "${msg}: ping failed"
156156
ip netns exec ${s_ns} ping6 ${c_ip6} -c5 -i 0.1 &>/dev/null

tools/testing/selftests/drivers/net/bonding/lag_lib.sh

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,12 @@ lag_setup2x2()
107107
NAMESPACES="${namespaces}"
108108
}
109109

110-
# cleanup all lag related namespaces and remove the bonding module
110+
# cleanup all lag related namespaces
111111
lag_cleanup()
112112
{
113113
for n in ${NAMESPACES}; do
114114
ip netns delete ${n} >/dev/null 2>&1 || true
115115
done
116-
modprobe -r bonding
117116
}
118117

119118
SWITCH="lag_node1"
@@ -159,7 +158,7 @@ test_bond_recovery()
159158
create_bond $@
160159

161160
# verify connectivity
162-
ip netns exec ${CLIENT} ping ${SWITCHIP} -c 2 >/dev/null 2>&1
161+
slowwait 2 ip netns exec ${CLIENT} ping ${SWITCHIP} -c 2 -W 0.1 &> /dev/null
163162
check_err $? "No connectivity"
164163

165164
# force the links of the bond down
@@ -169,7 +168,7 @@ test_bond_recovery()
169168
ip netns exec ${SWITCH} ip link set eth1 down
170169

171170
# re-verify connectivity
172-
ip netns exec ${CLIENT} ping ${SWITCHIP} -c 2 >/dev/null 2>&1
171+
slowwait 2 ip netns exec ${CLIENT} ping ${SWITCHIP} -c 2 -W 0.1 &> /dev/null
173172

174173
local rc=$?
175174
check_err $rc "Bond failed to recover"

0 commit comments

Comments
 (0)