File tree Expand file tree Collapse file tree 3 files changed +24
-10
lines changed
tools/testing/selftests/drivers/net/bonding Expand file tree Collapse file tree 3 files changed +24
-10
lines changed Original file line number Diff line number Diff line change 17
17
# +----------------+
18
18
#
19
19
# 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
+
20
25
sw=" sw-$( mktemp -u XXXXXX) "
21
26
host=" ns-$( mktemp -u XXXXXX) "
22
27
@@ -26,6 +31,16 @@ cleanup()
26
31
ip netns del $host
27
32
}
28
33
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
+
29
44
trap cleanup 0 1 2
30
45
31
46
ip netns add $sw
@@ -37,8 +52,8 @@ ip -n $host link add veth1 type veth peer name veth1 netns $sw
37
52
ip -n $sw link add br0 type bridge
38
53
ip -n $sw link set br0 up
39
54
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
42
57
43
58
ip -n $host link add bond0 type bond mode 1 ns_ip6_target ${sw_lladdr} \
44
59
arp_validate 3 arp_interval 1000
@@ -53,7 +68,7 @@ ip -n $sw link set veth1 master br0
53
68
ip -n $sw link set veth0 up
54
69
ip -n $sw link set veth1 up
55
70
56
- sleep 5
71
+ slowwait 5 wait_bond_up ip -n $host link show bond0
57
72
58
73
rc=0
59
74
if ip -n $host link show bond0 | grep -q LOWER_UP; then
Original file line number Diff line number Diff line change @@ -73,7 +73,6 @@ server_create()
73
73
ip -n ${s_ns} link set bond0 up
74
74
ip -n ${s_ns} addr add ${s_ip4} /24 dev bond0
75
75
ip -n ${s_ns} addr add ${s_ip6} /24 dev bond0
76
- sleep 2
77
76
}
78
77
79
78
# Reset bond with new mode and options
@@ -96,7 +95,8 @@ bond_reset()
96
95
ip -n ${s_ns} link set bond0 up
97
96
ip -n ${s_ns} addr add ${s_ip4} /24 dev bond0
98
97
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
100
100
}
101
101
102
102
server_destroy ()
@@ -150,7 +150,7 @@ bond_check_connection()
150
150
{
151
151
local msg=${1:- " check connection" }
152
152
153
- sleep 2
153
+ slowwait 2 ip netns exec ${s_ns} ping ${c_ip4} -c 1 -W 0.1 & > /dev/null
154
154
ip netns exec ${s_ns} ping ${c_ip4} -c5 -i 0.1 & > /dev/null
155
155
check_err $? " ${msg} : ping failed"
156
156
ip netns exec ${s_ns} ping6 ${c_ip6} -c5 -i 0.1 & > /dev/null
Original file line number Diff line number Diff line change @@ -107,13 +107,12 @@ lag_setup2x2()
107
107
NAMESPACES=" ${namespaces} "
108
108
}
109
109
110
- # cleanup all lag related namespaces and remove the bonding module
110
+ # cleanup all lag related namespaces
111
111
lag_cleanup ()
112
112
{
113
113
for n in ${NAMESPACES} ; do
114
114
ip netns delete ${n} > /dev/null 2>&1 || true
115
115
done
116
- modprobe -r bonding
117
116
}
118
117
119
118
SWITCH=" lag_node1"
@@ -159,7 +158,7 @@ test_bond_recovery()
159
158
create_bond $@
160
159
161
160
# 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
163
162
check_err $? " No connectivity"
164
163
165
164
# force the links of the bond down
@@ -169,7 +168,7 @@ test_bond_recovery()
169
168
ip netns exec ${SWITCH} ip link set eth1 down
170
169
171
170
# 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
173
172
174
173
local rc=$?
175
174
check_err $rc " Bond failed to recover"
You can’t perform that action at this time.
0 commit comments