Skip to content

Commit 6cbe791

Browse files
liuhangbindavem330
authored andcommitted
kselftest: bonding: add num_grat_arp test
TEST: num_grat_arp (active-backup miimon num_grat_arp 10) [ OK ] TEST: num_grat_arp (active-backup miimon num_grat_arp 20) [ OK ] TEST: num_grat_arp (active-backup miimon num_grat_arp 30) [ OK ] TEST: num_grat_arp (active-backup miimon num_grat_arp 50) [ OK ] Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent b6d1599 commit 6cbe791

2 files changed

Lines changed: 52 additions & 0 deletions

File tree

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

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
ALL_TESTS="
77
prio
88
arp_validate
9+
num_grat_arp
910
"
1011

1112
REQUIRE_MZ=no
@@ -255,6 +256,55 @@ arp_validate()
255256
arp_validate_ns "active-backup"
256257
}
257258

259+
garp_test()
260+
{
261+
local param="$1"
262+
local active_slave exp_num real_num i
263+
RET=0
264+
265+
# create bond
266+
bond_reset "${param}"
267+
268+
bond_check_connection
269+
[ $RET -ne 0 ] && log_test "num_grat_arp" "$retmsg"
270+
271+
272+
# Add tc rules to count GARP number
273+
for i in $(seq 0 2); do
274+
tc -n ${g_ns} filter add dev s$i ingress protocol arp pref 1 handle 101 \
275+
flower skip_hw arp_op request arp_sip ${s_ip4} arp_tip ${s_ip4} action pass
276+
done
277+
278+
# Do failover
279+
active_slave=$(cmd_jq "ip -n ${s_ns} -d -j link show bond0" ".[].linkinfo.info_data.active_slave")
280+
ip -n ${s_ns} link set ${active_slave} down
281+
282+
exp_num=$(echo "${param}" | cut -f6 -d ' ')
283+
sleep $((exp_num + 2))
284+
285+
active_slave=$(cmd_jq "ip -n ${s_ns} -d -j link show bond0" ".[].linkinfo.info_data.active_slave")
286+
287+
# check result
288+
real_num=$(tc_rule_handle_stats_get "dev s${active_slave#eth} ingress" 101 ".packets" "-n ${g_ns}")
289+
if [ "${real_num}" -ne "${exp_num}" ]; then
290+
echo "$real_num garp packets sent on active slave ${active_slave}"
291+
RET=1
292+
fi
293+
294+
for i in $(seq 0 2); do
295+
tc -n ${g_ns} filter del dev s$i ingress
296+
done
297+
}
298+
299+
num_grat_arp()
300+
{
301+
local val
302+
for val in 10 20 30 50; do
303+
garp_test "mode active-backup miimon 100 num_grat_arp $val peer_notify_delay 1000"
304+
log_test "num_grat_arp" "active-backup miimon num_grat_arp $val"
305+
done
306+
}
307+
258308
trap cleanup EXIT
259309

260310
setup_prepare

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ server_create()
6161
ip -n ${g_ns} link set s${i} up
6262
ip -n ${g_ns} link set s${i} master br0
6363
ip -n ${s_ns} link set eth${i} master bond0
64+
65+
tc -n ${g_ns} qdisc add dev s${i} clsact
6466
done
6567

6668
ip -n ${s_ns} link set bond0 up

0 commit comments

Comments
 (0)