Skip to content

Commit

Permalink
selftests: mptcp: add chk_subflows_total helper
Browse files Browse the repository at this point in the history
commit 8077541 upstream.

This patch adds a new helper chk_subflows_total(), in it use the newly
added counter mptcpi_subflows_total to get the "correct" amount of
subflows, including the initial one.

To be compatible with old 'ss' or kernel versions not supporting this
counter, get the total subflows by listing TCP connections that are
MPTCP subflows:

    ss -ti state state established state syn-sent state syn-recv |
        grep -c tcp-ulp-mptcp.

Reviewed-by: Matthieu Baerts <matttbe@kernel.org>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <martineau@kernel.org>
Link: https://lore.kernel.org/r/20231128-send-net-next-2023107-v4-3-8d6b94150f6b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
geliangtang authored and gregkh committed Mar 6, 2024
1 parent ae1fa39 commit f9190d7
Showing 1 changed file with 41 additions and 1 deletion.
42 changes: 41 additions & 1 deletion tools/testing/selftests/net/mptcp/mptcp_join.sh
Expand Up @@ -1840,7 +1840,7 @@ chk_mptcp_info()
local cnt2
local dump_stats

print_check "mptcp_info ${info1:0:8}=$exp1:$exp2"
print_check "mptcp_info ${info1:0:15}=$exp1:$exp2"

cnt1=$(ss -N $ns1 -inmHM | mptcp_lib_get_info_value "$info1" "$info1")
cnt2=$(ss -N $ns2 -inmHM | mptcp_lib_get_info_value "$info2" "$info2")
Expand All @@ -1861,6 +1861,42 @@ chk_mptcp_info()
fi
}

# $1: subflows in ns1 ; $2: subflows in ns2
# number of all subflows, including the initial subflow.
chk_subflows_total()
{
local cnt1
local cnt2
local info="subflows_total"
local dump_stats

# if subflows_total counter is supported, use it:
if [ -n "$(ss -N $ns1 -inmHM | mptcp_lib_get_info_value $info $info)" ]; then
chk_mptcp_info $info $1 $info $2
return
fi

print_check "$info $1:$2"

# if not, count the TCP connections that are in fact MPTCP subflows
cnt1=$(ss -N $ns1 -ti state established state syn-sent state syn-recv |
grep -c tcp-ulp-mptcp)
cnt2=$(ss -N $ns2 -ti state established state syn-sent state syn-recv |
grep -c tcp-ulp-mptcp)

if [ "$1" != "$cnt1" ] || [ "$2" != "$cnt2" ]; then
fail_test "got subflows $cnt1:$cnt2 expected $1:$2"
dump_stats=1
else
print_ok
fi

if [ "$dump_stats" = 1 ]; then
ss -N $ns1 -ti
ss -N $ns2 -ti
fi
}

chk_link_usage()
{
local ns=$1
Expand Down Expand Up @@ -3404,10 +3440,12 @@ userspace_tests()
chk_join_nr 1 1 1
chk_add_nr 1 1
chk_mptcp_info subflows 1 subflows 1
chk_subflows_total 2 2
chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
userspace_pm_rm_sf_addr_ns1 10.0.2.1 10
chk_rm_nr 1 1 invert
chk_mptcp_info subflows 0 subflows 0
chk_subflows_total 1 1
kill_events_pids
mptcp_lib_kill_wait $tests_pid
fi
Expand All @@ -3424,9 +3462,11 @@ userspace_tests()
userspace_pm_add_sf 10.0.3.2 20
chk_join_nr 1 1 1
chk_mptcp_info subflows 1 subflows 1
chk_subflows_total 2 2
userspace_pm_rm_sf_addr_ns2 10.0.3.2 20
chk_rm_nr 1 1
chk_mptcp_info subflows 0 subflows 0
chk_subflows_total 1 1
kill_events_pids
mptcp_lib_kill_wait $tests_pid
fi
Expand Down

0 comments on commit f9190d7

Please sign in to comment.