selftests: mptcp: join: skip check if MIB counter not supported
Selftests are supposed to run on any kernels, including the old ones not supporting all MPTCP features. One of them is the MPTCP MIB counters introduced in commitfc518953bc
("mptcp: add and use MIB counter infrastructure") and more later. The MPTCP Join selftest heavily relies on these counters. If a counter is not supported by the kernel, it is not displayed when using 'nstat -z'. We can then detect that and skip the verification. A new helper (get_counter()) has been added to do the required checks and return an error if the counter is not available. Note that if we expect to have these features available and if SELFTESTS_MPTCP_LIB_EXPECT_ALL_FEATURES env var is set to 1, the tests will be marked as failed instead of skipped. This new helper also makes sure we get the exact counter we want to avoid issues we had in the past, e.g. with MPTcpExtRmAddr and MPTcpExtRmAddrDrop sharing the same prefix. While at it, we uniform the way we fetch a MIB counter. Note for the backports: we rarely change these modified blocks so if there is are conflicts, it is very likely because a counter is not used in the older kernels and we don't need that chunk. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Fixes:b08fbf2410
("selftests: add test-cases for MPTCP MP_JOIN") Cc: stable@vger.kernel.org Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
cdb5052534
commit
47867f0a7e
|
@ -500,11 +500,25 @@ wait_local_port_listen()
|
|||
done
|
||||
}
|
||||
|
||||
# $1: ns ; $2: counter
|
||||
get_counter()
|
||||
{
|
||||
local ns="${1}"
|
||||
local counter="${2}"
|
||||
local count
|
||||
|
||||
count=$(ip netns exec ${ns} nstat -asz "${counter}" | awk 'NR==1 {next} {print $2}')
|
||||
if [ -z "${count}" ]; then
|
||||
mptcp_lib_fail_if_expected_feature "${counter} counter"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "${count}"
|
||||
}
|
||||
|
||||
rm_addr_count()
|
||||
{
|
||||
local ns=${1}
|
||||
|
||||
ip netns exec ${ns} nstat -as | grep MPTcpExtRmAddr | awk '{print $2}'
|
||||
get_counter "${1}" "MPTcpExtRmAddr"
|
||||
}
|
||||
|
||||
# $1: ns, $2: old rm_addr counter in $ns
|
||||
|
@ -527,11 +541,11 @@ wait_mpj()
|
|||
local ns="${1}"
|
||||
local cnt old_cnt
|
||||
|
||||
old_cnt=$(ip netns exec ${ns} nstat -as | grep MPJoinAckRx | awk '{print $2}')
|
||||
old_cnt=$(get_counter ${ns} "MPTcpExtMPJoinAckRx")
|
||||
|
||||
local i
|
||||
for i in $(seq 10); do
|
||||
cnt=$(ip netns exec ${ns} nstat -as | grep MPJoinAckRx | awk '{print $2}')
|
||||
cnt=$(get_counter ${ns} "MPTcpExtMPJoinAckRx")
|
||||
[ "$cnt" = "${old_cnt}" ] || break
|
||||
sleep 0.1
|
||||
done
|
||||
|
@ -1190,12 +1204,13 @@ chk_csum_nr()
|
|||
fi
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "sum"
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtDataCsumErr | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
count=$(get_counter ${ns1} "MPTcpExtDataCsumErr")
|
||||
if [ "$count" != "$csum_ns1" ]; then
|
||||
extra_msg="$extra_msg ns1=$count"
|
||||
fi
|
||||
if { [ "$count" != $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 0 ]; } ||
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif { [ "$count" != $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 0 ]; } ||
|
||||
{ [ "$count" -lt $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 1 ]; }; then
|
||||
echo "[fail] got $count data checksum error[s] expected $csum_ns1"
|
||||
fail_test
|
||||
|
@ -1204,12 +1219,13 @@ chk_csum_nr()
|
|||
echo -n "[ ok ]"
|
||||
fi
|
||||
echo -n " - csum "
|
||||
count=$(ip netns exec $ns2 nstat -as | grep MPTcpExtDataCsumErr | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
count=$(get_counter ${ns2} "MPTcpExtDataCsumErr")
|
||||
if [ "$count" != "$csum_ns2" ]; then
|
||||
extra_msg="$extra_msg ns2=$count"
|
||||
fi
|
||||
if { [ "$count" != $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 0 ]; } ||
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif { [ "$count" != $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 0 ]; } ||
|
||||
{ [ "$count" -lt $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 1 ]; }; then
|
||||
echo "[fail] got $count data checksum error[s] expected $csum_ns2"
|
||||
fail_test
|
||||
|
@ -1251,12 +1267,13 @@ chk_fail_nr()
|
|||
fi
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "ftx"
|
||||
count=$(ip netns exec $ns_tx nstat -as | grep MPTcpExtMPFailTx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
count=$(get_counter ${ns_tx} "MPTcpExtMPFailTx")
|
||||
if [ "$count" != "$fail_tx" ]; then
|
||||
extra_msg="$extra_msg,tx=$count"
|
||||
fi
|
||||
if { [ "$count" != "$fail_tx" ] && [ $allow_tx_lost -eq 0 ]; } ||
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif { [ "$count" != "$fail_tx" ] && [ $allow_tx_lost -eq 0 ]; } ||
|
||||
{ [ "$count" -gt "$fail_tx" ] && [ $allow_tx_lost -eq 1 ]; }; then
|
||||
echo "[fail] got $count MP_FAIL[s] TX expected $fail_tx"
|
||||
fail_test
|
||||
|
@ -1266,12 +1283,13 @@ chk_fail_nr()
|
|||
fi
|
||||
|
||||
echo -n " - failrx"
|
||||
count=$(ip netns exec $ns_rx nstat -as | grep MPTcpExtMPFailRx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
count=$(get_counter ${ns_rx} "MPTcpExtMPFailRx")
|
||||
if [ "$count" != "$fail_rx" ]; then
|
||||
extra_msg="$extra_msg,rx=$count"
|
||||
fi
|
||||
if { [ "$count" != "$fail_rx" ] && [ $allow_rx_lost -eq 0 ]; } ||
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif { [ "$count" != "$fail_rx" ] && [ $allow_rx_lost -eq 0 ]; } ||
|
||||
{ [ "$count" -gt "$fail_rx" ] && [ $allow_rx_lost -eq 1 ]; }; then
|
||||
echo "[fail] got $count MP_FAIL[s] RX expected $fail_rx"
|
||||
fail_test
|
||||
|
@ -1303,10 +1321,11 @@ chk_fclose_nr()
|
|||
fi
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "ctx"
|
||||
count=$(ip netns exec $ns_tx nstat -as | grep MPTcpExtMPFastcloseTx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
[ "$count" != "$fclose_tx" ] && extra_msg="$extra_msg,tx=$count"
|
||||
if [ "$count" != "$fclose_tx" ]; then
|
||||
count=$(get_counter ${ns_tx} "MPTcpExtMPFastcloseTx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$fclose_tx" ]; then
|
||||
extra_msg="$extra_msg,tx=$count"
|
||||
echo "[fail] got $count MP_FASTCLOSE[s] TX expected $fclose_tx"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1315,10 +1334,11 @@ chk_fclose_nr()
|
|||
fi
|
||||
|
||||
echo -n " - fclzrx"
|
||||
count=$(ip netns exec $ns_rx nstat -as | grep MPTcpExtMPFastcloseRx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
[ "$count" != "$fclose_rx" ] && extra_msg="$extra_msg,rx=$count"
|
||||
if [ "$count" != "$fclose_rx" ]; then
|
||||
count=$(get_counter ${ns_rx} "MPTcpExtMPFastcloseRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$fclose_rx" ]; then
|
||||
extra_msg="$extra_msg,rx=$count"
|
||||
echo "[fail] got $count MP_FASTCLOSE[s] RX expected $fclose_rx"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1349,9 +1369,10 @@ chk_rst_nr()
|
|||
fi
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "rtx"
|
||||
count=$(ip netns exec $ns_tx nstat -as | grep MPTcpExtMPRstTx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ $count -lt $rst_tx ]; then
|
||||
count=$(get_counter ${ns_tx} "MPTcpExtMPRstTx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ $count -lt $rst_tx ]; then
|
||||
echo "[fail] got $count MP_RST[s] TX expected $rst_tx"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1360,9 +1381,10 @@ chk_rst_nr()
|
|||
fi
|
||||
|
||||
echo -n " - rstrx "
|
||||
count=$(ip netns exec $ns_rx nstat -as | grep MPTcpExtMPRstRx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" -lt "$rst_rx" ]; then
|
||||
count=$(get_counter ${ns_rx} "MPTcpExtMPRstRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" -lt "$rst_rx" ]; then
|
||||
echo "[fail] got $count MP_RST[s] RX expected $rst_rx"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1383,9 +1405,10 @@ chk_infi_nr()
|
|||
local dump_stats
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "itx"
|
||||
count=$(ip netns exec $ns2 nstat -as | grep InfiniteMapTx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$infi_tx" ]; then
|
||||
count=$(get_counter ${ns2} "MPTcpExtInfiniteMapTx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$infi_tx" ]; then
|
||||
echo "[fail] got $count infinite map[s] TX expected $infi_tx"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1394,9 +1417,10 @@ chk_infi_nr()
|
|||
fi
|
||||
|
||||
echo -n " - infirx"
|
||||
count=$(ip netns exec $ns1 nstat -as | grep InfiniteMapRx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$infi_rx" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtInfiniteMapRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo "[skip]"
|
||||
elif [ "$count" != "$infi_rx" ]; then
|
||||
echo "[fail] got $count infinite map[s] RX expected $infi_rx"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1428,9 +1452,10 @@ chk_join_nr()
|
|||
fi
|
||||
|
||||
printf "%03u %-36s %s" "${TEST_COUNT}" "${title}" "syn"
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinSynRx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$syn_nr" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtMPJoinSynRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$syn_nr" ]; then
|
||||
echo "[fail] got $count JOIN[s] syn expected $syn_nr"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1440,9 +1465,10 @@ chk_join_nr()
|
|||
|
||||
echo -n " - synack"
|
||||
with_cookie=$(ip netns exec $ns2 sysctl -n net.ipv4.tcp_syncookies)
|
||||
count=$(ip netns exec $ns2 nstat -as | grep MPTcpExtMPJoinSynAckRx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$syn_ack_nr" ]; then
|
||||
count=$(get_counter ${ns2} "MPTcpExtMPJoinSynAckRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$syn_ack_nr" ]; then
|
||||
# simult connections exceeding the limit with cookie enabled could go up to
|
||||
# synack validation as the conn limit can be enforced reliably only after
|
||||
# the subflow creation
|
||||
|
@ -1458,9 +1484,10 @@ chk_join_nr()
|
|||
fi
|
||||
|
||||
echo -n " - ack"
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinAckRx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$ack_nr" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtMPJoinAckRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo "[skip]"
|
||||
elif [ "$count" != "$ack_nr" ]; then
|
||||
echo "[fail] got $count JOIN[s] ack expected $ack_nr"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1492,12 +1519,12 @@ chk_stale_nr()
|
|||
local recover_nr
|
||||
|
||||
printf "%-${nr_blank}s %-18s" " " "stale"
|
||||
stale_nr=$(ip netns exec $ns nstat -as | grep MPTcpExtSubflowStale | awk '{print $2}')
|
||||
[ -z "$stale_nr" ] && stale_nr=0
|
||||
recover_nr=$(ip netns exec $ns nstat -as | grep MPTcpExtSubflowRecover | awk '{print $2}')
|
||||
[ -z "$recover_nr" ] && recover_nr=0
|
||||
|
||||
if [ $stale_nr -lt $stale_min ] ||
|
||||
stale_nr=$(get_counter ${ns} "MPTcpExtSubflowStale")
|
||||
recover_nr=$(get_counter ${ns} "MPTcpExtSubflowRecover")
|
||||
if [ -z "$stale_nr" ] || [ -z "$recover_nr" ]; then
|
||||
echo "[skip]"
|
||||
elif [ $stale_nr -lt $stale_min ] ||
|
||||
{ [ $stale_max -gt 0 ] && [ $stale_nr -gt $stale_max ]; } ||
|
||||
[ $((stale_nr - recover_nr)) -ne $stale_delta ]; then
|
||||
echo "[fail] got $stale_nr stale[s] $recover_nr recover[s], " \
|
||||
|
@ -1533,12 +1560,12 @@ chk_add_nr()
|
|||
timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "add"
|
||||
count=$(ip netns exec $ns2 nstat -as MPTcpExtAddAddr | grep MPTcpExtAddAddr | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
|
||||
count=$(get_counter ${ns2} "MPTcpExtAddAddr")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
# if the test configured a short timeout tolerate greater then expected
|
||||
# add addrs options, due to retransmissions
|
||||
if [ "$count" != "$add_nr" ] && { [ "$timeout" -gt 1 ] || [ "$count" -lt "$add_nr" ]; }; then
|
||||
elif [ "$count" != "$add_nr" ] && { [ "$timeout" -gt 1 ] || [ "$count" -lt "$add_nr" ]; }; then
|
||||
echo "[fail] got $count ADD_ADDR[s] expected $add_nr"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1547,9 +1574,10 @@ chk_add_nr()
|
|||
fi
|
||||
|
||||
echo -n " - echo "
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtEchoAdd | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$echo_nr" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtEchoAdd")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$echo_nr" ]; then
|
||||
echo "[fail] got $count ADD_ADDR echo[s] expected $echo_nr"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1559,9 +1587,10 @@ chk_add_nr()
|
|||
|
||||
if [ $port_nr -gt 0 ]; then
|
||||
echo -n " - pt "
|
||||
count=$(ip netns exec $ns2 nstat -as | grep MPTcpExtPortAdd | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$port_nr" ]; then
|
||||
count=$(get_counter ${ns2} "MPTcpExtPortAdd")
|
||||
if [ -z "$count" ]; then
|
||||
echo "[skip]"
|
||||
elif [ "$count" != "$port_nr" ]; then
|
||||
echo "[fail] got $count ADD_ADDR[s] with a port-number expected $port_nr"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1570,10 +1599,10 @@ chk_add_nr()
|
|||
fi
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "syn"
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinPortSynRx |
|
||||
awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$syn_nr" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtMPJoinPortSynRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$syn_nr" ]; then
|
||||
echo "[fail] got $count JOIN[s] syn with a different \
|
||||
port-number expected $syn_nr"
|
||||
fail_test
|
||||
|
@ -1583,10 +1612,10 @@ chk_add_nr()
|
|||
fi
|
||||
|
||||
echo -n " - synack"
|
||||
count=$(ip netns exec $ns2 nstat -as | grep MPTcpExtMPJoinPortSynAckRx |
|
||||
awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$syn_ack_nr" ]; then
|
||||
count=$(get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$syn_ack_nr" ]; then
|
||||
echo "[fail] got $count JOIN[s] synack with a different \
|
||||
port-number expected $syn_ack_nr"
|
||||
fail_test
|
||||
|
@ -1596,10 +1625,10 @@ chk_add_nr()
|
|||
fi
|
||||
|
||||
echo -n " - ack"
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinPortAckRx |
|
||||
awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$ack_nr" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtMPJoinPortAckRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo "[skip]"
|
||||
elif [ "$count" != "$ack_nr" ]; then
|
||||
echo "[fail] got $count JOIN[s] ack with a different \
|
||||
port-number expected $ack_nr"
|
||||
fail_test
|
||||
|
@ -1609,10 +1638,10 @@ chk_add_nr()
|
|||
fi
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "syn"
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtMismatchPortSynRx |
|
||||
awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$mis_syn_nr" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtMismatchPortSynRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$mis_syn_nr" ]; then
|
||||
echo "[fail] got $count JOIN[s] syn with a mismatched \
|
||||
port-number expected $mis_syn_nr"
|
||||
fail_test
|
||||
|
@ -1622,10 +1651,10 @@ chk_add_nr()
|
|||
fi
|
||||
|
||||
echo -n " - ack "
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtMismatchPortAckRx |
|
||||
awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$mis_ack_nr" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtMismatchPortAckRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo "[skip]"
|
||||
elif [ "$count" != "$mis_ack_nr" ]; then
|
||||
echo "[fail] got $count JOIN[s] ack with a mismatched \
|
||||
port-number expected $mis_ack_nr"
|
||||
fail_test
|
||||
|
@ -1669,9 +1698,10 @@ chk_rm_nr()
|
|||
fi
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "rm "
|
||||
count=$(ip netns exec $addr_ns nstat -as | grep MPTcpExtRmAddr | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$rm_addr_nr" ]; then
|
||||
count=$(get_counter ${addr_ns} "MPTcpExtRmAddr")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$rm_addr_nr" ]; then
|
||||
echo "[fail] got $count RM_ADDR[s] expected $rm_addr_nr"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1680,29 +1710,27 @@ chk_rm_nr()
|
|||
fi
|
||||
|
||||
echo -n " - rmsf "
|
||||
count=$(ip netns exec $subflow_ns nstat -as | grep MPTcpExtRmSubflow | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ -n "$simult" ]; then
|
||||
count=$(get_counter ${subflow_ns} "MPTcpExtRmSubflow")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ -n "$simult" ]; then
|
||||
local cnt suffix
|
||||
|
||||
cnt=$(ip netns exec $addr_ns nstat -as | grep MPTcpExtRmSubflow | awk '{print $2}')
|
||||
cnt=$(get_counter ${addr_ns} "MPTcpExtRmSubflow")
|
||||
|
||||
# in case of simult flush, the subflow removal count on each side is
|
||||
# unreliable
|
||||
[ -z "$cnt" ] && cnt=0
|
||||
count=$((count + cnt))
|
||||
[ "$count" != "$rm_subflow_nr" ] && suffix="$count in [$rm_subflow_nr:$((rm_subflow_nr*2))]"
|
||||
if [ $count -ge "$rm_subflow_nr" ] && \
|
||||
[ "$count" -le "$((rm_subflow_nr *2 ))" ]; then
|
||||
echo "[ ok ] $suffix"
|
||||
echo -n "[ ok ] $suffix"
|
||||
else
|
||||
echo "[fail] got $count RM_SUBFLOW[s] expected in range [$rm_subflow_nr:$((rm_subflow_nr*2))]"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
fi
|
||||
return
|
||||
fi
|
||||
if [ "$count" != "$rm_subflow_nr" ]; then
|
||||
elif [ "$count" != "$rm_subflow_nr" ]; then
|
||||
echo "[fail] got $count RM_SUBFLOW[s] expected $rm_subflow_nr"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1723,9 +1751,10 @@ chk_prio_nr()
|
|||
local dump_stats
|
||||
|
||||
printf "%-${nr_blank}s %s" " " "ptx"
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPPrioTx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$mp_prio_nr_tx" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtMPPrioTx")
|
||||
if [ -z "$count" ]; then
|
||||
echo -n "[skip]"
|
||||
elif [ "$count" != "$mp_prio_nr_tx" ]; then
|
||||
echo "[fail] got $count MP_PRIO[s] TX expected $mp_prio_nr_tx"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1734,9 +1763,10 @@ chk_prio_nr()
|
|||
fi
|
||||
|
||||
echo -n " - prx "
|
||||
count=$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPPrioRx | awk '{print $2}')
|
||||
[ -z "$count" ] && count=0
|
||||
if [ "$count" != "$mp_prio_nr_rx" ]; then
|
||||
count=$(get_counter ${ns1} "MPTcpExtMPPrioRx")
|
||||
if [ -z "$count" ]; then
|
||||
echo "[skip]"
|
||||
elif [ "$count" != "$mp_prio_nr_rx" ]; then
|
||||
echo "[fail] got $count MP_PRIO[s] RX expected $mp_prio_nr_rx"
|
||||
fail_test
|
||||
dump_stats=1
|
||||
|
@ -1852,7 +1882,7 @@ wait_attempt_fail()
|
|||
while [ $time -lt $timeout_ms ]; do
|
||||
local cnt
|
||||
|
||||
cnt=$(ip netns exec $ns nstat -as TcpAttemptFails | grep TcpAttemptFails | awk '{print $2}')
|
||||
cnt=$(get_counter ${ns} "TcpAttemptFails")
|
||||
|
||||
[ "$cnt" = 1 ] && return 1
|
||||
time=$((time + 100))
|
||||
|
|
Loading…
Reference in New Issue