2020-03-27 21:48:53 +00:00
|
|
|
#!/bin/bash
|
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
2022-03-09 19:16:36 +00:00
|
|
|
# Double quotes to prevent globbing and word splitting is recommended in new
|
|
|
|
# code but we accept it, especially because there were too many before having
|
|
|
|
# address all other issues detected by shellcheck.
|
|
|
|
#shellcheck disable=SC2086
|
|
|
|
|
2023-04-14 15:47:10 +00:00
|
|
|
# ShellCheck incorrectly believes that most of the code here is unreachable
|
|
|
|
# because it's invoked by variable name, see how the "tests" array is used
|
|
|
|
#shellcheck disable=SC2317
|
|
|
|
|
2023-05-28 17:35:29 +00:00
|
|
|
. "$(dirname "${0}")/mptcp_lib.sh"
|
|
|
|
|
2020-03-27 21:48:53 +00:00
|
|
|
ret=0
|
|
|
|
sin=""
|
2021-08-13 22:15:48 +00:00
|
|
|
sinfail=""
|
2020-03-27 21:48:53 +00:00
|
|
|
sout=""
|
|
|
|
cin=""
|
2021-08-13 22:15:48 +00:00
|
|
|
cinfail=""
|
2020-11-19 19:45:57 +00:00
|
|
|
cinsent=""
|
2023-05-28 17:35:26 +00:00
|
|
|
tmpfile=""
|
2020-03-27 21:48:53 +00:00
|
|
|
cout=""
|
2024-03-01 18:18:34 +00:00
|
|
|
err=""
|
2022-03-09 19:16:34 +00:00
|
|
|
capout=""
|
|
|
|
ns1=""
|
|
|
|
ns2=""
|
2020-03-27 21:48:53 +00:00
|
|
|
ksft_skip=4
|
2023-06-10 16:11:37 +00:00
|
|
|
iptables="iptables"
|
|
|
|
ip6tables="ip6tables"
|
2021-04-01 23:19:45 +00:00
|
|
|
timeout_poll=30
|
|
|
|
timeout_test=$((timeout_poll * 2 + 1))
|
2024-02-23 20:17:59 +00:00
|
|
|
capture=false
|
|
|
|
checksum=false
|
2022-02-05 00:03:32 +00:00
|
|
|
ip_mptcp=0
|
2022-03-04 19:36:34 +00:00
|
|
|
check_invert=0
|
2024-02-23 20:17:59 +00:00
|
|
|
validate_checksum=false
|
2022-02-18 03:03:09 +00:00
|
|
|
init=0
|
2022-11-30 14:06:32 +00:00
|
|
|
evts_ns1=""
|
|
|
|
evts_ns2=""
|
|
|
|
evts_ns1_pid=0
|
|
|
|
evts_ns2_pid=0
|
2023-07-17 13:21:29 +00:00
|
|
|
last_test_failed=0
|
|
|
|
last_test_skipped=0
|
|
|
|
last_test_ignored=1
|
2020-03-27 21:48:53 +00:00
|
|
|
|
2022-03-09 19:16:28 +00:00
|
|
|
declare -A all_tests
|
2022-03-09 19:16:31 +00:00
|
|
|
declare -a only_tests_ids
|
|
|
|
declare -a only_tests_names
|
2022-03-09 19:16:32 +00:00
|
|
|
declare -A failed_tests
|
2024-03-08 22:10:13 +00:00
|
|
|
MPTCP_LIB_TEST_FORMAT="%03u %s\n"
|
2022-03-09 19:16:31 +00:00
|
|
|
TEST_NAME=""
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
nr_blank=6
|
2020-03-27 21:48:53 +00:00
|
|
|
|
2023-07-12 16:03:16 +00:00
|
|
|
# These var are used only in some tests, make sure they are not already set
|
|
|
|
unset FAILING_LINKS
|
|
|
|
unset test_linkfail
|
|
|
|
unset addr_nr_ns1
|
|
|
|
unset addr_nr_ns2
|
2023-12-22 12:47:24 +00:00
|
|
|
unset cestab_ns1
|
|
|
|
unset cestab_ns2
|
2023-07-12 16:03:16 +00:00
|
|
|
unset sflags
|
2023-07-12 16:03:17 +00:00
|
|
|
unset fastclose
|
2023-07-12 16:03:18 +00:00
|
|
|
unset fullmesh
|
2023-07-12 16:03:19 +00:00
|
|
|
unset speed
|
2022-03-09 19:16:29 +00:00
|
|
|
|
2020-11-03 19:05:09 +00:00
|
|
|
# generated using "nfbpf_compile '(ip && (ip[54] & 0xf0) == 0x30) ||
|
|
|
|
# (ip6 && (ip6[74] & 0xf0) == 0x30)'"
|
|
|
|
CBPF_MPTCP_SUBOPTION_ADD_ADDR="14,
|
|
|
|
48 0 0 0,
|
|
|
|
84 0 0 240,
|
|
|
|
21 0 3 64,
|
|
|
|
48 0 0 54,
|
|
|
|
84 0 0 240,
|
|
|
|
21 6 7 48,
|
|
|
|
48 0 0 0,
|
|
|
|
84 0 0 240,
|
|
|
|
21 0 4 96,
|
|
|
|
48 0 0 74,
|
|
|
|
84 0 0 240,
|
|
|
|
21 0 1 48,
|
|
|
|
6 0 0 65535,
|
|
|
|
6 0 0 0"
|
|
|
|
|
2022-02-18 03:03:09 +00:00
|
|
|
init_partial()
|
2020-03-27 21:48:53 +00:00
|
|
|
{
|
|
|
|
capout=$(mktemp)
|
|
|
|
|
2024-03-06 09:42:53 +00:00
|
|
|
mptcp_lib_ns_init ns1 ns2
|
2020-03-27 21:48:53 +00:00
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local netns
|
|
|
|
for netns in "$ns1" "$ns2"; do
|
2023-06-10 16:11:47 +00:00
|
|
|
ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
|
2024-02-23 20:17:59 +00:00
|
|
|
if $checksum; then
|
2021-06-17 23:46:22 +00:00
|
|
|
ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=1
|
|
|
|
fi
|
2020-03-27 21:48:53 +00:00
|
|
|
done
|
|
|
|
|
2022-03-04 19:36:34 +00:00
|
|
|
check_invert=0
|
2022-03-09 19:16:27 +00:00
|
|
|
validate_checksum=$checksum
|
2022-03-04 19:36:34 +00:00
|
|
|
|
2022-03-09 19:16:36 +00:00
|
|
|
# ns1 ns2
|
2020-03-27 21:48:53 +00:00
|
|
|
# ns1eth1 ns2eth1
|
|
|
|
# ns1eth2 ns2eth2
|
|
|
|
# ns1eth3 ns2eth3
|
|
|
|
# ns1eth4 ns2eth4
|
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local i
|
2022-03-09 19:16:35 +00:00
|
|
|
for i in $(seq 1 4); do
|
2020-03-27 21:48:53 +00:00
|
|
|
ip link add ns1eth$i netns "$ns1" type veth peer name ns2eth$i netns "$ns2"
|
|
|
|
ip -net "$ns1" addr add 10.0.$i.1/24 dev ns1eth$i
|
|
|
|
ip -net "$ns1" addr add dead:beef:$i::1/64 dev ns1eth$i nodad
|
|
|
|
ip -net "$ns1" link set ns1eth$i up
|
|
|
|
|
|
|
|
ip -net "$ns2" addr add 10.0.$i.2/24 dev ns2eth$i
|
|
|
|
ip -net "$ns2" addr add dead:beef:$i::2/64 dev ns2eth$i nodad
|
|
|
|
ip -net "$ns2" link set ns2eth$i up
|
|
|
|
|
|
|
|
# let $ns2 reach any $ns1 address from any interface
|
|
|
|
ip -net "$ns2" route add default via 10.0.$i.1 dev ns2eth$i metric 10$i
|
2022-01-21 00:35:29 +00:00
|
|
|
ip -net "$ns2" route add default via dead:beef:$i::1 dev ns2eth$i metric 10$i
|
2020-03-27 21:48:53 +00:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2021-08-13 22:15:48 +00:00
|
|
|
init_shapers()
|
|
|
|
{
|
2022-03-09 19:16:34 +00:00
|
|
|
local i
|
2022-03-09 19:16:35 +00:00
|
|
|
for i in $(seq 1 4); do
|
2021-08-13 22:15:48 +00:00
|
|
|
tc -n $ns1 qdisc add dev ns1eth$i root netem rate 20mbit delay 1
|
|
|
|
tc -n $ns2 qdisc add dev ns2eth$i root netem rate 20mbit delay 1
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2020-03-27 21:48:53 +00:00
|
|
|
cleanup_partial()
|
|
|
|
{
|
|
|
|
rm -f "$capout"
|
|
|
|
|
2024-03-06 09:42:53 +00:00
|
|
|
mptcp_lib_ns_exit "${ns1}" "${ns2}"
|
2020-03-27 21:48:53 +00:00
|
|
|
}
|
|
|
|
|
2022-02-18 03:03:09 +00:00
|
|
|
init() {
|
|
|
|
init=1
|
|
|
|
|
2024-03-06 09:42:51 +00:00
|
|
|
mptcp_lib_check_mptcp
|
|
|
|
mptcp_lib_check_kallsyms
|
|
|
|
mptcp_lib_check_tools ip ss "${iptables}" "${ip6tables}"
|
2022-02-18 03:03:10 +00:00
|
|
|
|
2022-02-18 03:03:09 +00:00
|
|
|
sin=$(mktemp)
|
|
|
|
sout=$(mktemp)
|
|
|
|
cin=$(mktemp)
|
|
|
|
cinsent=$(mktemp)
|
|
|
|
cout=$(mktemp)
|
2024-03-01 18:18:34 +00:00
|
|
|
err=$(mktemp)
|
2022-11-30 14:06:32 +00:00
|
|
|
evts_ns1=$(mktemp)
|
|
|
|
evts_ns2=$(mktemp)
|
2022-02-18 03:03:09 +00:00
|
|
|
|
|
|
|
trap cleanup EXIT
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
make_file "$cin" "client" 1 >/dev/null
|
|
|
|
make_file "$sin" "server" 1 >/dev/null
|
2022-02-18 03:03:09 +00:00
|
|
|
}
|
|
|
|
|
2020-03-27 21:48:53 +00:00
|
|
|
cleanup()
|
|
|
|
{
|
2021-08-13 22:15:48 +00:00
|
|
|
rm -f "$cin" "$cout" "$sinfail"
|
|
|
|
rm -f "$sin" "$sout" "$cinsent" "$cinfail"
|
2023-05-28 17:35:26 +00:00
|
|
|
rm -f "$tmpfile"
|
2022-11-30 14:06:32 +00:00
|
|
|
rm -rf $evts_ns1 $evts_ns2
|
2024-03-01 18:18:34 +00:00
|
|
|
rm -f "$err"
|
2020-03-27 21:48:53 +00:00
|
|
|
cleanup_partial
|
|
|
|
}
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check()
|
|
|
|
{
|
|
|
|
printf "%-${nr_blank}s%-36s" " " "${*}"
|
|
|
|
}
|
|
|
|
|
|
|
|
print_info()
|
|
|
|
{
|
|
|
|
# It can be empty, no need to print anything then
|
|
|
|
[ -z "${1}" ] && return
|
|
|
|
|
2023-07-30 08:05:16 +00:00
|
|
|
mptcp_lib_print_info " Info: ${*}"
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
print_ok()
|
|
|
|
{
|
2023-07-30 08:05:16 +00:00
|
|
|
mptcp_lib_print_ok "[ ok ]${1:+ ${*}}"
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
print_fail()
|
|
|
|
{
|
2023-07-30 08:05:16 +00:00
|
|
|
mptcp_lib_print_err "[fail]${1:+ ${*}}"
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
print_skip()
|
|
|
|
{
|
2023-07-30 08:05:16 +00:00
|
|
|
mptcp_lib_print_warn "[skip]${1:+ ${*}}"
|
2023-06-10 16:11:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# [ $1: fail msg ]
|
|
|
|
mark_as_skipped()
|
|
|
|
{
|
|
|
|
local msg="${1:-"Feature not supported"}"
|
|
|
|
|
|
|
|
mptcp_lib_fail_if_expected_feature "${msg}"
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "${msg}"
|
|
|
|
print_skip
|
2023-07-17 13:21:29 +00:00
|
|
|
|
|
|
|
last_test_skipped=1
|
2023-06-10 16:11:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# $@: condition
|
|
|
|
continue_if()
|
|
|
|
{
|
|
|
|
if ! "${@}"; then
|
|
|
|
mark_as_skipped
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-03-09 19:16:30 +00:00
|
|
|
skip_test()
|
|
|
|
{
|
2022-03-09 19:16:31 +00:00
|
|
|
if [ "${#only_tests_ids[@]}" -eq 0 ] && [ "${#only_tests_names[@]}" -eq 0 ]; then
|
2022-03-09 19:16:30 +00:00
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
local i
|
2022-03-09 19:16:31 +00:00
|
|
|
for i in "${only_tests_ids[@]}"; do
|
2024-03-08 22:10:13 +00:00
|
|
|
if [ "$((MPTCP_LIB_TEST_COUNTER+1))" -eq "${i}" ]; then
|
2022-03-09 19:16:30 +00:00
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
done
|
2022-03-09 19:16:31 +00:00
|
|
|
for i in "${only_tests_names[@]}"; do
|
|
|
|
if [ "${TEST_NAME}" = "${i}" ]; then
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
done
|
2022-03-09 19:16:30 +00:00
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2023-07-17 13:21:29 +00:00
|
|
|
append_prev_results()
|
|
|
|
{
|
|
|
|
if [ ${last_test_failed} -eq 1 ]; then
|
|
|
|
mptcp_lib_result_fail "${TEST_NAME}"
|
|
|
|
elif [ ${last_test_skipped} -eq 1 ]; then
|
|
|
|
mptcp_lib_result_skip "${TEST_NAME}"
|
|
|
|
elif [ ${last_test_ignored} -ne 1 ]; then
|
|
|
|
mptcp_lib_result_pass "${TEST_NAME}"
|
|
|
|
fi
|
|
|
|
|
|
|
|
last_test_failed=0
|
|
|
|
last_test_skipped=0
|
|
|
|
last_test_ignored=0
|
|
|
|
}
|
|
|
|
|
2022-03-09 19:16:31 +00:00
|
|
|
# $1: test name
|
2020-03-27 21:48:53 +00:00
|
|
|
reset()
|
|
|
|
{
|
2023-07-17 13:21:29 +00:00
|
|
|
append_prev_results
|
|
|
|
|
2022-03-09 19:16:31 +00:00
|
|
|
TEST_NAME="${1}"
|
|
|
|
|
2022-03-09 19:16:30 +00:00
|
|
|
if skip_test; then
|
2024-03-08 22:10:13 +00:00
|
|
|
MPTCP_LIB_TEST_COUNTER=$((MPTCP_LIB_TEST_COUNTER+1))
|
2023-07-17 13:21:29 +00:00
|
|
|
last_test_ignored=1
|
2022-03-09 19:16:30 +00:00
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
2024-03-08 22:10:13 +00:00
|
|
|
mptcp_lib_print_title "${TEST_NAME}"
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
|
2022-02-18 03:03:09 +00:00
|
|
|
if [ "${init}" != "1" ]; then
|
|
|
|
init
|
|
|
|
else
|
|
|
|
cleanup_partial
|
|
|
|
fi
|
|
|
|
|
|
|
|
init_partial
|
2022-03-09 19:16:30 +00:00
|
|
|
|
|
|
|
return 0
|
2020-03-27 21:48:53 +00:00
|
|
|
}
|
|
|
|
|
2023-06-10 16:11:42 +00:00
|
|
|
# $1: test name ; $2: counter to check
|
|
|
|
reset_check_counter()
|
|
|
|
{
|
|
|
|
reset "${1}" || return 1
|
|
|
|
|
|
|
|
local counter="${2}"
|
|
|
|
|
|
|
|
if ! nstat -asz "${counter}" | grep -wq "${counter}"; then
|
|
|
|
mark_as_skipped "counter '${counter}' is not available"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-03-09 19:16:31 +00:00
|
|
|
# $1: test name
|
2020-07-30 19:25:58 +00:00
|
|
|
reset_with_cookies()
|
|
|
|
{
|
2022-03-09 19:16:31 +00:00
|
|
|
reset "${1}" || return 1
|
2020-07-30 19:25:58 +00:00
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local netns
|
|
|
|
for netns in "$ns1" "$ns2"; do
|
2020-07-30 19:25:58 +00:00
|
|
|
ip netns exec $netns sysctl -q net.ipv4.tcp_syncookies=2
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2022-03-09 19:16:31 +00:00
|
|
|
# $1: test name
|
2020-11-03 19:05:09 +00:00
|
|
|
reset_with_add_addr_timeout()
|
|
|
|
{
|
2022-03-09 19:16:31 +00:00
|
|
|
local ip="${2:-4}"
|
2020-11-03 19:05:09 +00:00
|
|
|
local tables
|
|
|
|
|
2022-03-09 19:16:31 +00:00
|
|
|
reset "${1}" || return 1
|
|
|
|
|
2023-06-10 16:11:37 +00:00
|
|
|
tables="${iptables}"
|
2020-11-03 19:05:09 +00:00
|
|
|
if [ $ip -eq 6 ]; then
|
2023-06-10 16:11:37 +00:00
|
|
|
tables="${ip6tables}"
|
2020-11-03 19:05:09 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
|
2023-06-10 16:11:40 +00:00
|
|
|
|
|
|
|
if ! ip netns exec $ns2 $tables -A OUTPUT -p tcp \
|
|
|
|
-m tcp --tcp-option 30 \
|
|
|
|
-m bpf --bytecode \
|
|
|
|
"$CBPF_MPTCP_SUBOPTION_ADD_ADDR" \
|
|
|
|
-j DROP; then
|
|
|
|
mark_as_skipped "unable to set the 'add addr' rule"
|
|
|
|
return 1
|
|
|
|
fi
|
2020-11-03 19:05:09 +00:00
|
|
|
}
|
|
|
|
|
2022-03-09 19:16:31 +00:00
|
|
|
# $1: test name
|
2021-06-17 23:46:22 +00:00
|
|
|
reset_with_checksum()
|
|
|
|
{
|
|
|
|
local ns1_enable=$1
|
|
|
|
local ns2_enable=$2
|
|
|
|
|
2022-03-09 19:16:31 +00:00
|
|
|
reset "checksum test ${1} ${2}" || return 1
|
2021-06-17 23:46:22 +00:00
|
|
|
|
|
|
|
ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=$ns1_enable
|
|
|
|
ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=$ns2_enable
|
2022-03-09 19:16:27 +00:00
|
|
|
|
2024-02-23 20:17:59 +00:00
|
|
|
validate_checksum=true
|
2021-06-17 23:46:22 +00:00
|
|
|
}
|
|
|
|
|
2021-06-22 19:25:21 +00:00
|
|
|
reset_with_allow_join_id0()
|
|
|
|
{
|
2022-03-09 19:16:31 +00:00
|
|
|
local ns1_enable=$2
|
|
|
|
local ns2_enable=$3
|
2021-06-22 19:25:21 +00:00
|
|
|
|
2022-03-09 19:16:31 +00:00
|
|
|
reset "${1}" || return 1
|
2021-06-22 19:25:21 +00:00
|
|
|
|
|
|
|
ip netns exec $ns1 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns1_enable
|
|
|
|
ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns2_enable
|
|
|
|
}
|
|
|
|
|
2022-04-26 21:57:11 +00:00
|
|
|
# Modify TCP payload without corrupting the TCP packet
|
|
|
|
#
|
|
|
|
# This rule inverts a 8-bit word at byte offset 148 for the 2nd TCP ACK packets
|
|
|
|
# carrying enough data.
|
|
|
|
# Once it is done, the TCP Checksum field is updated so the packet is still
|
|
|
|
# considered as valid at the TCP level.
|
|
|
|
# Because the MPTCP checksum, covering the TCP options and data, has not been
|
|
|
|
# updated, the modification will be detected and an MP_FAIL will be emitted:
|
|
|
|
# what we want to validate here without corrupting "random" MPTCP options.
|
|
|
|
#
|
|
|
|
# To avoid having tc producing this pr_info() message for each TCP ACK packets
|
|
|
|
# not carrying enough data:
|
|
|
|
#
|
|
|
|
# tc action pedit offset 162 out of bounds
|
|
|
|
#
|
|
|
|
# Netfilter is used to mark packets with enough data.
|
2023-06-10 16:11:40 +00:00
|
|
|
setup_fail_rules()
|
2022-04-26 21:57:11 +00:00
|
|
|
{
|
|
|
|
check_invert=1
|
2024-02-23 20:17:59 +00:00
|
|
|
validate_checksum=true
|
2023-06-10 16:11:40 +00:00
|
|
|
local i="$1"
|
|
|
|
local ip="${2:-4}"
|
2022-04-26 21:57:11 +00:00
|
|
|
local tables
|
|
|
|
|
2023-06-10 16:11:37 +00:00
|
|
|
tables="${iptables}"
|
2022-04-26 21:57:11 +00:00
|
|
|
if [ $ip -eq 6 ]; then
|
2023-06-10 16:11:37 +00:00
|
|
|
tables="${ip6tables}"
|
2022-04-26 21:57:11 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
ip netns exec $ns2 $tables \
|
|
|
|
-t mangle \
|
|
|
|
-A OUTPUT \
|
|
|
|
-o ns2eth$i \
|
|
|
|
-p tcp \
|
|
|
|
-m length --length 150:9999 \
|
|
|
|
-m statistic --mode nth --packet 1 --every 99999 \
|
2023-06-10 16:11:40 +00:00
|
|
|
-j MARK --set-mark 42 || return ${ksft_skip}
|
2022-04-26 21:57:11 +00:00
|
|
|
|
2023-06-10 16:11:40 +00:00
|
|
|
tc -n $ns2 qdisc add dev ns2eth$i clsact || return ${ksft_skip}
|
2022-04-26 21:57:11 +00:00
|
|
|
tc -n $ns2 filter add dev ns2eth$i egress \
|
|
|
|
protocol ip prio 1000 \
|
|
|
|
handle 42 fw \
|
|
|
|
action pedit munge offset 148 u8 invert \
|
|
|
|
pipe csum tcp \
|
2023-06-10 16:11:40 +00:00
|
|
|
index 100 || return ${ksft_skip}
|
|
|
|
}
|
|
|
|
|
|
|
|
reset_with_fail()
|
|
|
|
{
|
2023-06-10 16:11:48 +00:00
|
|
|
reset_check_counter "${1}" "MPTcpExtInfiniteMapTx" || return 1
|
2023-06-10 16:11:40 +00:00
|
|
|
shift
|
|
|
|
|
|
|
|
ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=1
|
|
|
|
ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=1
|
|
|
|
|
|
|
|
local rc=0
|
|
|
|
setup_fail_rules "${@}" || rc=$?
|
|
|
|
|
|
|
|
if [ ${rc} -eq ${ksft_skip} ]; then
|
|
|
|
mark_as_skipped "unable to set the 'fail' rules"
|
|
|
|
return 1
|
|
|
|
fi
|
2022-04-26 21:57:11 +00:00
|
|
|
}
|
|
|
|
|
2022-11-30 14:06:32 +00:00
|
|
|
reset_with_events()
|
|
|
|
{
|
|
|
|
reset "${1}" || return 1
|
|
|
|
|
2024-03-06 09:42:55 +00:00
|
|
|
mptcp_lib_events "${ns1}" "${evts_ns1}" evts_ns1_pid
|
|
|
|
mptcp_lib_events "${ns2}" "${evts_ns2}" evts_ns2_pid
|
2022-11-30 14:06:32 +00:00
|
|
|
}
|
|
|
|
|
2023-06-10 16:11:40 +00:00
|
|
|
reset_with_tcp_filter()
|
|
|
|
{
|
|
|
|
reset "${1}" || return 1
|
|
|
|
shift
|
|
|
|
|
|
|
|
local ns="${!1}"
|
|
|
|
local src="${2}"
|
|
|
|
local target="${3}"
|
|
|
|
|
|
|
|
if ! ip netns exec "${ns}" ${iptables} \
|
|
|
|
-A INPUT \
|
|
|
|
-s "${src}" \
|
|
|
|
-p tcp \
|
|
|
|
-j "${target}"; then
|
|
|
|
mark_as_skipped "unable to set the filter rules"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
# $1: err msg
|
2022-03-09 19:16:32 +00:00
|
|
|
fail_test()
|
|
|
|
{
|
|
|
|
ret=1
|
2023-05-17 19:16:18 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_fail "${@}"
|
|
|
|
|
2023-07-17 13:21:29 +00:00
|
|
|
# just in case a test is marked twice as failed
|
|
|
|
if [ ${last_test_failed} -eq 0 ]; then
|
2024-03-08 22:10:12 +00:00
|
|
|
failed_tests[${MPTCP_LIB_TEST_COUNTER}]="${TEST_NAME}"
|
2023-07-17 13:21:29 +00:00
|
|
|
dump_stats
|
|
|
|
last_test_failed=1
|
|
|
|
fi
|
2022-03-09 19:16:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
get_failed_tests_ids()
|
|
|
|
{
|
|
|
|
# sorted
|
|
|
|
local i
|
|
|
|
for i in "${!failed_tests[@]}"; do
|
|
|
|
echo "${i}"
|
|
|
|
done | sort -n
|
|
|
|
}
|
|
|
|
|
2020-03-27 21:48:53 +00:00
|
|
|
check_transfer()
|
|
|
|
{
|
2022-03-09 19:16:34 +00:00
|
|
|
local in=$1
|
|
|
|
local out=$2
|
|
|
|
local what=$3
|
2022-09-30 15:59:33 +00:00
|
|
|
local bytes=$4
|
2022-03-09 19:16:36 +00:00
|
|
|
local i a b
|
2020-03-27 21:48:53 +00:00
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local line
|
2022-09-30 15:59:33 +00:00
|
|
|
if [ -n "$bytes" ]; then
|
2023-04-14 15:47:10 +00:00
|
|
|
local out_size
|
2022-09-30 15:59:33 +00:00
|
|
|
# when truncating we must check the size explicitly
|
2023-04-14 15:47:10 +00:00
|
|
|
out_size=$(wc -c $out | awk '{print $1}')
|
2022-09-30 15:59:33 +00:00
|
|
|
if [ $out_size -ne $bytes ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "$what output file has wrong size ($out_size, $bytes)"
|
2022-09-30 15:59:33 +00:00
|
|
|
return 1
|
|
|
|
fi
|
2023-05-28 17:35:26 +00:00
|
|
|
|
|
|
|
# note: BusyBox's "cmp" command doesn't support --bytes
|
|
|
|
tmpfile=$(mktemp)
|
|
|
|
head --bytes="$bytes" "$in" > "$tmpfile"
|
|
|
|
mv "$tmpfile" "$in"
|
|
|
|
head --bytes="$bytes" "$out" > "$tmpfile"
|
|
|
|
mv "$tmpfile" "$out"
|
|
|
|
tmpfile=""
|
2022-09-30 15:59:33 +00:00
|
|
|
fi
|
2023-05-28 17:35:26 +00:00
|
|
|
cmp -l "$in" "$out" | while read -r i a b; do
|
2022-03-09 19:16:36 +00:00
|
|
|
local sum=$((0${a} + 0${b}))
|
2022-03-04 19:36:34 +00:00
|
|
|
if [ $check_invert -eq 0 ] || [ $sum -ne $((0xff)) ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "$what does not match (in, out):"
|
2023-11-28 23:18:58 +00:00
|
|
|
mptcp_lib_print_file_err "$in"
|
|
|
|
mptcp_lib_print_file_err "$out"
|
2022-03-04 19:36:34 +00:00
|
|
|
|
|
|
|
return 1
|
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_info "$what has inverted byte at ${i}"
|
2022-03-04 19:36:34 +00:00
|
|
|
fi
|
|
|
|
done
|
2020-03-27 21:48:53 +00:00
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
do_ping()
|
|
|
|
{
|
2022-03-09 19:16:34 +00:00
|
|
|
local listener_ns="$1"
|
|
|
|
local connector_ns="$2"
|
|
|
|
local connect_addr="$3"
|
2020-03-27 21:48:53 +00:00
|
|
|
|
2022-03-09 19:16:36 +00:00
|
|
|
if ! ip netns exec ${connector_ns} ping -q -c 1 $connect_addr >/dev/null; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "$listener_ns -> $connect_addr connectivity"
|
2020-03-27 21:48:53 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2020-11-19 19:45:57 +00:00
|
|
|
link_failure()
|
|
|
|
{
|
2022-03-09 19:16:34 +00:00
|
|
|
local ns="$1"
|
2020-11-19 19:45:57 +00:00
|
|
|
|
2021-08-13 22:15:48 +00:00
|
|
|
if [ -z "$FAILING_LINKS" ]; then
|
|
|
|
l=$((RANDOM%4))
|
|
|
|
FAILING_LINKS=$((l+1))
|
|
|
|
fi
|
2020-11-19 19:45:57 +00:00
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local l
|
2021-08-13 22:15:48 +00:00
|
|
|
for l in $FAILING_LINKS; do
|
2022-03-09 19:16:34 +00:00
|
|
|
local veth="ns1eth$l"
|
2021-08-13 22:15:48 +00:00
|
|
|
ip -net "$ns" link set "$veth" down
|
|
|
|
done
|
2020-11-19 19:45:57 +00:00
|
|
|
}
|
|
|
|
|
2023-06-10 16:11:39 +00:00
|
|
|
rm_addr_count()
|
|
|
|
{
|
2023-11-28 23:18:55 +00:00
|
|
|
mptcp_lib_get_counter "${1}" "MPTcpExtRmAddr"
|
2022-01-07 19:25:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# $1: ns, $2: old rm_addr counter in $ns
|
|
|
|
wait_rm_addr()
|
|
|
|
{
|
|
|
|
local ns="${1}"
|
|
|
|
local old_cnt="${2}"
|
|
|
|
local cnt
|
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local i
|
2022-01-07 19:25:22 +00:00
|
|
|
for i in $(seq 10); do
|
|
|
|
cnt=$(rm_addr_count ${ns})
|
|
|
|
[ "$cnt" = "${old_cnt}" ] || break
|
|
|
|
sleep 0.1
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2023-06-23 17:34:07 +00:00
|
|
|
rm_sf_count()
|
|
|
|
{
|
2023-11-28 23:18:55 +00:00
|
|
|
mptcp_lib_get_counter "${1}" "MPTcpExtRmSubflow"
|
2023-06-23 17:34:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# $1: ns, $2: old rm_sf counter in $ns
|
|
|
|
wait_rm_sf()
|
|
|
|
{
|
|
|
|
local ns="${1}"
|
|
|
|
local old_cnt="${2}"
|
|
|
|
local cnt
|
|
|
|
|
|
|
|
local i
|
|
|
|
for i in $(seq 10); do
|
|
|
|
cnt=$(rm_sf_count ${ns})
|
|
|
|
[ "$cnt" = "${old_cnt}" ] || break
|
|
|
|
sleep 0.1
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2022-03-07 20:44:38 +00:00
|
|
|
wait_mpj()
|
|
|
|
{
|
|
|
|
local ns="${1}"
|
|
|
|
local cnt old_cnt
|
|
|
|
|
2023-11-28 23:18:55 +00:00
|
|
|
old_cnt=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx")
|
2022-03-07 20:44:38 +00:00
|
|
|
|
|
|
|
local i
|
|
|
|
for i in $(seq 10); do
|
2023-11-28 23:18:55 +00:00
|
|
|
cnt=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx")
|
2022-03-07 20:44:38 +00:00
|
|
|
[ "$cnt" = "${old_cnt}" ] || break
|
|
|
|
sleep 0.1
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2022-11-30 14:06:32 +00:00
|
|
|
kill_events_pids()
|
|
|
|
{
|
2023-11-28 23:18:53 +00:00
|
|
|
mptcp_lib_kill_wait $evts_ns1_pid
|
2024-03-06 09:42:55 +00:00
|
|
|
evts_ns1_pid=0
|
2023-11-28 23:18:53 +00:00
|
|
|
mptcp_lib_kill_wait $evts_ns2_pid
|
2024-03-06 09:42:55 +00:00
|
|
|
evts_ns2_pid=0
|
2022-11-30 14:06:32 +00:00
|
|
|
}
|
|
|
|
|
2022-02-05 00:03:32 +00:00
|
|
|
pm_nl_set_limits()
|
|
|
|
{
|
|
|
|
local ns=$1
|
|
|
|
local addrs=$2
|
|
|
|
local subflows=$3
|
|
|
|
|
|
|
|
if [ $ip_mptcp -eq 1 ]; then
|
|
|
|
ip -n $ns mptcp limits set add_addr_accepted $addrs subflows $subflows
|
|
|
|
else
|
|
|
|
ip netns exec $ns ./pm_nl_ctl limits $addrs $subflows
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
pm_nl_add_endpoint()
|
|
|
|
{
|
|
|
|
local ns=$1
|
|
|
|
local addr=$2
|
2022-03-09 19:16:34 +00:00
|
|
|
local flags _flags
|
|
|
|
local port _port
|
|
|
|
local dev _dev
|
|
|
|
local id _id
|
2022-02-05 00:03:32 +00:00
|
|
|
local nr=2
|
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local p
|
2022-03-09 19:16:36 +00:00
|
|
|
for p in "${@}"
|
2022-02-05 00:03:32 +00:00
|
|
|
do
|
|
|
|
if [ $p = "flags" ]; then
|
|
|
|
eval _flags=\$"$nr"
|
2022-03-09 19:16:36 +00:00
|
|
|
[ -n "$_flags" ]; flags="flags $_flags"
|
2022-02-05 00:03:32 +00:00
|
|
|
fi
|
|
|
|
if [ $p = "dev" ]; then
|
|
|
|
eval _dev=\$"$nr"
|
2022-03-09 19:16:36 +00:00
|
|
|
[ -n "$_dev" ]; dev="dev $_dev"
|
2022-02-05 00:03:32 +00:00
|
|
|
fi
|
|
|
|
if [ $p = "id" ]; then
|
|
|
|
eval _id=\$"$nr"
|
2022-03-09 19:16:36 +00:00
|
|
|
[ -n "$_id" ]; id="id $_id"
|
2022-02-05 00:03:32 +00:00
|
|
|
fi
|
|
|
|
if [ $p = "port" ]; then
|
|
|
|
eval _port=\$"$nr"
|
2022-03-09 19:16:36 +00:00
|
|
|
[ -n "$_port" ]; port="port $_port"
|
2022-02-05 00:03:32 +00:00
|
|
|
fi
|
|
|
|
|
2022-03-09 19:16:36 +00:00
|
|
|
nr=$((nr + 1))
|
2022-02-05 00:03:32 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
if [ $ip_mptcp -eq 1 ]; then
|
|
|
|
ip -n $ns mptcp endpoint add $addr ${_flags//","/" "} $dev $id $port
|
|
|
|
else
|
|
|
|
ip netns exec $ns ./pm_nl_ctl add $addr $flags $dev $id $port
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
pm_nl_del_endpoint()
|
|
|
|
{
|
|
|
|
local ns=$1
|
|
|
|
local id=$2
|
|
|
|
local addr=$3
|
|
|
|
|
|
|
|
if [ $ip_mptcp -eq 1 ]; then
|
2023-08-03 16:27:27 +00:00
|
|
|
[ $id -ne 0 ] && addr=''
|
2022-02-05 00:03:32 +00:00
|
|
|
ip -n $ns mptcp endpoint delete id $id $addr
|
|
|
|
else
|
|
|
|
ip netns exec $ns ./pm_nl_ctl del $id $addr
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
pm_nl_flush_endpoint()
|
|
|
|
{
|
|
|
|
local ns=$1
|
|
|
|
|
|
|
|
if [ $ip_mptcp -eq 1 ]; then
|
|
|
|
ip -n $ns mptcp endpoint flush
|
|
|
|
else
|
|
|
|
ip netns exec $ns ./pm_nl_ctl flush
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-02-05 00:03:33 +00:00
|
|
|
pm_nl_show_endpoints()
|
|
|
|
{
|
|
|
|
local ns=$1
|
|
|
|
|
|
|
|
if [ $ip_mptcp -eq 1 ]; then
|
|
|
|
ip -n $ns mptcp endpoint show
|
|
|
|
else
|
|
|
|
ip netns exec $ns ./pm_nl_ctl dump
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-02-05 00:03:34 +00:00
|
|
|
pm_nl_change_endpoint()
|
|
|
|
{
|
|
|
|
local ns=$1
|
2022-02-18 03:03:06 +00:00
|
|
|
local id=$2
|
|
|
|
local flags=$3
|
2022-02-05 00:03:34 +00:00
|
|
|
|
|
|
|
if [ $ip_mptcp -eq 1 ]; then
|
|
|
|
ip -n $ns mptcp endpoint change id $id ${flags//","/" "}
|
|
|
|
else
|
2022-02-18 03:03:06 +00:00
|
|
|
ip netns exec $ns ./pm_nl_ctl set id $id flags $flags
|
2022-02-05 00:03:34 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-03-07 20:44:38 +00:00
|
|
|
pm_nl_check_endpoint()
|
|
|
|
{
|
|
|
|
local line expected_line
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
local msg="$1"
|
|
|
|
local ns=$2
|
|
|
|
local addr=$3
|
2022-03-07 20:44:38 +00:00
|
|
|
local _flags=""
|
|
|
|
local flags
|
|
|
|
local _port
|
|
|
|
local port
|
|
|
|
local dev
|
|
|
|
local _id
|
|
|
|
local id
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "${msg}"
|
2022-03-07 20:44:38 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
shift 3
|
2022-03-07 20:44:38 +00:00
|
|
|
while [ -n "$1" ]; do
|
|
|
|
if [ $1 = "flags" ]; then
|
|
|
|
_flags=$2
|
2022-03-09 19:16:36 +00:00
|
|
|
[ -n "$_flags" ]; flags="flags $_flags"
|
2022-03-07 20:44:38 +00:00
|
|
|
shift
|
|
|
|
elif [ $1 = "dev" ]; then
|
2022-03-09 19:16:36 +00:00
|
|
|
[ -n "$2" ]; dev="dev $1"
|
2022-03-07 20:44:38 +00:00
|
|
|
shift
|
|
|
|
elif [ $1 = "id" ]; then
|
|
|
|
_id=$2
|
2022-03-09 19:16:36 +00:00
|
|
|
[ -n "$_id" ]; id="id $_id"
|
2022-03-07 20:44:38 +00:00
|
|
|
shift
|
|
|
|
elif [ $1 = "port" ]; then
|
|
|
|
_port=$2
|
2022-03-09 19:16:36 +00:00
|
|
|
[ -n "$_port" ]; port=" port $_port"
|
2022-03-07 20:44:38 +00:00
|
|
|
shift
|
|
|
|
fi
|
|
|
|
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
if [ -z "$id" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
test_fail "bad test - missing endpoint id"
|
2022-03-07 20:44:38 +00:00
|
|
|
return
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $ip_mptcp -eq 1 ]; then
|
2023-08-03 16:27:28 +00:00
|
|
|
# get line and trim trailing whitespace
|
2022-03-07 20:44:38 +00:00
|
|
|
line=$(ip -n $ns mptcp endpoint show $id)
|
2023-08-03 16:27:28 +00:00
|
|
|
line="${line% }"
|
2022-03-07 20:44:38 +00:00
|
|
|
# the dump order is: address id flags port dev
|
2023-08-03 16:27:28 +00:00
|
|
|
[ -n "$addr" ] && expected_line="$addr"
|
2022-03-07 20:44:38 +00:00
|
|
|
expected_line="$expected_line $id"
|
|
|
|
[ -n "$_flags" ] && expected_line="$expected_line ${_flags//","/" "}"
|
|
|
|
[ -n "$dev" ] && expected_line="$expected_line $dev"
|
|
|
|
[ -n "$port" ] && expected_line="$expected_line $port"
|
|
|
|
else
|
|
|
|
line=$(ip netns exec $ns ./pm_nl_ctl get $_id)
|
|
|
|
# the dump order is: id flags dev address port
|
|
|
|
expected_line="$id"
|
|
|
|
[ -n "$flags" ] && expected_line="$expected_line $flags"
|
|
|
|
[ -n "$dev" ] && expected_line="$expected_line $dev"
|
|
|
|
[ -n "$addr" ] && expected_line="$expected_line $addr"
|
|
|
|
[ -n "$_port" ] && expected_line="$expected_line $_port"
|
|
|
|
fi
|
|
|
|
if [ "$line" = "$expected_line" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-03-07 20:44:38 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "expected '$expected_line' found '$line'"
|
2022-03-07 20:44:38 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2023-06-23 17:34:13 +00:00
|
|
|
pm_nl_set_endpoint()
|
2020-03-27 21:48:53 +00:00
|
|
|
{
|
2022-03-09 19:16:34 +00:00
|
|
|
local listener_ns="$1"
|
|
|
|
local connector_ns="$2"
|
2023-06-23 17:34:13 +00:00
|
|
|
local connect_addr="$3"
|
2020-03-27 21:48:53 +00:00
|
|
|
|
2023-07-12 16:03:16 +00:00
|
|
|
local addr_nr_ns1=${addr_nr_ns1:-0}
|
|
|
|
local addr_nr_ns2=${addr_nr_ns2:-0}
|
|
|
|
local sflags=${sflags:-""}
|
2023-07-12 16:03:18 +00:00
|
|
|
local fullmesh=${fullmesh:-""}
|
2023-07-12 16:03:16 +00:00
|
|
|
|
2023-07-12 16:03:17 +00:00
|
|
|
local flags="subflow"
|
2023-07-12 16:03:18 +00:00
|
|
|
if [ -n "${fullmesh}" ]; then
|
2023-07-12 16:03:17 +00:00
|
|
|
flags="${flags},fullmesh"
|
2023-07-12 16:03:18 +00:00
|
|
|
addr_nr_ns2=${fullmesh}
|
2023-07-12 16:03:17 +00:00
|
|
|
fi
|
|
|
|
|
2022-01-07 19:25:22 +00:00
|
|
|
# let the mptcp subflow be established in background before
|
|
|
|
# do endpoint manipulation
|
2022-03-09 19:16:36 +00:00
|
|
|
if [ $addr_nr_ns1 != "0" ] || [ $addr_nr_ns2 != "0" ]; then
|
|
|
|
sleep 1
|
|
|
|
fi
|
2022-01-07 19:25:22 +00:00
|
|
|
|
2021-02-01 23:09:11 +00:00
|
|
|
if [ $addr_nr_ns1 -gt 0 ]; then
|
2022-03-09 19:16:34 +00:00
|
|
|
local counter=2
|
2022-03-09 19:16:36 +00:00
|
|
|
local add_nr_ns1=${addr_nr_ns1}
|
2022-07-08 17:14:10 +00:00
|
|
|
local id=10
|
2021-02-01 23:09:11 +00:00
|
|
|
while [ $add_nr_ns1 -gt 0 ]; do
|
|
|
|
local addr
|
2023-11-28 23:18:54 +00:00
|
|
|
if mptcp_lib_is_v6 "${connect_addr}"; then
|
2021-02-01 23:09:11 +00:00
|
|
|
addr="dead:beef:$counter::1"
|
|
|
|
else
|
|
|
|
addr="10.0.$counter.1"
|
|
|
|
fi
|
2023-06-23 17:34:07 +00:00
|
|
|
pm_nl_add_endpoint $ns1 $addr flags signal
|
2022-03-09 19:16:36 +00:00
|
|
|
counter=$((counter + 1))
|
|
|
|
add_nr_ns1=$((add_nr_ns1 - 1))
|
2022-07-08 17:14:10 +00:00
|
|
|
id=$((id + 1))
|
2021-02-01 23:09:11 +00:00
|
|
|
done
|
|
|
|
elif [ $addr_nr_ns1 -lt 0 ]; then
|
2022-03-09 19:16:36 +00:00
|
|
|
local rm_nr_ns1=$((-addr_nr_ns1))
|
2020-12-10 22:25:00 +00:00
|
|
|
if [ $rm_nr_ns1 -lt 8 ]; then
|
2022-03-09 19:16:34 +00:00
|
|
|
local counter=0
|
|
|
|
local line
|
2022-03-09 19:16:36 +00:00
|
|
|
pm_nl_show_endpoints ${listener_ns} | while read -r line; do
|
|
|
|
# shellcheck disable=SC2206 # we do want to split per word
|
2022-02-05 00:03:33 +00:00
|
|
|
local arr=($line)
|
|
|
|
local nr=0
|
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local i
|
2022-03-09 19:16:36 +00:00
|
|
|
for i in "${arr[@]}"; do
|
2022-02-05 00:03:33 +00:00
|
|
|
if [ $i = "id" ]; then
|
|
|
|
if [ $counter -eq $rm_nr_ns1 ]; then
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
id=${arr[$nr+1]}
|
|
|
|
rm_addr=$(rm_addr_count ${connector_ns})
|
|
|
|
pm_nl_del_endpoint ${listener_ns} $id
|
|
|
|
wait_rm_addr ${connector_ns} ${rm_addr}
|
2022-03-09 19:16:36 +00:00
|
|
|
counter=$((counter + 1))
|
2022-02-05 00:03:33 +00:00
|
|
|
fi
|
2022-03-09 19:16:36 +00:00
|
|
|
nr=$((nr + 1))
|
2021-03-13 01:16:20 +00:00
|
|
|
done
|
2022-02-05 00:03:33 +00:00
|
|
|
done
|
2021-03-31 00:08:56 +00:00
|
|
|
elif [ $rm_nr_ns1 -eq 8 ]; then
|
2022-02-05 00:03:32 +00:00
|
|
|
pm_nl_flush_endpoint ${listener_ns}
|
2021-03-31 00:08:56 +00:00
|
|
|
elif [ $rm_nr_ns1 -eq 9 ]; then
|
2022-02-05 00:03:32 +00:00
|
|
|
pm_nl_del_endpoint ${listener_ns} 0 ${connect_addr}
|
2020-12-10 22:25:00 +00:00
|
|
|
fi
|
2020-09-24 00:29:59 +00:00
|
|
|
fi
|
2021-08-17 22:07:26 +00:00
|
|
|
|
2022-01-07 19:25:22 +00:00
|
|
|
# if newly added endpoints must be deleted, give the background msk
|
|
|
|
# some time to created them
|
2022-03-09 19:16:36 +00:00
|
|
|
[ $addr_nr_ns1 -gt 0 ] && [ $addr_nr_ns2 -lt 0 ] && sleep 1
|
2022-01-07 19:25:22 +00:00
|
|
|
|
2021-02-01 23:09:11 +00:00
|
|
|
if [ $addr_nr_ns2 -gt 0 ]; then
|
2022-03-09 19:16:36 +00:00
|
|
|
local add_nr_ns2=${addr_nr_ns2}
|
2022-03-09 19:16:34 +00:00
|
|
|
local counter=3
|
2022-07-08 17:14:11 +00:00
|
|
|
local id=20
|
2021-02-01 23:09:11 +00:00
|
|
|
while [ $add_nr_ns2 -gt 0 ]; do
|
|
|
|
local addr
|
2023-11-28 23:18:54 +00:00
|
|
|
if mptcp_lib_is_v6 "${connect_addr}"; then
|
2021-02-01 23:09:11 +00:00
|
|
|
addr="dead:beef:$counter::2"
|
|
|
|
else
|
|
|
|
addr="10.0.$counter.2"
|
|
|
|
fi
|
2023-06-23 17:34:07 +00:00
|
|
|
pm_nl_add_endpoint $ns2 $addr flags $flags
|
2022-03-09 19:16:36 +00:00
|
|
|
counter=$((counter + 1))
|
|
|
|
add_nr_ns2=$((add_nr_ns2 - 1))
|
2022-07-08 17:14:11 +00:00
|
|
|
id=$((id + 1))
|
2021-02-01 23:09:11 +00:00
|
|
|
done
|
|
|
|
elif [ $addr_nr_ns2 -lt 0 ]; then
|
2022-03-09 19:16:36 +00:00
|
|
|
local rm_nr_ns2=$((-addr_nr_ns2))
|
2020-12-10 22:25:00 +00:00
|
|
|
if [ $rm_nr_ns2 -lt 8 ]; then
|
2022-03-09 19:16:34 +00:00
|
|
|
local counter=0
|
|
|
|
local line
|
2022-03-09 19:16:36 +00:00
|
|
|
pm_nl_show_endpoints ${connector_ns} | while read -r line; do
|
|
|
|
# shellcheck disable=SC2206 # we do want to split per word
|
2022-02-05 00:03:33 +00:00
|
|
|
local arr=($line)
|
|
|
|
local nr=0
|
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local i
|
2022-03-09 19:16:36 +00:00
|
|
|
for i in "${arr[@]}"; do
|
2022-02-05 00:03:33 +00:00
|
|
|
if [ $i = "id" ]; then
|
|
|
|
if [ $counter -eq $rm_nr_ns2 ]; then
|
|
|
|
break
|
|
|
|
fi
|
2022-03-09 19:16:34 +00:00
|
|
|
local id rm_addr
|
2022-02-05 00:03:33 +00:00
|
|
|
# rm_addr are serialized, allow the previous one to
|
|
|
|
# complete
|
|
|
|
id=${arr[$nr+1]}
|
|
|
|
rm_addr=$(rm_addr_count ${listener_ns})
|
|
|
|
pm_nl_del_endpoint ${connector_ns} $id
|
|
|
|
wait_rm_addr ${listener_ns} ${rm_addr}
|
2022-03-09 19:16:36 +00:00
|
|
|
counter=$((counter + 1))
|
2022-02-05 00:03:33 +00:00
|
|
|
fi
|
2022-03-09 19:16:36 +00:00
|
|
|
nr=$((nr + 1))
|
2021-03-13 01:16:20 +00:00
|
|
|
done
|
2022-02-05 00:03:33 +00:00
|
|
|
done
|
2021-03-31 00:08:56 +00:00
|
|
|
elif [ $rm_nr_ns2 -eq 8 ]; then
|
2022-02-05 00:03:32 +00:00
|
|
|
pm_nl_flush_endpoint ${connector_ns}
|
2021-03-31 00:08:56 +00:00
|
|
|
elif [ $rm_nr_ns2 -eq 9 ]; then
|
|
|
|
local addr
|
2023-11-28 23:18:54 +00:00
|
|
|
if mptcp_lib_is_v6 "${connect_addr}"; then
|
2021-03-31 00:08:56 +00:00
|
|
|
addr="dead:beef:1::2"
|
|
|
|
else
|
|
|
|
addr="10.0.1.2"
|
|
|
|
fi
|
2022-02-05 00:03:32 +00:00
|
|
|
pm_nl_del_endpoint ${connector_ns} 0 $addr
|
2020-12-10 22:25:00 +00:00
|
|
|
fi
|
2020-09-24 00:29:59 +00:00
|
|
|
fi
|
|
|
|
|
2022-03-09 19:16:36 +00:00
|
|
|
if [ -n "${sflags}" ]; then
|
2021-01-09 00:48:02 +00:00
|
|
|
sleep 1
|
2022-03-09 19:16:34 +00:00
|
|
|
|
|
|
|
local netns
|
2021-01-09 00:48:02 +00:00
|
|
|
for netns in "$ns1" "$ns2"; do
|
2022-03-09 19:16:34 +00:00
|
|
|
local line
|
2022-03-09 19:16:36 +00:00
|
|
|
pm_nl_show_endpoints $netns | while read -r line; do
|
|
|
|
# shellcheck disable=SC2206 # we do want to split per word
|
2022-02-05 00:03:31 +00:00
|
|
|
local arr=($line)
|
2022-02-18 03:03:06 +00:00
|
|
|
local nr=0
|
2022-02-05 00:03:34 +00:00
|
|
|
local id
|
2022-02-05 00:03:31 +00:00
|
|
|
|
2022-03-09 19:16:34 +00:00
|
|
|
local i
|
2022-03-09 19:16:36 +00:00
|
|
|
for i in "${arr[@]}"; do
|
2022-02-18 03:03:06 +00:00
|
|
|
if [ $i = "id" ]; then
|
|
|
|
id=${arr[$nr+1]}
|
2022-02-05 00:03:31 +00:00
|
|
|
fi
|
2022-03-09 19:16:36 +00:00
|
|
|
nr=$((nr + 1))
|
2022-02-05 00:03:31 +00:00
|
|
|
done
|
2022-02-18 03:03:06 +00:00
|
|
|
pm_nl_change_endpoint $netns $id $sflags
|
2022-02-05 00:03:31 +00:00
|
|
|
done
|
2021-01-09 00:48:02 +00:00
|
|
|
done
|
|
|
|
fi
|
2023-06-23 17:34:13 +00:00
|
|
|
}
|
|
|
|
|
2023-12-22 12:47:24 +00:00
|
|
|
chk_cestab_nr()
|
|
|
|
{
|
|
|
|
local ns=$1
|
|
|
|
local cestab=$2
|
|
|
|
local count
|
|
|
|
|
|
|
|
print_check "cestab $cestab"
|
|
|
|
count=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPCurrEstab")
|
|
|
|
if [ -z "$count" ]; then
|
|
|
|
print_skip
|
|
|
|
elif [ "$count" != "$cestab" ]; then
|
|
|
|
fail_test "got $count current establish[s] expected $cestab"
|
|
|
|
else
|
|
|
|
print_ok
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# $1 namespace 1, $2 namespace 2
|
|
|
|
check_cestab()
|
|
|
|
{
|
|
|
|
if [ -n "${cestab_ns1}" ]; then
|
|
|
|
chk_cestab_nr ${1} ${cestab_ns1}
|
|
|
|
fi
|
|
|
|
if [ -n "${cestab_ns2}" ]; then
|
|
|
|
chk_cestab_nr ${2} ${cestab_ns2}
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2023-06-23 17:34:13 +00:00
|
|
|
do_transfer()
|
|
|
|
{
|
|
|
|
local listener_ns="$1"
|
|
|
|
local connector_ns="$2"
|
|
|
|
local cl_proto="$3"
|
|
|
|
local srv_proto="$4"
|
|
|
|
local connect_addr="$5"
|
|
|
|
|
2024-03-08 22:10:12 +00:00
|
|
|
local port=$((10000 + MPTCP_LIB_TEST_COUNTER - 1))
|
2023-06-23 17:34:13 +00:00
|
|
|
local cappid
|
2023-07-12 16:03:16 +00:00
|
|
|
local FAILING_LINKS=${FAILING_LINKS:-""}
|
2023-07-12 16:03:17 +00:00
|
|
|
local fastclose=${fastclose:-""}
|
2023-07-12 16:03:19 +00:00
|
|
|
local speed=${speed:-"fast"}
|
2023-06-23 17:34:13 +00:00
|
|
|
|
|
|
|
:> "$cout"
|
|
|
|
:> "$sout"
|
|
|
|
:> "$capout"
|
|
|
|
|
2024-02-23 20:17:59 +00:00
|
|
|
if $capture; then
|
2023-06-23 17:34:13 +00:00
|
|
|
local capuser
|
|
|
|
if [ -z $SUDO_USER ] ; then
|
|
|
|
capuser=""
|
|
|
|
else
|
|
|
|
capuser="-Z $SUDO_USER"
|
|
|
|
fi
|
|
|
|
|
2024-03-08 22:10:12 +00:00
|
|
|
capfile=$(printf "mp_join-%02u-%s.pcap" "$MPTCP_LIB_TEST_COUNTER" "${listener_ns}")
|
2023-06-23 17:34:13 +00:00
|
|
|
|
2024-03-08 22:10:12 +00:00
|
|
|
echo "Capturing traffic for test $MPTCP_LIB_TEST_COUNTER into $capfile"
|
2023-06-23 17:34:13 +00:00
|
|
|
ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -w $capfile > "$capout" 2>&1 &
|
|
|
|
cappid=$!
|
|
|
|
|
|
|
|
sleep 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
|
|
|
|
nstat -n
|
|
|
|
NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
|
|
|
|
nstat -n
|
|
|
|
|
|
|
|
local extra_args
|
|
|
|
if [ $speed = "fast" ]; then
|
|
|
|
extra_args="-j"
|
|
|
|
elif [ $speed = "slow" ]; then
|
|
|
|
extra_args="-r 50"
|
2023-07-12 16:03:19 +00:00
|
|
|
elif [ $speed -gt 0 ]; then
|
|
|
|
extra_args="-r ${speed}"
|
2023-06-23 17:34:13 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
local extra_cl_args=""
|
|
|
|
local extra_srv_args=""
|
|
|
|
local trunc_size=""
|
2023-07-12 16:03:17 +00:00
|
|
|
if [ -n "${fastclose}" ]; then
|
2023-06-23 17:34:13 +00:00
|
|
|
if [ ${test_linkfail} -le 1 ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "fastclose tests need test_linkfail argument"
|
2023-06-23 17:34:13 +00:00
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# disconnect
|
|
|
|
trunc_size=${test_linkfail}
|
2023-07-12 16:03:17 +00:00
|
|
|
local side=${fastclose}
|
2023-06-23 17:34:13 +00:00
|
|
|
|
|
|
|
if [ ${side} = "client" ]; then
|
|
|
|
extra_cl_args="-f ${test_linkfail}"
|
|
|
|
extra_srv_args="-f -1"
|
|
|
|
elif [ ${side} = "server" ]; then
|
|
|
|
extra_srv_args="-f ${test_linkfail}"
|
|
|
|
extra_cl_args="-f -1"
|
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "wrong/unknown fastclose spec ${side}"
|
2023-06-23 17:34:13 +00:00
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
extra_srv_args="$extra_args $extra_srv_args"
|
|
|
|
if [ "$test_linkfail" -gt 1 ];then
|
|
|
|
timeout ${timeout_test} \
|
|
|
|
ip netns exec ${listener_ns} \
|
|
|
|
./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
|
|
|
|
$extra_srv_args "::" < "$sinfail" > "$sout" &
|
|
|
|
else
|
|
|
|
timeout ${timeout_test} \
|
|
|
|
ip netns exec ${listener_ns} \
|
|
|
|
./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
|
|
|
|
$extra_srv_args "::" < "$sin" > "$sout" &
|
|
|
|
fi
|
|
|
|
local spid=$!
|
|
|
|
|
2023-11-28 23:18:59 +00:00
|
|
|
mptcp_lib_wait_local_port_listen "${listener_ns}" "${port}"
|
2023-06-23 17:34:13 +00:00
|
|
|
|
|
|
|
extra_cl_args="$extra_args $extra_cl_args"
|
|
|
|
if [ "$test_linkfail" -eq 0 ];then
|
|
|
|
timeout ${timeout_test} \
|
|
|
|
ip netns exec ${connector_ns} \
|
|
|
|
./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
|
|
|
|
$extra_cl_args $connect_addr < "$cin" > "$cout" &
|
|
|
|
elif [ "$test_linkfail" -eq 1 ] || [ "$test_linkfail" -eq 2 ];then
|
|
|
|
( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" ) | \
|
|
|
|
tee "$cinsent" | \
|
|
|
|
timeout ${timeout_test} \
|
|
|
|
ip netns exec ${connector_ns} \
|
|
|
|
./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
|
|
|
|
$extra_cl_args $connect_addr > "$cout" &
|
|
|
|
else
|
|
|
|
tee "$cinsent" < "$cinfail" | \
|
|
|
|
timeout ${timeout_test} \
|
|
|
|
ip netns exec ${connector_ns} \
|
|
|
|
./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
|
|
|
|
$extra_cl_args $connect_addr > "$cout" &
|
|
|
|
fi
|
|
|
|
local cpid=$!
|
|
|
|
|
|
|
|
pm_nl_set_endpoint $listener_ns $connector_ns $connect_addr
|
2023-12-22 12:47:24 +00:00
|
|
|
check_cestab $listener_ns $connector_ns
|
2021-01-09 00:48:02 +00:00
|
|
|
|
2020-03-27 21:48:53 +00:00
|
|
|
wait $cpid
|
2022-03-09 19:16:34 +00:00
|
|
|
local retc=$?
|
2020-03-27 21:48:53 +00:00
|
|
|
wait $spid
|
2022-03-09 19:16:34 +00:00
|
|
|
local rets=$?
|
2020-03-27 21:48:53 +00:00
|
|
|
|
2024-02-23 20:17:59 +00:00
|
|
|
if $capture; then
|
2020-03-27 21:48:53 +00:00
|
|
|
sleep 1
|
|
|
|
kill $cappid
|
|
|
|
fi
|
|
|
|
|
2021-04-01 23:19:47 +00:00
|
|
|
NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
|
|
|
|
nstat | grep Tcp > /tmp/${listener_ns}.out
|
|
|
|
NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
|
|
|
|
nstat | grep Tcp > /tmp/${connector_ns}.out
|
|
|
|
|
2020-03-27 21:48:53 +00:00
|
|
|
if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "client exit code $retc, server $rets"
|
2020-09-16 13:13:51 +00:00
|
|
|
echo -e "\nnetns ${listener_ns} socket stat for ${port}:" 1>&2
|
2021-04-01 23:19:47 +00:00
|
|
|
ip netns exec ${listener_ns} ss -Menita 1>&2 -o "sport = :$port"
|
|
|
|
cat /tmp/${listener_ns}.out
|
2020-09-16 13:13:51 +00:00
|
|
|
echo -e "\nnetns ${connector_ns} socket stat for ${port}:" 1>&2
|
2021-04-01 23:19:47 +00:00
|
|
|
ip netns exec ${connector_ns} ss -Menita 1>&2 -o "dport = :$port"
|
|
|
|
cat /tmp/${connector_ns}.out
|
2020-03-27 21:48:53 +00:00
|
|
|
|
|
|
|
cat "$capout"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
2023-06-23 17:34:10 +00:00
|
|
|
if [ "$test_linkfail" -gt 1 ];then
|
2022-09-30 15:59:33 +00:00
|
|
|
check_transfer $sinfail $cout "file received by client" $trunc_size
|
2021-08-13 22:15:48 +00:00
|
|
|
else
|
2022-09-30 15:59:33 +00:00
|
|
|
check_transfer $sin $cout "file received by client" $trunc_size
|
2021-08-13 22:15:48 +00:00
|
|
|
fi
|
2020-03-27 21:48:53 +00:00
|
|
|
retc=$?
|
2023-06-23 17:34:10 +00:00
|
|
|
if [ "$test_linkfail" -eq 0 ];then
|
2022-09-30 15:59:33 +00:00
|
|
|
check_transfer $cin $sout "file received by server" $trunc_size
|
2020-11-19 19:45:57 +00:00
|
|
|
else
|
2022-09-30 15:59:33 +00:00
|
|
|
check_transfer $cinsent $sout "file received by server" $trunc_size
|
2020-11-19 19:45:57 +00:00
|
|
|
fi
|
2020-03-27 21:48:53 +00:00
|
|
|
rets=$?
|
|
|
|
|
|
|
|
if [ $retc -eq 0 ] && [ $rets -eq 0 ];then
|
|
|
|
cat "$capout"
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
cat "$capout"
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
|
|
|
make_file()
|
|
|
|
{
|
2022-03-09 19:16:34 +00:00
|
|
|
local name=$1
|
|
|
|
local who=$2
|
|
|
|
local size=$3
|
2020-03-27 21:48:53 +00:00
|
|
|
|
2023-11-28 23:18:57 +00:00
|
|
|
mptcp_lib_make_file $name 1024 $size
|
2020-03-27 21:48:53 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_info "Test file (size $size KB) for $who"
|
2020-03-27 21:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
run_tests()
|
|
|
|
{
|
2022-03-09 19:16:34 +00:00
|
|
|
local listener_ns="$1"
|
|
|
|
local connector_ns="$2"
|
|
|
|
local connect_addr="$3"
|
|
|
|
|
|
|
|
local size
|
2023-07-12 16:03:16 +00:00
|
|
|
local test_linkfail=${test_linkfail:-0}
|
2020-11-19 19:45:57 +00:00
|
|
|
|
2022-03-04 19:36:32 +00:00
|
|
|
# The values above 2 are reused to make test files
|
|
|
|
# with the given sizes (KB)
|
|
|
|
if [ "$test_linkfail" -gt 2 ]; then
|
|
|
|
size=$test_linkfail
|
|
|
|
|
|
|
|
if [ -z "$cinfail" ]; then
|
|
|
|
cinfail=$(mktemp)
|
|
|
|
fi
|
|
|
|
make_file "$cinfail" "client" $size
|
2021-08-13 22:15:48 +00:00
|
|
|
# create the input file for the failure test when
|
|
|
|
# the first failure test run
|
2022-03-09 19:16:36 +00:00
|
|
|
elif [ "$test_linkfail" -ne 0 ] && [ -z "$cinfail" ]; then
|
2021-08-13 22:15:48 +00:00
|
|
|
# the client file must be considerably larger
|
|
|
|
# of the maximum expected cwin value, or the
|
|
|
|
# link utilization will be not predicable
|
|
|
|
size=$((RANDOM%2))
|
2020-11-19 19:45:57 +00:00
|
|
|
size=$((size+1))
|
2021-08-13 22:15:48 +00:00
|
|
|
size=$((size*8192))
|
2022-03-09 19:16:36 +00:00
|
|
|
size=$((size + ( RANDOM % 8192) ))
|
2020-11-19 19:45:57 +00:00
|
|
|
|
2021-08-13 22:15:48 +00:00
|
|
|
cinfail=$(mktemp)
|
|
|
|
make_file "$cinfail" "client" $size
|
2020-11-19 19:45:57 +00:00
|
|
|
fi
|
2020-03-27 21:48:53 +00:00
|
|
|
|
2022-03-04 19:36:32 +00:00
|
|
|
if [ "$test_linkfail" -gt 2 ]; then
|
|
|
|
size=$test_linkfail
|
|
|
|
|
|
|
|
if [ -z "$sinfail" ]; then
|
|
|
|
sinfail=$(mktemp)
|
|
|
|
fi
|
|
|
|
make_file "$sinfail" "server" $size
|
2022-03-09 19:16:36 +00:00
|
|
|
elif [ "$test_linkfail" -eq 2 ] && [ -z "$sinfail" ]; then
|
2021-08-13 22:15:48 +00:00
|
|
|
size=$((RANDOM%16))
|
|
|
|
size=$((size+1))
|
|
|
|
size=$((size*2048))
|
2020-11-19 19:45:57 +00:00
|
|
|
|
2021-08-13 22:15:48 +00:00
|
|
|
sinfail=$(mktemp)
|
|
|
|
make_file "$sinfail" "server" $size
|
2020-11-19 19:45:57 +00:00
|
|
|
fi
|
|
|
|
|
2023-07-12 16:03:19 +00:00
|
|
|
do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr}
|
2020-03-27 21:48:53 +00:00
|
|
|
}
|
|
|
|
|
2022-01-07 19:25:22 +00:00
|
|
|
dump_stats()
|
|
|
|
{
|
|
|
|
echo Server ns stats
|
|
|
|
ip netns exec $ns1 nstat -as | grep Tcp
|
|
|
|
echo Client ns stats
|
|
|
|
ip netns exec $ns2 nstat -as | grep Tcp
|
|
|
|
}
|
|
|
|
|
2021-06-17 23:46:22 +00:00
|
|
|
chk_csum_nr()
|
|
|
|
{
|
2022-03-09 19:16:27 +00:00
|
|
|
local csum_ns1=${1:-0}
|
|
|
|
local csum_ns2=${2:-0}
|
2021-06-17 23:46:22 +00:00
|
|
|
local count
|
2022-04-26 21:57:17 +00:00
|
|
|
local extra_msg=""
|
2022-03-04 19:36:35 +00:00
|
|
|
local allow_multi_errors_ns1=0
|
|
|
|
local allow_multi_errors_ns2=0
|
|
|
|
|
|
|
|
if [[ "${csum_ns1}" = "+"* ]]; then
|
|
|
|
allow_multi_errors_ns1=1
|
|
|
|
csum_ns1=${csum_ns1:1}
|
|
|
|
fi
|
|
|
|
if [[ "${csum_ns2}" = "+"* ]]; then
|
|
|
|
allow_multi_errors_ns2=1
|
|
|
|
csum_ns2=${csum_ns2:1}
|
|
|
|
fi
|
2021-06-17 23:46:22 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "sum"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtDataCsumErr")
|
2022-04-26 21:57:17 +00:00
|
|
|
if [ "$count" != "$csum_ns1" ]; then
|
|
|
|
extra_msg="$extra_msg ns1=$count"
|
|
|
|
fi
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif { [ "$count" != $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 0 ]; } ||
|
2022-03-09 19:16:36 +00:00
|
|
|
{ [ "$count" -lt $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 1 ]; }; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count data checksum error[s] expected $csum_ns1"
|
2021-06-17 23:46:22 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-06-17 23:46:22 +00:00
|
|
|
fi
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "csum"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtDataCsumErr")
|
2022-04-26 21:57:17 +00:00
|
|
|
if [ "$count" != "$csum_ns2" ]; then
|
|
|
|
extra_msg="$extra_msg ns2=$count"
|
|
|
|
fi
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif { [ "$count" != $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 0 ]; } ||
|
2022-03-09 19:16:36 +00:00
|
|
|
{ [ "$count" -lt $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 1 ]; }; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count data checksum error[s] expected $csum_ns2"
|
2021-06-17 23:46:22 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-06-17 23:46:22 +00:00
|
|
|
fi
|
2022-04-26 21:57:17 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_info "$extra_msg"
|
2021-06-17 23:46:22 +00:00
|
|
|
}
|
|
|
|
|
2021-08-24 23:26:19 +00:00
|
|
|
chk_fail_nr()
|
|
|
|
{
|
2022-03-04 19:36:35 +00:00
|
|
|
local fail_tx=$1
|
|
|
|
local fail_rx=$2
|
2022-04-26 21:57:16 +00:00
|
|
|
local ns_invert=${3:-""}
|
2021-08-24 23:26:19 +00:00
|
|
|
local count
|
2022-04-26 21:57:16 +00:00
|
|
|
local ns_tx=$ns1
|
|
|
|
local ns_rx=$ns2
|
|
|
|
local extra_msg=""
|
|
|
|
local allow_tx_lost=0
|
|
|
|
local allow_rx_lost=0
|
|
|
|
|
|
|
|
if [[ $ns_invert = "invert" ]]; then
|
|
|
|
ns_tx=$ns2
|
|
|
|
ns_rx=$ns1
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
extra_msg="invert"
|
2022-04-26 21:57:16 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ "${fail_tx}" = "-"* ]]; then
|
|
|
|
allow_tx_lost=1
|
|
|
|
fail_tx=${fail_tx:1}
|
|
|
|
fi
|
|
|
|
if [[ "${fail_rx}" = "-"* ]]; then
|
|
|
|
allow_rx_lost=1
|
|
|
|
fail_rx=${fail_rx:1}
|
|
|
|
fi
|
2021-08-24 23:26:19 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "ftx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFailTx")
|
2022-03-04 19:36:35 +00:00
|
|
|
if [ "$count" != "$fail_tx" ]; then
|
2022-04-26 21:57:16 +00:00
|
|
|
extra_msg="$extra_msg,tx=$count"
|
|
|
|
fi
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif { [ "$count" != "$fail_tx" ] && [ $allow_tx_lost -eq 0 ]; } ||
|
2022-04-26 21:57:16 +00:00
|
|
|
{ [ "$count" -gt "$fail_tx" ] && [ $allow_tx_lost -eq 1 ]; }; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count MP_FAIL[s] TX expected $fail_tx"
|
2021-08-24 23:26:19 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-08-24 23:26:19 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "failrx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFailRx")
|
2022-03-04 19:36:35 +00:00
|
|
|
if [ "$count" != "$fail_rx" ]; then
|
2022-04-26 21:57:16 +00:00
|
|
|
extra_msg="$extra_msg,rx=$count"
|
|
|
|
fi
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif { [ "$count" != "$fail_rx" ] && [ $allow_rx_lost -eq 0 ]; } ||
|
2022-04-26 21:57:16 +00:00
|
|
|
{ [ "$count" -gt "$fail_rx" ] && [ $allow_rx_lost -eq 1 ]; }; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count MP_FAIL[s] RX expected $fail_rx"
|
2021-08-24 23:26:19 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-08-24 23:26:19 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_info "$extra_msg"
|
2021-08-24 23:26:19 +00:00
|
|
|
}
|
|
|
|
|
2022-03-04 19:36:28 +00:00
|
|
|
chk_fclose_nr()
|
|
|
|
{
|
|
|
|
local fclose_tx=$1
|
|
|
|
local fclose_rx=$2
|
2022-09-30 15:59:33 +00:00
|
|
|
local ns_invert=$3
|
2022-03-04 19:36:28 +00:00
|
|
|
local count
|
2022-09-30 15:59:33 +00:00
|
|
|
local ns_tx=$ns2
|
|
|
|
local ns_rx=$ns1
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
local extra_msg=""
|
2022-09-30 15:59:33 +00:00
|
|
|
|
|
|
|
if [[ $ns_invert = "invert" ]]; then
|
|
|
|
ns_tx=$ns1
|
|
|
|
ns_rx=$ns2
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
extra_msg="invert"
|
2022-09-30 15:59:33 +00:00
|
|
|
fi
|
2022-03-04 19:36:28 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "ctx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFastcloseTx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$fclose_tx" ]; then
|
|
|
|
extra_msg="$extra_msg,tx=$count"
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count MP_FASTCLOSE[s] TX expected $fclose_tx"
|
2022-03-04 19:36:28 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-03-04 19:36:28 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "fclzrx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFastcloseRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$fclose_rx" ]; then
|
|
|
|
extra_msg="$extra_msg,rx=$count"
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count MP_FASTCLOSE[s] RX expected $fclose_rx"
|
2022-03-04 19:36:28 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-03-04 19:36:28 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_info "$extra_msg"
|
2022-03-04 19:36:28 +00:00
|
|
|
}
|
|
|
|
|
2022-03-04 19:36:30 +00:00
|
|
|
chk_rst_nr()
|
|
|
|
{
|
|
|
|
local rst_tx=$1
|
|
|
|
local rst_rx=$2
|
|
|
|
local ns_invert=${3:-""}
|
|
|
|
local count
|
|
|
|
local ns_tx=$ns1
|
|
|
|
local ns_rx=$ns2
|
|
|
|
local extra_msg=""
|
|
|
|
|
|
|
|
if [[ $ns_invert = "invert" ]]; then
|
|
|
|
ns_tx=$ns2
|
|
|
|
ns_rx=$ns1
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
extra_msg="invert"
|
2022-03-04 19:36:30 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "rtx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPRstTx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-10-18 18:23:52 +00:00
|
|
|
# accept more rst than expected except if we don't expect any
|
|
|
|
elif { [ $rst_tx -ne 0 ] && [ $count -lt $rst_tx ]; } ||
|
|
|
|
{ [ $rst_tx -eq 0 ] && [ $count -ne 0 ]; }; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count MP_RST[s] TX expected $rst_tx"
|
2022-03-04 19:36:30 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-03-04 19:36:30 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "rstrx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPRstRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-10-18 18:23:52 +00:00
|
|
|
# accept more rst than expected except if we don't expect any
|
|
|
|
elif { [ $rst_rx -ne 0 ] && [ $count -lt $rst_rx ]; } ||
|
|
|
|
{ [ $rst_rx -eq 0 ] && [ $count -ne 0 ]; }; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count MP_RST[s] RX expected $rst_rx"
|
2022-03-04 19:36:30 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-03-04 19:36:30 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_info "$extra_msg"
|
2022-03-04 19:36:30 +00:00
|
|
|
}
|
|
|
|
|
2022-04-22 21:55:43 +00:00
|
|
|
chk_infi_nr()
|
|
|
|
{
|
|
|
|
local infi_tx=$1
|
|
|
|
local infi_rx=$2
|
|
|
|
local count
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "itx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtInfiniteMapTx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$infi_tx" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count infinite map[s] TX expected $infi_tx"
|
2022-04-22 21:55:43 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-04-22 21:55:43 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "infirx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtInfiniteMapRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$infi_rx" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count infinite map[s] RX expected $infi_rx"
|
2022-04-22 21:55:43 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-04-22 21:55:43 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2020-03-27 21:48:53 +00:00
|
|
|
chk_join_nr()
|
|
|
|
{
|
2022-03-09 19:16:31 +00:00
|
|
|
local syn_nr=$1
|
|
|
|
local syn_ack_nr=$2
|
|
|
|
local ack_nr=$3
|
|
|
|
local csum_ns1=${4:-0}
|
|
|
|
local csum_ns2=${5:-0}
|
|
|
|
local fail_nr=${6:-0}
|
|
|
|
local rst_nr=${7:-0}
|
2022-04-22 21:55:43 +00:00
|
|
|
local infi_nr=${8:-0}
|
|
|
|
local corrupted_pkts=${9:-0}
|
2020-03-27 21:48:53 +00:00
|
|
|
local count
|
2022-02-18 21:35:44 +00:00
|
|
|
local with_cookie
|
2022-03-09 19:16:31 +00:00
|
|
|
|
|
|
|
if [ "${corrupted_pkts}" -gt 0 ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_info "${corrupted_pkts} corrupted pkts"
|
2022-03-09 19:16:31 +00:00
|
|
|
fi
|
2020-03-27 21:48:53 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "syn"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinSynRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$syn_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count JOIN[s] syn expected $syn_nr"
|
2020-03-27 21:48:53 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2020-03-27 21:48:53 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "synack"
|
2022-03-09 19:16:35 +00:00
|
|
|
with_cookie=$(ip netns exec $ns2 sysctl -n net.ipv4.tcp_syncookies)
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinSynAckRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$syn_ack_nr" ]; then
|
2022-02-18 21:35:44 +00:00
|
|
|
# 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
|
|
|
|
if [ "$with_cookie" = 2 ] && [ "$count" -gt "$syn_ack_nr" ] && [ "$count" -le "$syn_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-02-18 21:35:44 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count JOIN[s] synack expected $syn_ack_nr"
|
2022-02-18 21:35:44 +00:00
|
|
|
fi
|
2020-03-27 21:48:53 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2020-03-27 21:48:53 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "ack"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinAckRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$ack_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count JOIN[s] ack expected $ack_nr"
|
2020-03-27 21:48:53 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2020-03-27 21:48:53 +00:00
|
|
|
fi
|
2024-02-23 20:17:59 +00:00
|
|
|
if $validate_checksum; then
|
2022-03-09 19:16:27 +00:00
|
|
|
chk_csum_nr $csum_ns1 $csum_ns2
|
2022-03-04 19:36:35 +00:00
|
|
|
chk_fail_nr $fail_nr $fail_nr
|
|
|
|
chk_rst_nr $rst_nr $rst_nr
|
2022-04-22 21:55:43 +00:00
|
|
|
chk_infi_nr $infi_nr $infi_nr
|
2021-06-17 23:46:22 +00:00
|
|
|
fi
|
2020-03-27 21:48:53 +00:00
|
|
|
}
|
|
|
|
|
2021-08-13 22:15:48 +00:00
|
|
|
# a negative value for 'stale_max' means no upper bound:
|
|
|
|
# for bidirectional transfer, if one peer sleep for a while
|
|
|
|
# - as these tests do - we can have a quite high number of
|
|
|
|
# stale/recover conversions, proportional to
|
|
|
|
# sleep duration/ MPTCP-level RTX interval.
|
|
|
|
chk_stale_nr()
|
|
|
|
{
|
|
|
|
local ns=$1
|
|
|
|
local stale_min=$2
|
|
|
|
local stale_max=$3
|
|
|
|
local stale_delta=$4
|
|
|
|
local dump_stats
|
|
|
|
local stale_nr
|
|
|
|
local recover_nr
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "stale"
|
2021-08-13 22:15:48 +00:00
|
|
|
|
2023-11-28 23:18:55 +00:00
|
|
|
stale_nr=$(mptcp_lib_get_counter ${ns} "MPTcpExtSubflowStale")
|
|
|
|
recover_nr=$(mptcp_lib_get_counter ${ns} "MPTcpExtSubflowRecover")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$stale_nr" ] || [ -z "$recover_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ $stale_nr -lt $stale_min ] ||
|
2022-03-09 19:16:36 +00:00
|
|
|
{ [ $stale_max -gt 0 ] && [ $stale_nr -gt $stale_max ]; } ||
|
|
|
|
[ $((stale_nr - recover_nr)) -ne $stale_delta ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $stale_nr stale[s] $recover_nr recover[s], " \
|
2021-08-13 22:15:48 +00:00
|
|
|
" expected stale in range [$stale_min..$stale_max]," \
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
" stale-recover delta $stale_delta"
|
2021-08-13 22:15:48 +00:00
|
|
|
dump_stats=1
|
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-08-13 22:15:48 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "${dump_stats}" = 1 ]; then
|
|
|
|
echo $ns stats
|
|
|
|
ip netns exec $ns ip -s link show
|
|
|
|
ip netns exec $ns nstat -as | grep MPTcp
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2020-09-24 00:29:52 +00:00
|
|
|
chk_add_nr()
|
|
|
|
{
|
|
|
|
local add_nr=$1
|
|
|
|
local echo_nr=$2
|
2021-02-01 23:09:20 +00:00
|
|
|
local port_nr=${3:-0}
|
|
|
|
local syn_nr=${4:-$port_nr}
|
|
|
|
local syn_ack_nr=${5:-$port_nr}
|
|
|
|
local ack_nr=${6:-$port_nr}
|
|
|
|
local mis_syn_nr=${7:-0}
|
|
|
|
local mis_ack_nr=${8:-0}
|
2020-09-24 00:29:52 +00:00
|
|
|
local count
|
2022-02-18 21:35:43 +00:00
|
|
|
local timeout
|
|
|
|
|
2022-03-09 19:16:35 +00:00
|
|
|
timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
|
2020-09-24 00:29:52 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "add"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtAddAddr")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2022-02-18 21:35:43 +00:00
|
|
|
# if the test configured a short timeout tolerate greater then expected
|
|
|
|
# add addrs options, due to retransmissions
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$add_nr" ] && { [ "$timeout" -gt 1 ] || [ "$count" -lt "$add_nr" ]; }; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count ADD_ADDR[s] expected $add_nr"
|
2020-09-24 00:29:52 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2020-09-24 00:29:52 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "echo"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtEchoAdd")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$echo_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count ADD_ADDR echo[s] expected $echo_nr"
|
2020-09-24 00:29:52 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-02-01 23:09:20 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $port_nr -gt 0 ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "pt"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtPortAdd")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$port_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count ADD_ADDR[s] with a port-number expected $port_nr"
|
2021-02-01 23:09:20 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-02-01 23:09:20 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "syn"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortSynRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$syn_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count JOIN[s] syn with a different \
|
|
|
|
port-number expected $syn_nr"
|
2021-02-01 23:09:20 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-02-01 23:09:20 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "synack"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$syn_ack_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count JOIN[s] synack with a different \
|
|
|
|
port-number expected $syn_ack_nr"
|
2021-02-01 23:09:20 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-02-01 23:09:20 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "ack"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortAckRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$ack_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count JOIN[s] ack with a different \
|
|
|
|
port-number expected $ack_nr"
|
2021-02-01 23:09:20 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-02-01 23:09:20 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "syn"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortSynRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$mis_syn_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count JOIN[s] syn with a mismatched \
|
|
|
|
port-number expected $mis_syn_nr"
|
2021-02-01 23:09:20 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-02-01 23:09:20 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "ack"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortAckRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$mis_ack_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count JOIN[s] ack with a mismatched \
|
|
|
|
port-number expected $mis_ack_nr"
|
2021-02-01 23:09:20 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-02-01 23:09:20 +00:00
|
|
|
fi
|
2020-09-24 00:29:52 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2023-05-17 19:16:17 +00:00
|
|
|
chk_add_tx_nr()
|
|
|
|
{
|
|
|
|
local add_tx_nr=$1
|
|
|
|
local echo_tx_nr=$2
|
|
|
|
local timeout
|
|
|
|
local count
|
|
|
|
|
|
|
|
timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "add TX"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtAddAddrTx")
|
2023-06-20 16:30:20 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-05-17 19:16:17 +00:00
|
|
|
# if the test configured a short timeout tolerate greater then expected
|
|
|
|
# add addrs options, due to retransmissions
|
2023-06-20 16:30:20 +00:00
|
|
|
elif [ "$count" != "$add_tx_nr" ] && { [ "$timeout" -gt 1 ] || [ "$count" -lt "$add_tx_nr" ]; }; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count ADD_ADDR[s] TX, expected $add_tx_nr"
|
2023-05-17 19:16:17 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2023-05-17 19:16:17 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "echo TX"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtEchoAddTx")
|
2023-06-20 16:30:20 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-20 16:30:20 +00:00
|
|
|
elif [ "$count" != "$echo_tx_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count ADD_ADDR echo[s] TX, expected $echo_tx_nr"
|
2023-05-17 19:16:17 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2023-05-17 19:16:17 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2020-09-24 00:29:59 +00:00
|
|
|
chk_rm_nr()
|
|
|
|
{
|
|
|
|
local rm_addr_nr=$1
|
|
|
|
local rm_subflow_nr=$2
|
2022-03-07 20:44:35 +00:00
|
|
|
local invert
|
|
|
|
local simult
|
2020-09-24 00:29:59 +00:00
|
|
|
local count
|
2022-03-04 19:36:36 +00:00
|
|
|
local addr_ns=$ns1
|
|
|
|
local subflow_ns=$ns2
|
|
|
|
local extra_msg=""
|
2021-03-13 01:16:19 +00:00
|
|
|
|
2022-03-07 20:44:35 +00:00
|
|
|
shift 2
|
|
|
|
while [ -n "$1" ]; do
|
|
|
|
[ "$1" = "invert" ] && invert=true
|
|
|
|
[ "$1" = "simult" ] && simult=true
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
if [ -z $invert ]; then
|
|
|
|
addr_ns=$ns1
|
|
|
|
subflow_ns=$ns2
|
|
|
|
elif [ $invert = "true" ]; then
|
2021-03-13 01:16:19 +00:00
|
|
|
addr_ns=$ns2
|
|
|
|
subflow_ns=$ns1
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
extra_msg="invert"
|
2021-03-13 01:16:19 +00:00
|
|
|
fi
|
2020-09-24 00:29:59 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "rm"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${addr_ns} "MPTcpExtRmAddr")
|
2023-06-20 16:30:20 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-20 16:30:20 +00:00
|
|
|
elif [ "$count" != "$rm_addr_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count RM_ADDR[s] expected $rm_addr_nr"
|
2020-09-24 00:29:59 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2020-09-24 00:29:59 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "rmsf"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${subflow_ns} "MPTcpExtRmSubflow")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ -n "$simult" ]; then
|
2022-03-09 19:16:36 +00:00
|
|
|
local cnt suffix
|
|
|
|
|
2023-11-28 23:18:55 +00:00
|
|
|
cnt=$(mptcp_lib_get_counter ${addr_ns} "MPTcpExtRmSubflow")
|
2022-03-07 20:44:35 +00:00
|
|
|
|
|
|
|
# in case of simult flush, the subflow removal count on each side is
|
|
|
|
# unreliable
|
|
|
|
count=$((count + cnt))
|
2023-10-25 23:37:11 +00:00
|
|
|
if [ "$count" != "$rm_subflow_nr" ]; then
|
|
|
|
suffix="$count in [$rm_subflow_nr:$((rm_subflow_nr*2))]"
|
|
|
|
extra_msg="$extra_msg simult"
|
|
|
|
fi
|
2022-03-07 20:44:35 +00:00
|
|
|
if [ $count -ge "$rm_subflow_nr" ] && \
|
|
|
|
[ "$count" -le "$((rm_subflow_nr *2 ))" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok "$suffix"
|
2022-03-07 20:44:35 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count RM_SUBFLOW[s] expected in range [$rm_subflow_nr:$((rm_subflow_nr*2))]"
|
2022-03-07 20:44:35 +00:00
|
|
|
fi
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$rm_subflow_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count RM_SUBFLOW[s] expected $rm_subflow_nr"
|
2020-09-24 00:29:59 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2020-09-24 00:29:59 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_info "$extra_msg"
|
2020-09-24 00:29:59 +00:00
|
|
|
}
|
|
|
|
|
2023-05-17 19:16:17 +00:00
|
|
|
chk_rm_tx_nr()
|
|
|
|
{
|
|
|
|
local rm_addr_tx_nr=$1
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "rm TX"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtRmAddrTx")
|
2023-06-20 16:30:20 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-20 16:30:20 +00:00
|
|
|
elif [ "$count" != "$rm_addr_tx_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count RM_ADDR[s] expected $rm_addr_tx_nr"
|
2023-05-17 19:16:17 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2023-05-17 19:16:17 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2021-01-09 00:48:02 +00:00
|
|
|
chk_prio_nr()
|
|
|
|
{
|
|
|
|
local mp_prio_nr_tx=$1
|
|
|
|
local mp_prio_nr_rx=$2
|
|
|
|
local count
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "ptx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPPrioTx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$mp_prio_nr_tx" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count MP_PRIO[s] TX expected $mp_prio_nr_tx"
|
2021-01-09 00:48:02 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-01-09 00:48:02 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "prx"
|
2023-11-28 23:18:55 +00:00
|
|
|
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPPrioRx")
|
2023-06-10 16:11:39 +00:00
|
|
|
if [ -z "$count" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip
|
2023-06-10 16:11:39 +00:00
|
|
|
elif [ "$count" != "$mp_prio_nr_rx" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $count MP_PRIO[s] RX expected $mp_prio_nr_rx"
|
2021-01-09 00:48:02 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-01-09 00:48:02 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-05-12 23:26:42 +00:00
|
|
|
chk_subflow_nr()
|
|
|
|
{
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
local msg="$1"
|
|
|
|
local subflow_nr=$2
|
2022-05-12 23:26:42 +00:00
|
|
|
local cnt1
|
|
|
|
local cnt2
|
2023-02-07 13:04:17 +00:00
|
|
|
local dump_stats
|
2022-05-12 23:26:42 +00:00
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "${msg}"
|
2022-05-12 23:26:42 +00:00
|
|
|
|
|
|
|
cnt1=$(ss -N $ns1 -tOni | grep -c token)
|
|
|
|
cnt2=$(ss -N $ns2 -tOni | grep -c token)
|
2023-04-14 15:47:10 +00:00
|
|
|
if [ "$cnt1" != "$subflow_nr" ] || [ "$cnt2" != "$subflow_nr" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $cnt1:$cnt2 subflows expected $subflow_nr"
|
2022-05-12 23:26:42 +00:00
|
|
|
dump_stats=1
|
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-05-12 23:26:42 +00:00
|
|
|
fi
|
|
|
|
|
2023-02-07 13:04:17 +00:00
|
|
|
if [ "${dump_stats}" = 1 ]; then
|
|
|
|
ss -N $ns1 -tOni
|
|
|
|
ss -N $ns1 -tOni | grep token
|
|
|
|
ip -n $ns1 mptcp endpoint
|
|
|
|
fi
|
2022-05-12 23:26:42 +00:00
|
|
|
}
|
|
|
|
|
2023-03-27 10:22:24 +00:00
|
|
|
chk_mptcp_info()
|
|
|
|
{
|
2023-06-23 17:34:08 +00:00
|
|
|
local info1=$1
|
|
|
|
local exp1=$2
|
|
|
|
local info2=$3
|
|
|
|
local exp2=$4
|
2023-03-27 10:22:24 +00:00
|
|
|
local cnt1
|
|
|
|
local cnt2
|
|
|
|
local dump_stats
|
|
|
|
|
2023-11-28 23:18:47 +00:00
|
|
|
print_check "mptcp_info ${info1:0:15}=$exp1:$exp2"
|
2023-03-27 10:22:24 +00:00
|
|
|
|
2023-11-28 23:18:46 +00:00
|
|
|
cnt1=$(ss -N $ns1 -inmHM | mptcp_lib_get_info_value "$info1" "$info1")
|
|
|
|
cnt2=$(ss -N $ns2 -inmHM | mptcp_lib_get_info_value "$info2" "$info2")
|
2023-06-23 17:34:08 +00:00
|
|
|
# 'ss' only display active connections and counters that are not 0.
|
2023-03-27 10:22:24 +00:00
|
|
|
[ -z "$cnt1" ] && cnt1=0
|
|
|
|
[ -z "$cnt2" ] && cnt2=0
|
2023-06-23 17:34:08 +00:00
|
|
|
|
|
|
|
if [ "$cnt1" != "$exp1" ] || [ "$cnt2" != "$exp2" ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $cnt1:$cnt2 $info1:$info2 expected $exp1:$exp2"
|
2023-03-27 10:22:24 +00:00
|
|
|
dump_stats=1
|
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2023-03-27 10:22:24 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$dump_stats" = 1 ]; then
|
|
|
|
ss -N $ns1 -inmHM
|
|
|
|
ss -N $ns2 -inmHM
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2023-11-28 23:18:47 +00:00
|
|
|
# $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
|
|
|
|
}
|
|
|
|
|
2021-08-13 22:15:48 +00:00
|
|
|
chk_link_usage()
|
|
|
|
{
|
|
|
|
local ns=$1
|
|
|
|
local link=$2
|
|
|
|
local out=$3
|
|
|
|
local expected_rate=$4
|
2022-03-09 19:16:35 +00:00
|
|
|
|
|
|
|
local tx_link tx_total
|
|
|
|
tx_link=$(ip netns exec $ns cat /sys/class/net/$link/statistics/tx_bytes)
|
2022-03-09 19:16:36 +00:00
|
|
|
tx_total=$(stat --format=%s $out)
|
|
|
|
local tx_rate=$((tx_link * 100 / tx_total))
|
2021-08-13 22:15:48 +00:00
|
|
|
local tolerance=5
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "link usage"
|
2022-03-09 19:16:36 +00:00
|
|
|
if [ $tx_rate -lt $((expected_rate - tolerance)) ] || \
|
|
|
|
[ $tx_rate -gt $((expected_rate + tolerance)) ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "got $tx_rate% usage, expected $expected_rate%"
|
2021-08-13 22:15:48 +00:00
|
|
|
else
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2021-08-13 22:15:48 +00:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-03-07 20:44:34 +00:00
|
|
|
wait_attempt_fail()
|
2022-01-07 00:20:24 +00:00
|
|
|
{
|
|
|
|
local timeout_ms=$((timeout_poll * 1000))
|
|
|
|
local time=0
|
|
|
|
local ns=$1
|
|
|
|
|
|
|
|
while [ $time -lt $timeout_ms ]; do
|
2022-03-09 19:16:34 +00:00
|
|
|
local cnt
|
|
|
|
|
2023-11-28 23:18:55 +00:00
|
|
|
cnt=$(mptcp_lib_get_counter ${ns} "TcpAttemptFails")
|
2022-01-07 00:20:24 +00:00
|
|
|
|
|
|
|
[ "$cnt" = 1 ] && return 1
|
|
|
|
time=$((time + 100))
|
|
|
|
sleep 0.1
|
|
|
|
done
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
2022-04-27 22:50:02 +00:00
|
|
|
set_userspace_pm()
|
|
|
|
{
|
|
|
|
local ns=$1
|
|
|
|
|
|
|
|
ip netns exec $ns sysctl -q net.mptcp.pm_type=1
|
|
|
|
}
|
|
|
|
|
2021-02-04 23:23:29 +00:00
|
|
|
subflows_tests()
|
|
|
|
{
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "no JOIN"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflow limited by client
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "single subflow, limited by client"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 0
|
|
|
|
pm_nl_set_limits $ns2 0 0
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflow limited by server
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "single subflow, limited by server"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 0
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflow
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "single subflow"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# multiple subflows
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "multiple subflows"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
2021-10-15 23:05:51 +00:00
|
|
|
# multiple subflows limited by server
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "multiple subflows, limited by server"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-04-07 00:16:03 +00:00
|
|
|
|
|
|
|
# single subflow, dev
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "single subflow, dev"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow dev ns2eth3
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
2022-01-07 00:20:24 +00:00
|
|
|
subflows_error_tests()
|
|
|
|
{
|
|
|
|
# If a single subflow is configured, and matches the MPC src
|
|
|
|
# address, no additional subflow should be created
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "no MPC reuse with single endpoint"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2022-01-07 00:20:24 +00:00
|
|
|
|
|
|
|
# multiple subflows, with subflow creation error
|
2023-06-10 16:11:40 +00:00
|
|
|
if reset_with_tcp_filter "multi subflows, with failing subflow" ns1 10.0.3.2 REJECT &&
|
|
|
|
continue_if mptcp_lib_kallsyms_has "mptcp_pm_subflow_check_next$"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2022-01-07 00:20:24 +00:00
|
|
|
|
|
|
|
# multiple subflows, with subflow timeout on MPJ
|
2023-06-10 16:11:40 +00:00
|
|
|
if reset_with_tcp_filter "multi subflows, with subflow timeout" ns1 10.0.3.2 DROP &&
|
|
|
|
continue_if mptcp_lib_kallsyms_has "mptcp_pm_subflow_check_next$"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2022-01-07 00:20:24 +00:00
|
|
|
|
|
|
|
# multiple subflows, check that the endpoint corresponding to
|
|
|
|
# closed subflow (due to reset) is not reused if additional
|
|
|
|
# subflows are added later
|
2023-06-10 16:11:40 +00:00
|
|
|
if reset_with_tcp_filter "multi subflows, fair usage on close" ns1 10.0.3.2 REJECT &&
|
|
|
|
continue_if mptcp_lib_kallsyms_has "mptcp_pm_subflow_check_next$"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1 &
|
2022-03-09 19:16:30 +00:00
|
|
|
|
|
|
|
# mpj subflow will be in TW after the reset
|
|
|
|
wait_attempt_fail $ns2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
|
|
|
|
wait
|
|
|
|
|
|
|
|
# additional subflow could be created only if the PM select
|
|
|
|
# the later endpoint, skipping the already used one
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2022-01-07 00:20:24 +00:00
|
|
|
}
|
|
|
|
|
2021-02-04 23:23:29 +00:00
|
|
|
signal_address_tests()
|
|
|
|
{
|
|
|
|
# add_address, unused
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "unused signal address"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2023-05-17 19:16:17 +00:00
|
|
|
chk_add_tx_nr 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# accept and use add_addr
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "signal address"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# accept and use add_addr with an additional subflow
|
|
|
|
# note: signal address in server ns and local addresses in client ns must
|
|
|
|
# belong to different subnets or one of the listed local address could be
|
|
|
|
# used for 'add_addr' subflow
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "subflow and signal"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 1 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# accept and use add_addr with additional subflows
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "multiple subflows and signal"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 3
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-03-26 18:26:42 +00:00
|
|
|
|
|
|
|
# signal addresses
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "signal addresses"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 3 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.4.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 3 3
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 3 3
|
|
|
|
fi
|
2021-03-26 18:26:42 +00:00
|
|
|
|
|
|
|
# signal invalid addresses
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "signal invalid addresses"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 3 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.12.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.14.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 3 3
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 3 3
|
|
|
|
fi
|
2021-08-24 01:05:44 +00:00
|
|
|
|
|
|
|
# signal addresses race test
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "signal addresses race test"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 4 4
|
|
|
|
pm_nl_set_limits $ns2 4 4
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.1.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.4.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.1.2 flags signal
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags signal
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags signal
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.4.2 flags signal
|
|
|
|
|
|
|
|
# the peer could possibly miss some addr notification, allow retransmission
|
|
|
|
ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:30 +00:00
|
|
|
|
2023-06-10 16:11:41 +00:00
|
|
|
# It is not directly linked to the commit introducing this
|
|
|
|
# symbol but for the parent one which is linked anyway.
|
|
|
|
if ! mptcp_lib_kallsyms_has "mptcp_pm_subflow_check_next$"; then
|
|
|
|
chk_join_nr 3 3 2
|
|
|
|
chk_add_nr 4 4
|
|
|
|
else
|
|
|
|
chk_join_nr 3 3 3
|
|
|
|
# the server will not signal the address terminating
|
|
|
|
# the MPC subflow
|
|
|
|
chk_add_nr 3 3
|
|
|
|
fi
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
link_failure_tests()
|
|
|
|
{
|
|
|
|
# accept and use add_addr with additional subflows and link loss
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "multiple flows, signal, link failure"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
# without any b/w limit each veth could spool the packets and get
|
|
|
|
# them acked at xmit time, so that the corresponding subflow will
|
|
|
|
# have almost always no outstanding pkts, the scheduler will pick
|
|
|
|
# always the first subflow and we will have hard time testing
|
|
|
|
# active backup and link switch-over.
|
|
|
|
# Let's set some arbitrary (low) virtual link limits.
|
|
|
|
init_shapers
|
|
|
|
pm_nl_set_limits $ns1 0 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 3
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow
|
2023-06-23 17:34:10 +00:00
|
|
|
test_linkfail=1 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_stale_nr $ns2 1 5 1
|
|
|
|
fi
|
2021-08-13 22:15:48 +00:00
|
|
|
|
|
|
|
# accept and use add_addr with additional subflows and link loss
|
|
|
|
# for bidirectional transfer
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "multi flows, signal, bidi, link fail"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
init_shapers
|
|
|
|
pm_nl_set_limits $ns1 0 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 3
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow
|
2023-06-23 17:34:10 +00:00
|
|
|
test_linkfail=2 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_stale_nr $ns2 1 -1 1
|
|
|
|
fi
|
2021-08-13 22:15:48 +00:00
|
|
|
|
|
|
|
# 2 subflows plus 1 backup subflow with a lossy link, backup
|
|
|
|
# will never be used
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "backup subflow unused, link failure"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
init_shapers
|
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup
|
2023-06-23 17:34:10 +00:00
|
|
|
FAILING_LINKS="1" test_linkfail=1 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_link_usage $ns2 ns2eth3 $cinsent 0
|
|
|
|
fi
|
2021-08-13 22:15:48 +00:00
|
|
|
|
|
|
|
# 2 lossy links after half transfer, backup will get half of
|
|
|
|
# the traffic
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "backup flow used, multi links fail"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
init_shapers
|
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup
|
2023-06-23 17:34:10 +00:00
|
|
|
FAILING_LINKS="1 2" test_linkfail=1 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_stale_nr $ns2 2 4 2
|
|
|
|
chk_link_usage $ns2 ns2eth3 $cinsent 50
|
|
|
|
fi
|
2021-08-13 22:15:48 +00:00
|
|
|
|
|
|
|
# use a backup subflow with the first subflow on a lossy link
|
|
|
|
# for bidirectional transfer
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "backup flow used, bidi, link failure"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
init_shapers
|
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 3
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup
|
2023-06-23 17:34:10 +00:00
|
|
|
FAILING_LINKS="1 2" test_linkfail=2 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_stale_nr $ns2 1 -1 2
|
|
|
|
chk_link_usage $ns2 ns2eth3 $cinsent 50
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
add_addr_timeout_tests()
|
|
|
|
{
|
|
|
|
# add_addr timeout
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_add_addr_timeout "signal address, ADD_ADDR timeout"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2023-05-17 19:16:17 +00:00
|
|
|
chk_add_tx_nr 4 4
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 4 0
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# add_addr timeout IPv6
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_add_addr_timeout "signal address, ADD_ADDR6 timeout" 6; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 4 0
|
|
|
|
fi
|
2021-03-26 18:26:36 +00:00
|
|
|
|
|
|
|
# signal addresses timeout
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_add_addr_timeout "signal addresses, ADD_ADDR timeout"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 2 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 2 2
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=10 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 8 0
|
|
|
|
fi
|
2021-03-26 18:26:36 +00:00
|
|
|
|
|
|
|
# signal invalid addresses timeout
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_add_addr_timeout "invalid address, ADD_ADDR timeout"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 2 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.12.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 2 2
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=10 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 8 0
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
remove_tests()
|
|
|
|
{
|
|
|
|
# single subflow, remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove single subflow"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns2=-1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2023-05-17 19:16:17 +00:00
|
|
|
chk_rm_tx_nr 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_rm_nr 1 1
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# multiple subflows, remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove multiple subflows"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns2=-2 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_rm_nr 2 2
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# single address, remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove single address"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_rm_nr 1 1 invert
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflow and signal, remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove subflow and signal"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-1 addr_nr_ns2=-1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_rm_nr 1 1
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflows and signal, remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove subflows and signal"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 3
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-1 addr_nr_ns2=-2 speed=10 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_rm_nr 2 2
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
2021-03-26 18:26:42 +00:00
|
|
|
# addresses remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove addresses"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 3 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.4.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 3 3
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-3 speed=10 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 3 3
|
|
|
|
chk_rm_nr 3 3 invert
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-03-26 18:26:42 +00:00
|
|
|
|
|
|
|
# invalid addresses remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove invalid addresses"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 3 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.12.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.14.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 3 3
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-3 speed=10 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 3 3
|
|
|
|
chk_rm_nr 3 1 invert
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-03-26 18:26:42 +00:00
|
|
|
|
2021-02-04 23:23:29 +00:00
|
|
|
# subflows and signal, flush
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "flush subflows and signal"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 3
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-8 addr_nr_ns2=-8 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_rm_nr 1 3 invert simult
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-03-13 01:16:21 +00:00
|
|
|
|
|
|
|
# subflows flush
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "flush subflows"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 3 3
|
|
|
|
pm_nl_set_limits $ns2 3 3
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow id 150
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-8 addr_nr_ns2=-8 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2023-06-10 16:11:43 +00:00
|
|
|
|
|
|
|
if mptcp_lib_kversion_ge 5.18; then
|
2023-06-16 05:18:58 +00:00
|
|
|
chk_rm_tx_nr 0
|
2023-06-10 16:11:43 +00:00
|
|
|
chk_rm_nr 0 3 simult
|
|
|
|
else
|
|
|
|
chk_rm_nr 3 3
|
|
|
|
fi
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-03-13 01:16:21 +00:00
|
|
|
|
|
|
|
# addresses flush
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "flush addresses"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 3 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.4.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 3 3
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-8 addr_nr_ns2=-8 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 3 3
|
|
|
|
chk_rm_nr 3 3 invert simult
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-03-26 18:26:42 +00:00
|
|
|
|
|
|
|
# invalid addresses flush
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "flush invalid addresses"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 3 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.12.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.14.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 3 3
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-8 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 3 3
|
|
|
|
chk_rm_nr 3 1 invert
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-03-31 00:08:56 +00:00
|
|
|
|
|
|
|
# remove id 0 subflow
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove id 0 subflow"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns2=-9 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_rm_nr 1 1
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-03-31 00:08:56 +00:00
|
|
|
|
|
|
|
# remove id 0 address
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove id 0 address"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-9 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_rm_nr 1 1 invert
|
2023-10-18 18:23:56 +00:00
|
|
|
chk_rst_nr 0 0 invert
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
add_tests()
|
|
|
|
{
|
|
|
|
# add single subflow
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "add single subflow"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
2023-12-22 12:47:24 +00:00
|
|
|
addr_nr_ns2=1 speed=slow cestab_ns2=1 \
|
2023-07-12 16:03:19 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2023-12-22 12:47:24 +00:00
|
|
|
chk_cestab_nr $ns2 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# add signal address
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "add signal address"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
2023-12-22 12:47:24 +00:00
|
|
|
addr_nr_ns1=1 speed=slow cestab_ns1=1 \
|
2023-07-12 16:03:19 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
2023-12-22 12:47:24 +00:00
|
|
|
chk_cestab_nr $ns1 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# add multiple subflows
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "add multiple subflows"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
2023-12-22 12:47:24 +00:00
|
|
|
addr_nr_ns2=2 speed=slow cestab_ns2=1 \
|
2023-07-12 16:03:19 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2023-12-22 12:47:24 +00:00
|
|
|
chk_cestab_nr $ns2 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# add multiple subflows IPv6
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "add multiple subflows IPv6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
2023-12-22 12:47:24 +00:00
|
|
|
addr_nr_ns2=2 speed=slow cestab_ns2=1 \
|
2023-07-12 16:03:19 +00:00
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2023-12-22 12:47:24 +00:00
|
|
|
chk_cestab_nr $ns2 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# add multiple addresses IPv6
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "add multiple addresses IPv6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 2 2
|
2023-12-22 12:47:24 +00:00
|
|
|
addr_nr_ns1=2 speed=slow cestab_ns1=1 \
|
2023-07-12 16:03:19 +00:00
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 2 2
|
2023-12-22 12:47:24 +00:00
|
|
|
chk_cestab_nr $ns1 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
ipv6_tests()
|
|
|
|
{
|
|
|
|
# subflow IPv6
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "single subflow IPv6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# add_address, unused IPv6
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "unused signal address IPv6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# signal address IPv6
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "single address IPv6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# single address IPv6, remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove single address IPv6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_rm_nr 1 1 invert
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflow and signal IPv6, remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove subflow and signal IPv6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 2
|
|
|
|
pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-1 addr_nr_ns2=-1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_rm_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
v4mapped_tests()
|
|
|
|
{
|
|
|
|
# subflow IPv4-mapped to IPv4-mapped
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "single subflow IPv4-mapped"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow
|
|
|
|
run_tests $ns1 $ns2 "::ffff:10.0.1.1"
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# signal address IPv4-mapped with IPv4-mapped sk
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "signal address IPv4-mapped"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal
|
|
|
|
run_tests $ns1 $ns2 "::ffff:10.0.1.1"
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflow v4-map-v6
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "single subflow v4-map-v6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 "::ffff:10.0.1.1"
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# signal address v4-map-v6
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "signal address v4-map-v6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
run_tests $ns1 $ns2 "::ffff:10.0.1.1"
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflow v6-map-v4
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "single subflow v6-map-v4"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# signal address v6-map-v4
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "signal address v6-map-v4"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# no subflow IPv6 to v4 address
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "no JOIN with diff families v4-v6"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# no subflow IPv6 to v4 address even if v6 has a valid v4 at the end
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "no JOIN with diff families v4-v6-2"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 dead:beef:2::10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# no subflow IPv4 to v6 address, no need to slow down too then
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "no JOIN with diff families v6-v4"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
2023-01-25 10:47:23 +00:00
|
|
|
mixed_tests()
|
|
|
|
{
|
2023-06-10 16:11:52 +00:00
|
|
|
if reset "IPv4 sockets do not use IPv6 addresses" &&
|
|
|
|
continue_if mptcp_lib_kversion_ge 6.3; then
|
2023-01-25 10:47:23 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2023-01-25 10:47:23 +00:00
|
|
|
chk_join_nr 0 0 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Need an IPv6 mptcp socket to allow subflows of both families
|
2023-06-10 16:11:52 +00:00
|
|
|
if reset "simult IPv4 and IPv6 subflows" &&
|
|
|
|
continue_if mptcp_lib_kversion_ge 6.3; then
|
2023-01-25 10:47:23 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.1.1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 dead:beef:2::1
|
2023-01-25 10:47:23 +00:00
|
|
|
chk_join_nr 1 1 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# cross families subflows will not be created even in fullmesh mode
|
2023-06-10 16:11:52 +00:00
|
|
|
if reset "simult IPv4 and IPv6 subflows, fullmesh 1x1" &&
|
|
|
|
continue_if mptcp_lib_kversion_ge 6.3; then
|
2023-01-25 10:47:23 +00:00
|
|
|
pm_nl_set_limits $ns1 0 4
|
|
|
|
pm_nl_set_limits $ns2 1 4
|
|
|
|
pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow,fullmesh
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.1.1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 dead:beef:2::1
|
2023-01-25 10:47:23 +00:00
|
|
|
chk_join_nr 1 1 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# fullmesh still tries to create all the possibly subflows with
|
|
|
|
# matching family
|
2023-06-10 16:11:52 +00:00
|
|
|
if reset "simult IPv4 and IPv6 subflows, fullmesh 2x2" &&
|
|
|
|
continue_if mptcp_lib_kversion_ge 6.3; then
|
2023-01-25 10:47:23 +00:00
|
|
|
pm_nl_set_limits $ns1 0 4
|
|
|
|
pm_nl_set_limits $ns2 2 4
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
fullmesh=1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 dead:beef:1::1
|
2023-01-25 10:47:23 +00:00
|
|
|
chk_join_nr 4 4 4
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2021-02-04 23:23:29 +00:00
|
|
|
backup_tests()
|
|
|
|
{
|
|
|
|
# single subflow, backup
|
2023-06-10 16:11:45 +00:00
|
|
|
if reset "single subflow, backup" &&
|
|
|
|
continue_if mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup
|
2023-07-12 16:03:19 +00:00
|
|
|
sflags=nobackup speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_prio_nr 0 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# single address, backup
|
2023-06-10 16:11:45 +00:00
|
|
|
if reset "single address, backup" &&
|
|
|
|
continue_if mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
2023-07-12 16:03:19 +00:00
|
|
|
sflags=backup speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_prio_nr 1 1
|
|
|
|
fi
|
2022-02-05 00:03:31 +00:00
|
|
|
|
|
|
|
# single address with port, backup
|
2023-06-10 16:11:45 +00:00
|
|
|
if reset "single address with port, backup" &&
|
|
|
|
continue_if mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
2023-07-12 16:03:19 +00:00
|
|
|
sflags=backup speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_prio_nr 1 1
|
|
|
|
fi
|
2022-07-11 19:16:33 +00:00
|
|
|
|
2023-06-10 16:11:49 +00:00
|
|
|
if reset "mpc backup" &&
|
2023-12-15 16:04:24 +00:00
|
|
|
continue_if mptcp_lib_kallsyms_doesnt_have "T mptcp_subflow_send_ack$"; then
|
2022-07-11 19:16:33 +00:00
|
|
|
pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-07-11 19:16:33 +00:00
|
|
|
chk_join_nr 0 0 0
|
|
|
|
chk_prio_nr 0 1
|
|
|
|
fi
|
|
|
|
|
2023-06-10 16:11:49 +00:00
|
|
|
if reset "mpc backup both sides" &&
|
2023-12-15 16:04:24 +00:00
|
|
|
continue_if mptcp_lib_kallsyms_doesnt_have "T mptcp_subflow_send_ack$"; then
|
2022-07-11 19:16:33 +00:00
|
|
|
pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow,backup
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-07-11 19:16:33 +00:00
|
|
|
chk_join_nr 0 0 0
|
|
|
|
chk_prio_nr 1 1
|
|
|
|
fi
|
|
|
|
|
2023-06-10 16:11:49 +00:00
|
|
|
if reset "mpc switch to backup" &&
|
2023-12-15 16:04:24 +00:00
|
|
|
continue_if mptcp_lib_kallsyms_doesnt_have "T mptcp_subflow_send_ack$"; then
|
2022-07-11 19:16:33 +00:00
|
|
|
pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
sflags=backup speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-07-11 19:16:33 +00:00
|
|
|
chk_join_nr 0 0 0
|
|
|
|
chk_prio_nr 0 1
|
|
|
|
fi
|
|
|
|
|
2023-06-10 16:11:49 +00:00
|
|
|
if reset "mpc switch to backup both sides" &&
|
2023-12-15 16:04:24 +00:00
|
|
|
continue_if mptcp_lib_kallsyms_doesnt_have "T mptcp_subflow_send_ack$"; then
|
2022-07-11 19:16:33 +00:00
|
|
|
pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
sflags=backup speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-07-11 19:16:33 +00:00
|
|
|
chk_join_nr 0 0 0
|
|
|
|
chk_prio_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
2023-11-28 23:18:48 +00:00
|
|
|
SUB_ESTABLISHED=10 # MPTCP_EVENT_SUB_ESTABLISHED
|
2022-11-30 14:06:33 +00:00
|
|
|
LISTENER_CREATED=15 #MPTCP_EVENT_LISTENER_CREATED
|
|
|
|
LISTENER_CLOSED=16 #MPTCP_EVENT_LISTENER_CLOSED
|
|
|
|
|
|
|
|
AF_INET=2
|
|
|
|
AF_INET6=10
|
|
|
|
|
|
|
|
verify_listener_events()
|
|
|
|
{
|
|
|
|
local evt=$1
|
|
|
|
local e_type=$2
|
|
|
|
local e_family=$3
|
|
|
|
local e_saddr=$4
|
|
|
|
local e_sport=$5
|
|
|
|
local type
|
|
|
|
local family
|
|
|
|
local saddr
|
|
|
|
local sport
|
2023-06-10 16:11:51 +00:00
|
|
|
local name
|
2022-11-30 14:06:33 +00:00
|
|
|
|
|
|
|
if [ $e_type = $LISTENER_CREATED ]; then
|
2023-06-10 16:11:51 +00:00
|
|
|
name="LISTENER_CREATED"
|
2022-11-30 14:06:33 +00:00
|
|
|
elif [ $e_type = $LISTENER_CLOSED ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
name="LISTENER_CLOSED "
|
2023-06-10 16:11:51 +00:00
|
|
|
else
|
|
|
|
name="$e_type"
|
2022-11-30 14:06:33 +00:00
|
|
|
fi
|
|
|
|
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_check "$name $e_saddr:$e_sport"
|
2023-06-10 16:11:51 +00:00
|
|
|
|
2023-06-10 16:11:50 +00:00
|
|
|
if ! mptcp_lib_kallsyms_has "mptcp_event_pm_listener$"; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_skip "event not supported"
|
2023-06-10 16:11:50 +00:00
|
|
|
return
|
2022-11-30 14:06:33 +00:00
|
|
|
fi
|
|
|
|
|
2023-11-28 23:18:46 +00:00
|
|
|
type=$(mptcp_lib_evts_get_info type "$evt" "$e_type")
|
|
|
|
family=$(mptcp_lib_evts_get_info family "$evt" "$e_type")
|
|
|
|
sport=$(mptcp_lib_evts_get_info sport "$evt" "$e_type")
|
2022-11-30 14:06:33 +00:00
|
|
|
if [ $family ] && [ $family = $AF_INET6 ]; then
|
2023-11-28 23:18:46 +00:00
|
|
|
saddr=$(mptcp_lib_evts_get_info saddr6 "$evt" "$e_type")
|
2022-11-30 14:06:33 +00:00
|
|
|
else
|
2023-11-28 23:18:46 +00:00
|
|
|
saddr=$(mptcp_lib_evts_get_info saddr4 "$evt" "$e_type")
|
2022-11-30 14:06:33 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $type ] && [ $type = $e_type ] &&
|
|
|
|
[ $family ] && [ $family = $e_family ] &&
|
|
|
|
[ $saddr ] && [ $saddr = $e_saddr ] &&
|
|
|
|
[ $sport ] && [ $sport = $e_sport ]; then
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
print_ok
|
2022-11-30 14:06:33 +00:00
|
|
|
return 0
|
|
|
|
fi
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
fail_test "$e_type:$type $e_family:$family $e_saddr:$saddr $e_sport:$sport"
|
2022-11-30 14:06:33 +00:00
|
|
|
}
|
|
|
|
|
2021-02-04 23:23:29 +00:00
|
|
|
add_addr_ports_tests()
|
|
|
|
{
|
|
|
|
# signal address with port
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "signal address with port"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflow and signal with port
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "subflow and signal with port"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100
|
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 1 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# single address with port, remove
|
2022-11-30 14:06:33 +00:00
|
|
|
# pm listener events
|
|
|
|
if reset_with_events "remove single address with port"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1 1
|
|
|
|
chk_rm_nr 1 1 invert
|
2022-11-30 14:06:33 +00:00
|
|
|
|
|
|
|
verify_listener_events $evts_ns1 $LISTENER_CREATED $AF_INET 10.0.2.1 10100
|
|
|
|
verify_listener_events $evts_ns1 $LISTENER_CLOSED $AF_INET 10.0.2.1 10100
|
|
|
|
kill_events_pids
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflow and signal with port, remove
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "remove subflow and signal with port"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100
|
|
|
|
pm_nl_set_limits $ns2 1 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-1 addr_nr_ns2=-1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1 1
|
|
|
|
chk_rm_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# subflows and signal with port, flush
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "flush subflows and signal with port"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100
|
|
|
|
pm_nl_set_limits $ns2 1 3
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=-8 addr_nr_ns2=-2 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
chk_rm_nr 1 3 invert simult
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# multiple addresses with port
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "multiple addresses with port"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 2 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10100
|
|
|
|
pm_nl_set_limits $ns2 2 2
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 2 2 2
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# multiple addresses with ports
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "multiple addresses with ports"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 2 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10101
|
|
|
|
pm_nl_set_limits $ns2 2 2
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 2 2 2
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
syncookies_tests()
|
|
|
|
{
|
|
|
|
# single subflow, syncookies
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_cookies "single subflow with syn cookies"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# multiple subflows with syn cookies
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_cookies "multiple subflows with syn cookies"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# multiple subflows limited by server
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_cookies "subflows limited by server w cookies"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# test signal address with cookies
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_cookies "signal address with syn cookies"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# test cookie with subflow and signal
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_cookies "subflow and signal w cookies"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 1 2
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
|
|
|
|
# accept and use add_addr with additional subflows
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_cookies "subflows and signal w. cookies"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_set_limits $ns2 1 3
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
2021-06-17 23:46:22 +00:00
|
|
|
checksum_tests()
|
|
|
|
{
|
|
|
|
# checksum test 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
if reset_with_checksum 0 0; then
|
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-06-17 23:46:22 +00:00
|
|
|
|
|
|
|
# checksum test 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
if reset_with_checksum 1 1; then
|
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-06-17 23:46:22 +00:00
|
|
|
|
|
|
|
# checksum test 0 1
|
2022-03-09 19:16:30 +00:00
|
|
|
if reset_with_checksum 0 1; then
|
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-06-17 23:46:22 +00:00
|
|
|
|
|
|
|
# checksum test 1 0
|
2022-03-09 19:16:30 +00:00
|
|
|
if reset_with_checksum 1 0; then
|
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-06-17 23:46:22 +00:00
|
|
|
}
|
|
|
|
|
2021-06-22 19:25:21 +00:00
|
|
|
deny_join_id0_tests()
|
|
|
|
{
|
|
|
|
# subflow allow join id0 ns1
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_allow_join_id0 "single subflow allow join id0 ns1" 1 0; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 1 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-06-22 19:25:21 +00:00
|
|
|
|
|
|
|
# subflow allow join id0 ns2
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_allow_join_id0 "single subflow allow join id0 ns2" 0 1; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 1 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-06-22 19:25:21 +00:00
|
|
|
|
|
|
|
# signal address allow join id0 ns1
|
|
|
|
# ADD_ADDRs are not affected by allow_join_id0 value.
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_allow_join_id0 "signal address allow join id0 ns1" 1 0; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 1 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-06-22 19:25:21 +00:00
|
|
|
|
|
|
|
# signal address allow join id0 ns2
|
|
|
|
# ADD_ADDRs are not affected by allow_join_id0 value.
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_allow_join_id0 "signal address allow join id0 ns2" 0 1; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 1 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-06-22 19:25:21 +00:00
|
|
|
|
|
|
|
# subflow and address allow join id0 ns1
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_allow_join_id0 "subflow and address allow join id0 1" 1 0; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 2 2
|
|
|
|
pm_nl_set_limits $ns2 2 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-06-22 19:25:21 +00:00
|
|
|
|
|
|
|
# subflow and address allow join id0 ns2
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset_with_allow_join_id0 "subflow and address allow join id0 2" 0 1; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 2 2
|
|
|
|
pm_nl_set_limits $ns2 2 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 1 1 1
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2021-06-22 19:25:21 +00:00
|
|
|
}
|
|
|
|
|
2021-08-17 22:07:26 +00:00
|
|
|
fullmesh_tests()
|
|
|
|
{
|
|
|
|
# fullmesh 1
|
|
|
|
# 2 fullmesh addrs in ns2, added before the connection,
|
|
|
|
# 1 non-fullmesh addr in ns1, added during the connection.
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "fullmesh test 2x1"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 0 4
|
|
|
|
pm_nl_set_limits $ns2 1 4
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,fullmesh
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,fullmesh
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns1=1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 4 4 4
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-08-17 22:07:26 +00:00
|
|
|
|
|
|
|
# fullmesh 2
|
|
|
|
# 1 non-fullmesh addr in ns1, added before the connection,
|
|
|
|
# 1 fullmesh addr in ns2, added during the connection.
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "fullmesh test 1x1"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 1 3
|
|
|
|
pm_nl_set_limits $ns2 1 3
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
fullmesh=1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 3 3 3
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-08-17 22:07:26 +00:00
|
|
|
|
|
|
|
# fullmesh 3
|
|
|
|
# 1 non-fullmesh addr in ns1, added before the connection,
|
|
|
|
# 2 fullmesh addrs in ns2, added during the connection.
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "fullmesh test 1x2"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 2 5
|
|
|
|
pm_nl_set_limits $ns2 1 5
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
fullmesh=2 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 5 5 5
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2021-08-17 22:07:26 +00:00
|
|
|
|
|
|
|
# fullmesh 4
|
|
|
|
# 1 non-fullmesh addr in ns1, added before the connection,
|
|
|
|
# 2 fullmesh addrs in ns2, added during the connection,
|
|
|
|
# limit max_subflows to 4.
|
2022-03-09 19:16:31 +00:00
|
|
|
if reset "fullmesh test 1x2, limited"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 2 4
|
|
|
|
pm_nl_set_limits $ns2 1 4
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
fullmesh=2 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 4 4 4
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_add_nr 1 1
|
|
|
|
fi
|
2022-02-03 01:03:43 +00:00
|
|
|
|
|
|
|
# set fullmesh flag
|
2023-06-10 16:11:46 +00:00
|
|
|
if reset "set fullmesh flag test" &&
|
|
|
|
continue_if mptcp_lib_kversion_ge 5.18; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 4 4
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow
|
|
|
|
pm_nl_set_limits $ns2 4 4
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns2=1 sflags=fullmesh speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_rm_nr 0 1
|
|
|
|
fi
|
2022-02-03 01:03:43 +00:00
|
|
|
|
|
|
|
# set nofullmesh flag
|
2023-06-10 16:11:46 +00:00
|
|
|
if reset "set nofullmesh flag test" &&
|
|
|
|
continue_if mptcp_lib_kversion_ge 5.18; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 4 4
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow,fullmesh
|
|
|
|
pm_nl_set_limits $ns2 4 4
|
2023-07-12 16:03:19 +00:00
|
|
|
fullmesh=1 sflags=nofullmesh speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_rm_nr 0 1
|
|
|
|
fi
|
2022-02-03 01:03:43 +00:00
|
|
|
|
|
|
|
# set backup,fullmesh flags
|
2023-06-10 16:11:46 +00:00
|
|
|
if reset "set backup,fullmesh flags test" &&
|
|
|
|
continue_if mptcp_lib_kversion_ge 5.18; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 4 4
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow
|
|
|
|
pm_nl_set_limits $ns2 4 4
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns2=1 sflags=backup,fullmesh speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_prio_nr 0 1
|
|
|
|
chk_rm_nr 0 1
|
|
|
|
fi
|
2022-02-03 01:03:43 +00:00
|
|
|
|
|
|
|
# set nobackup,nofullmesh flags
|
2023-06-10 16:11:46 +00:00
|
|
|
if reset "set nobackup,nofullmesh flags test" &&
|
|
|
|
continue_if mptcp_lib_kversion_ge 5.18; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 4 4
|
|
|
|
pm_nl_set_limits $ns2 4 4
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup,fullmesh
|
2023-07-12 16:03:19 +00:00
|
|
|
sflags=nobackup,nofullmesh speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 2 2 2
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_prio_nr 0 1
|
|
|
|
chk_rm_nr 0 1
|
|
|
|
fi
|
2021-08-17 22:07:26 +00:00
|
|
|
}
|
|
|
|
|
2022-03-04 19:36:33 +00:00
|
|
|
fastclose_tests()
|
|
|
|
{
|
2023-06-10 16:11:42 +00:00
|
|
|
if reset_check_counter "fastclose test" "MPTcpExtMPFastcloseTx"; then
|
2023-07-12 16:03:17 +00:00
|
|
|
test_linkfail=1024 fastclose=client \
|
2023-06-23 17:34:11 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-03-09 19:16:31 +00:00
|
|
|
chk_join_nr 0 0 0
|
2022-03-09 19:16:30 +00:00
|
|
|
chk_fclose_nr 1 1
|
|
|
|
chk_rst_nr 1 1 invert
|
|
|
|
fi
|
2022-09-30 15:59:33 +00:00
|
|
|
|
2023-06-10 16:11:42 +00:00
|
|
|
if reset_check_counter "fastclose server test" "MPTcpExtMPFastcloseRx"; then
|
2023-07-12 16:03:17 +00:00
|
|
|
test_linkfail=1024 fastclose=server \
|
2023-06-23 17:34:11 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2023-11-13 23:16:17 +00:00
|
|
|
chk_join_nr 0 0 0 0 0 0 1
|
2022-09-30 15:59:33 +00:00
|
|
|
chk_fclose_nr 1 1 invert
|
|
|
|
chk_rst_nr 1 1
|
|
|
|
fi
|
2022-03-04 19:36:33 +00:00
|
|
|
}
|
|
|
|
|
2022-04-26 21:57:11 +00:00
|
|
|
pedit_action_pkts()
|
|
|
|
{
|
|
|
|
tc -n $ns2 -j -s action show action pedit index 100 | \
|
2023-11-28 23:18:46 +00:00
|
|
|
mptcp_lib_get_info_value \"packets\" packets
|
2022-04-26 21:57:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fail_tests()
|
|
|
|
{
|
|
|
|
# single subflow
|
|
|
|
if reset_with_fail "Infinite map" 1; then
|
2023-06-23 17:34:10 +00:00
|
|
|
test_linkfail=128 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-04-26 21:57:11 +00:00
|
|
|
chk_join_nr 0 0 0 +1 +0 1 0 1 "$(pedit_action_pkts)"
|
2022-04-26 21:57:16 +00:00
|
|
|
chk_fail_nr 1 -1 invert
|
2022-04-26 21:57:11 +00:00
|
|
|
fi
|
2022-05-18 22:04:46 +00:00
|
|
|
|
|
|
|
# multiple subflows
|
|
|
|
if reset_with_fail "MP_FAIL MP_RST" 2; then
|
|
|
|
tc -n $ns2 qdisc add dev ns2eth1 root netem rate 1mbit delay 5
|
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 dev ns2eth2 flags subflow
|
2023-06-23 17:34:10 +00:00
|
|
|
test_linkfail=1024 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-05-18 22:04:46 +00:00
|
|
|
chk_join_nr 1 1 1 1 0 1 1 0 "$(pedit_action_pkts)"
|
|
|
|
fi
|
2022-04-26 21:57:11 +00:00
|
|
|
}
|
|
|
|
|
2023-11-28 23:18:48 +00:00
|
|
|
# $1: ns ; $2: addr ; $3: id
|
2023-06-23 17:34:07 +00:00
|
|
|
userspace_pm_add_addr()
|
|
|
|
{
|
2023-11-28 23:18:48 +00:00
|
|
|
local evts=$evts_ns1
|
2023-06-23 17:34:07 +00:00
|
|
|
local tk
|
|
|
|
|
2023-11-28 23:18:48 +00:00
|
|
|
[ "$1" == "$ns2" ] && evts=$evts_ns2
|
|
|
|
tk=$(mptcp_lib_evts_get_info token "$evts")
|
|
|
|
|
|
|
|
ip netns exec $1 ./pm_nl_ctl ann $2 token $tk id $3
|
2023-06-23 17:34:07 +00:00
|
|
|
sleep 1
|
|
|
|
}
|
|
|
|
|
2023-11-28 23:18:48 +00:00
|
|
|
# $1: ns ; $2: id
|
|
|
|
userspace_pm_rm_addr()
|
2023-06-23 17:34:07 +00:00
|
|
|
{
|
2023-11-28 23:18:48 +00:00
|
|
|
local evts=$evts_ns1
|
|
|
|
local tk
|
|
|
|
local cnt
|
|
|
|
|
|
|
|
[ "$1" == "$ns2" ] && evts=$evts_ns2
|
|
|
|
tk=$(mptcp_lib_evts_get_info token "$evts")
|
|
|
|
|
|
|
|
cnt=$(rm_addr_count ${1})
|
|
|
|
ip netns exec $1 ./pm_nl_ctl rem token $tk id $2
|
|
|
|
wait_rm_addr $1 "${cnt}"
|
2023-06-23 17:34:07 +00:00
|
|
|
}
|
|
|
|
|
2023-11-28 23:18:48 +00:00
|
|
|
# $1: ns ; $2: addr ; $3: id
|
2023-06-23 17:34:07 +00:00
|
|
|
userspace_pm_add_sf()
|
|
|
|
{
|
2023-11-28 23:18:48 +00:00
|
|
|
local evts=$evts_ns1
|
2023-06-23 17:34:07 +00:00
|
|
|
local tk da dp
|
|
|
|
|
2023-11-28 23:18:48 +00:00
|
|
|
[ "$1" == "$ns2" ] && evts=$evts_ns2
|
|
|
|
tk=$(mptcp_lib_evts_get_info token "$evts")
|
|
|
|
da=$(mptcp_lib_evts_get_info daddr4 "$evts")
|
|
|
|
dp=$(mptcp_lib_evts_get_info dport "$evts")
|
|
|
|
|
|
|
|
ip netns exec $1 ./pm_nl_ctl csf lip $2 lid $3 \
|
2023-06-23 17:34:07 +00:00
|
|
|
rip $da rport $dp token $tk
|
|
|
|
sleep 1
|
|
|
|
}
|
|
|
|
|
2023-11-28 23:18:48 +00:00
|
|
|
# $1: ns ; $2: addr $3: event type
|
|
|
|
userspace_pm_rm_sf()
|
2023-06-23 17:34:07 +00:00
|
|
|
{
|
2023-11-28 23:18:48 +00:00
|
|
|
local evts=$evts_ns1
|
|
|
|
local t=${3:-1}
|
2024-02-23 16:14:12 +00:00
|
|
|
local ip
|
2023-06-23 17:34:07 +00:00
|
|
|
local tk da dp sp
|
2023-11-28 23:18:48 +00:00
|
|
|
local cnt
|
|
|
|
|
|
|
|
[ "$1" == "$ns2" ] && evts=$evts_ns2
|
2024-02-23 16:14:12 +00:00
|
|
|
[ -n "$(mptcp_lib_evts_get_info "saddr4" "$evts" $t)" ] && ip=4
|
|
|
|
[ -n "$(mptcp_lib_evts_get_info "saddr6" "$evts" $t)" ] && ip=6
|
2023-11-28 23:18:48 +00:00
|
|
|
tk=$(mptcp_lib_evts_get_info token "$evts")
|
2024-02-23 16:14:12 +00:00
|
|
|
da=$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t $2)
|
|
|
|
dp=$(mptcp_lib_evts_get_info dport "$evts" $t $2)
|
|
|
|
sp=$(mptcp_lib_evts_get_info sport "$evts" $t $2)
|
2023-11-28 23:18:48 +00:00
|
|
|
|
|
|
|
cnt=$(rm_sf_count ${1})
|
|
|
|
ip netns exec $1 ./pm_nl_ctl dsf lip $2 lport $sp \
|
2023-06-23 17:34:07 +00:00
|
|
|
rip $da rport $dp token $tk
|
2023-11-28 23:18:48 +00:00
|
|
|
wait_rm_sf $1 "${cnt}"
|
2023-06-23 17:34:07 +00:00
|
|
|
}
|
|
|
|
|
2024-03-01 18:18:34 +00:00
|
|
|
check_output()
|
|
|
|
{
|
|
|
|
local cmd="$1"
|
|
|
|
local expected="$2"
|
|
|
|
local msg="$3"
|
|
|
|
local rc=0
|
|
|
|
|
|
|
|
mptcp_lib_check_output "${err}" "${cmd}" "${expected}" || rc=${?}
|
|
|
|
if [ ${rc} -eq 2 ]; then
|
|
|
|
fail_test "fail to check output # error ${rc}"
|
|
|
|
elif [ ${rc} -eq 0 ]; then
|
|
|
|
print_ok
|
|
|
|
elif [ ${rc} -eq 1 ]; then
|
|
|
|
fail_test "fail to check output # different output"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# $1: ns
|
|
|
|
userspace_pm_dump()
|
|
|
|
{
|
|
|
|
local evts=$evts_ns1
|
|
|
|
local tk
|
|
|
|
|
|
|
|
[ "$1" == "$ns2" ] && evts=$evts_ns2
|
|
|
|
tk=$(mptcp_lib_evts_get_info token "$evts")
|
|
|
|
|
|
|
|
ip netns exec $1 ./pm_nl_ctl dump token $tk
|
|
|
|
}
|
|
|
|
|
2024-03-01 18:18:39 +00:00
|
|
|
# $1: ns ; $2: id
|
|
|
|
userspace_pm_get_addr()
|
|
|
|
{
|
|
|
|
local evts=$evts_ns1
|
|
|
|
local tk
|
|
|
|
|
|
|
|
[ "$1" == "$ns2" ] && evts=$evts_ns2
|
|
|
|
tk=$(mptcp_lib_evts_get_info token "$evts")
|
|
|
|
|
|
|
|
ip netns exec $1 ./pm_nl_ctl get $2 token $tk
|
|
|
|
}
|
|
|
|
|
2024-03-01 18:18:34 +00:00
|
|
|
userspace_pm_chk_dump_addr()
|
|
|
|
{
|
|
|
|
local ns="${1}"
|
|
|
|
local exp="${2}"
|
|
|
|
local check="${3}"
|
|
|
|
|
|
|
|
print_check "dump addrs ${check}"
|
|
|
|
|
|
|
|
if mptcp_lib_kallsyms_has "mptcp_userspace_pm_dump_addr$"; then
|
|
|
|
check_output "userspace_pm_dump ${ns}" "${exp}"
|
|
|
|
else
|
|
|
|
print_skip
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2024-03-01 18:18:39 +00:00
|
|
|
userspace_pm_chk_get_addr()
|
|
|
|
{
|
|
|
|
local ns="${1}"
|
|
|
|
local id="${2}"
|
|
|
|
local exp="${3}"
|
|
|
|
|
|
|
|
print_check "get id ${id} addr"
|
|
|
|
|
|
|
|
if mptcp_lib_kallsyms_has "mptcp_userspace_pm_get_addr$"; then
|
|
|
|
check_output "userspace_pm_get_addr ${ns} ${id}" "${exp}"
|
|
|
|
else
|
|
|
|
print_skip
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-04-27 22:50:02 +00:00
|
|
|
userspace_tests()
|
|
|
|
{
|
|
|
|
# userspace pm type prevents add_addr
|
2023-06-10 16:11:47 +00:00
|
|
|
if reset "userspace pm type prevents add_addr" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
2022-04-27 22:50:02 +00:00
|
|
|
set_userspace_pm $ns1
|
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
|
|
|
chk_join_nr 0 0 0
|
|
|
|
chk_add_nr 0 0
|
|
|
|
fi
|
|
|
|
|
2022-05-02 20:52:32 +00:00
|
|
|
# userspace pm type does not echo add_addr without daemon
|
2023-06-10 16:11:47 +00:00
|
|
|
if reset "userspace pm no echo w/o daemon" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
2022-05-02 20:52:32 +00:00
|
|
|
set_userspace_pm $ns2
|
|
|
|
pm_nl_set_limits $ns1 0 2
|
|
|
|
pm_nl_set_limits $ns2 0 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
|
|
|
chk_join_nr 0 0 0
|
|
|
|
chk_add_nr 1 0
|
|
|
|
fi
|
|
|
|
|
2022-04-27 22:50:02 +00:00
|
|
|
# userspace pm type rejects join
|
2023-06-10 16:11:47 +00:00
|
|
|
if reset "userspace pm type rejects join" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
2022-04-27 22:50:02 +00:00
|
|
|
set_userspace_pm $ns1
|
|
|
|
pm_nl_set_limits $ns1 1 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
|
|
|
chk_join_nr 1 1 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# userspace pm type does not send join
|
2023-06-10 16:11:47 +00:00
|
|
|
if reset "userspace pm type does not send join" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
2022-04-27 22:50:02 +00:00
|
|
|
set_userspace_pm $ns2
|
|
|
|
pm_nl_set_limits $ns1 1 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
|
|
|
chk_join_nr 0 0 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# userspace pm type prevents mp_prio
|
2023-06-10 16:11:47 +00:00
|
|
|
if reset "userspace pm type prevents mp_prio" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
2022-04-27 22:50:02 +00:00
|
|
|
set_userspace_pm $ns1
|
|
|
|
pm_nl_set_limits $ns1 1 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
sflags=backup speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-04-27 22:50:02 +00:00
|
|
|
chk_join_nr 1 1 0
|
|
|
|
chk_prio_nr 0 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# userspace pm type prevents rm_addr
|
2023-06-10 16:11:47 +00:00
|
|
|
if reset "userspace pm type prevents rm_addr" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
2022-04-27 22:50:02 +00:00
|
|
|
set_userspace_pm $ns1
|
|
|
|
set_userspace_pm $ns2
|
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
pm_nl_set_limits $ns2 0 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
addr_nr_ns2=-1 speed=slow \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1
|
2022-04-27 22:50:02 +00:00
|
|
|
chk_join_nr 0 0 0
|
|
|
|
chk_rm_nr 0 0
|
|
|
|
fi
|
2022-07-08 17:14:10 +00:00
|
|
|
|
|
|
|
# userspace pm add & remove address
|
2023-06-10 16:11:47 +00:00
|
|
|
if reset_with_events "userspace pm add & remove address" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
2022-07-08 17:14:10 +00:00
|
|
|
set_userspace_pm $ns1
|
2024-02-23 16:14:12 +00:00
|
|
|
pm_nl_set_limits $ns2 2 2
|
2023-10-25 23:37:02 +00:00
|
|
|
speed=5 \
|
2023-07-12 16:03:19 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1 &
|
2023-06-23 17:34:07 +00:00
|
|
|
local tests_pid=$!
|
|
|
|
wait_mpj $ns1
|
2023-11-28 23:18:48 +00:00
|
|
|
userspace_pm_add_addr $ns1 10.0.2.1 10
|
2024-02-23 16:14:12 +00:00
|
|
|
userspace_pm_add_addr $ns1 10.0.3.1 20
|
|
|
|
chk_join_nr 2 2 2
|
|
|
|
chk_add_nr 2 2
|
|
|
|
chk_mptcp_info subflows 2 subflows 2
|
|
|
|
chk_subflows_total 3 3
|
|
|
|
chk_mptcp_info add_addr_signal 2 add_addr_accepted 2
|
2024-03-01 18:18:34 +00:00
|
|
|
userspace_pm_chk_dump_addr "${ns1}" \
|
|
|
|
$'id 10 flags signal 10.0.2.1\nid 20 flags signal 10.0.3.1' \
|
|
|
|
"signal"
|
2024-03-01 18:18:39 +00:00
|
|
|
userspace_pm_chk_get_addr "${ns1}" "10" "id 10 flags signal 10.0.2.1"
|
|
|
|
userspace_pm_chk_get_addr "${ns1}" "20" "id 20 flags signal 10.0.3.1"
|
2023-11-28 23:18:48 +00:00
|
|
|
userspace_pm_rm_addr $ns1 10
|
|
|
|
userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED
|
2024-03-01 18:18:34 +00:00
|
|
|
userspace_pm_chk_dump_addr "${ns1}" \
|
|
|
|
"id 20 flags signal 10.0.3.1" "after rm_addr 10"
|
2024-02-23 16:14:12 +00:00
|
|
|
userspace_pm_rm_addr $ns1 20
|
|
|
|
userspace_pm_rm_sf $ns1 10.0.3.1 $SUB_ESTABLISHED
|
2024-03-01 18:18:34 +00:00
|
|
|
userspace_pm_chk_dump_addr "${ns1}" "" "after rm_addr 20"
|
2024-02-23 16:14:12 +00:00
|
|
|
chk_rm_nr 2 2 invert
|
2023-06-23 17:34:08 +00:00
|
|
|
chk_mptcp_info subflows 0 subflows 0
|
2023-11-28 23:18:47 +00:00
|
|
|
chk_subflows_total 1 1
|
2022-11-30 14:06:32 +00:00
|
|
|
kill_events_pids
|
2024-01-31 21:49:53 +00:00
|
|
|
mptcp_lib_kill_wait $tests_pid
|
2022-07-08 17:14:10 +00:00
|
|
|
fi
|
2022-07-08 17:14:11 +00:00
|
|
|
|
|
|
|
# userspace pm create destroy subflow
|
2023-06-10 16:11:47 +00:00
|
|
|
if reset_with_events "userspace pm create destroy subflow" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
2022-07-08 17:14:11 +00:00
|
|
|
set_userspace_pm $ns2
|
|
|
|
pm_nl_set_limits $ns1 0 1
|
2023-10-25 23:37:02 +00:00
|
|
|
speed=5 \
|
2023-07-12 16:03:19 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1 &
|
2023-06-23 17:34:07 +00:00
|
|
|
local tests_pid=$!
|
|
|
|
wait_mpj $ns2
|
2023-11-28 23:18:48 +00:00
|
|
|
userspace_pm_add_sf $ns2 10.0.3.2 20
|
2022-07-08 17:14:11 +00:00
|
|
|
chk_join_nr 1 1 1
|
2023-06-23 17:34:08 +00:00
|
|
|
chk_mptcp_info subflows 1 subflows 1
|
2023-11-28 23:18:47 +00:00
|
|
|
chk_subflows_total 2 2
|
2024-03-01 18:18:34 +00:00
|
|
|
userspace_pm_chk_dump_addr "${ns2}" \
|
|
|
|
"id 20 flags subflow 10.0.3.2" \
|
|
|
|
"subflow"
|
2024-03-01 18:18:39 +00:00
|
|
|
userspace_pm_chk_get_addr "${ns2}" "20" "id 20 flags subflow 10.0.3.2"
|
2023-11-28 23:18:48 +00:00
|
|
|
userspace_pm_rm_addr $ns2 20
|
|
|
|
userspace_pm_rm_sf $ns2 10.0.3.2 $SUB_ESTABLISHED
|
2024-03-01 18:18:34 +00:00
|
|
|
userspace_pm_chk_dump_addr "${ns2}" \
|
|
|
|
"" \
|
|
|
|
"after rm_addr 20"
|
2023-06-05 03:25:20 +00:00
|
|
|
chk_rm_nr 1 1
|
2023-06-23 17:34:08 +00:00
|
|
|
chk_mptcp_info subflows 0 subflows 0
|
2023-11-28 23:18:47 +00:00
|
|
|
chk_subflows_total 1 1
|
2022-11-30 14:06:32 +00:00
|
|
|
kill_events_pids
|
2024-01-31 21:49:53 +00:00
|
|
|
mptcp_lib_kill_wait $tests_pid
|
2022-07-08 17:14:11 +00:00
|
|
|
fi
|
2023-11-28 23:18:49 +00:00
|
|
|
|
|
|
|
# userspace pm create id 0 subflow
|
|
|
|
if reset_with_events "userspace pm create id 0 subflow" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
|
|
|
set_userspace_pm $ns2
|
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
speed=5 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1 &
|
|
|
|
local tests_pid=$!
|
|
|
|
wait_mpj $ns2
|
|
|
|
chk_mptcp_info subflows 0 subflows 0
|
|
|
|
chk_subflows_total 1 1
|
|
|
|
userspace_pm_add_sf $ns2 10.0.3.2 0
|
2024-03-01 18:18:34 +00:00
|
|
|
userspace_pm_chk_dump_addr "${ns2}" \
|
|
|
|
"id 0 flags subflow 10.0.3.2" "id 0 subflow"
|
2023-11-28 23:18:49 +00:00
|
|
|
chk_join_nr 1 1 1
|
|
|
|
chk_mptcp_info subflows 1 subflows 1
|
|
|
|
chk_subflows_total 2 2
|
|
|
|
kill_events_pids
|
2024-01-31 21:49:54 +00:00
|
|
|
mptcp_lib_kill_wait $tests_pid
|
2023-11-28 23:18:49 +00:00
|
|
|
fi
|
2023-11-28 23:18:51 +00:00
|
|
|
|
|
|
|
# userspace pm remove initial subflow
|
|
|
|
if reset_with_events "userspace pm remove initial subflow" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
|
|
|
set_userspace_pm $ns2
|
|
|
|
pm_nl_set_limits $ns1 0 1
|
|
|
|
speed=5 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1 &
|
|
|
|
local tests_pid=$!
|
|
|
|
wait_mpj $ns2
|
|
|
|
userspace_pm_add_sf $ns2 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 $ns2 10.0.1.2
|
|
|
|
# we don't look at the counter linked to the RM_ADDR but
|
|
|
|
# to the one linked to the subflows that have been removed
|
|
|
|
chk_rm_nr 0 1
|
|
|
|
chk_rst_nr 0 0 invert
|
|
|
|
chk_mptcp_info subflows 1 subflows 1
|
|
|
|
chk_subflows_total 1 1
|
|
|
|
kill_events_pids
|
2024-01-31 21:49:54 +00:00
|
|
|
mptcp_lib_kill_wait $tests_pid
|
2023-11-28 23:18:51 +00:00
|
|
|
fi
|
2023-11-28 23:18:52 +00:00
|
|
|
|
|
|
|
# userspace pm send RM_ADDR for ID 0
|
|
|
|
if reset_with_events "userspace pm send RM_ADDR for ID 0" &&
|
|
|
|
continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
|
|
|
|
set_userspace_pm $ns1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
speed=5 \
|
|
|
|
run_tests $ns1 $ns2 10.0.1.1 &
|
|
|
|
local tests_pid=$!
|
|
|
|
wait_mpj $ns1
|
|
|
|
userspace_pm_add_addr $ns1 10.0.2.1 10
|
|
|
|
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_addr $ns1 0
|
|
|
|
# we don't look at the counter linked to the subflows that
|
|
|
|
# have been removed but to the one linked to the RM_ADDR
|
|
|
|
chk_rm_nr 1 0 invert
|
|
|
|
chk_rst_nr 0 0 invert
|
|
|
|
chk_mptcp_info subflows 1 subflows 1
|
|
|
|
chk_subflows_total 1 1
|
|
|
|
kill_events_pids
|
2024-01-31 21:49:54 +00:00
|
|
|
mptcp_lib_kill_wait $tests_pid
|
2023-11-28 23:18:52 +00:00
|
|
|
fi
|
2022-04-27 22:50:02 +00:00
|
|
|
}
|
|
|
|
|
2022-05-12 23:26:42 +00:00
|
|
|
endpoint_tests()
|
2022-03-07 20:44:38 +00:00
|
|
|
{
|
2023-06-10 16:11:44 +00:00
|
|
|
# subflow_rebuild_header is needed to support the implicit flag
|
2022-03-07 20:44:38 +00:00
|
|
|
# userspace pm type prevents add_addr
|
2023-06-10 16:11:44 +00:00
|
|
|
if reset "implicit EP" &&
|
|
|
|
mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then
|
2022-03-09 19:16:30 +00:00
|
|
|
pm_nl_set_limits $ns1 2 2
|
|
|
|
pm_nl_set_limits $ns2 2 2
|
|
|
|
pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
|
2023-07-12 16:03:19 +00:00
|
|
|
speed=slow \
|
2024-01-31 21:49:54 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1 &
|
|
|
|
local tests_pid=$!
|
2022-03-09 19:16:30 +00:00
|
|
|
|
|
|
|
wait_mpj $ns1
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
pm_nl_check_endpoint "creation" \
|
2022-03-09 19:16:30 +00:00
|
|
|
$ns2 10.0.2.2 id 1 flags implicit
|
2023-06-23 17:34:08 +00:00
|
|
|
chk_mptcp_info subflows 1 subflows 1
|
|
|
|
chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
|
2022-03-09 19:16:30 +00:00
|
|
|
|
2023-07-30 08:05:17 +00:00
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 id 33 2>/dev/null
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
pm_nl_check_endpoint "ID change is prevented" \
|
2022-03-09 19:16:30 +00:00
|
|
|
$ns2 10.0.2.2 id 1 flags implicit
|
|
|
|
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 flags signal
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
pm_nl_check_endpoint "modif is allowed" \
|
2022-03-09 19:16:30 +00:00
|
|
|
$ns2 10.0.2.2 id 1 flags signal
|
2024-01-31 21:49:54 +00:00
|
|
|
mptcp_lib_kill_wait $tests_pid
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
2022-05-12 23:26:42 +00:00
|
|
|
|
2023-06-10 16:11:44 +00:00
|
|
|
if reset "delete and re-add" &&
|
|
|
|
mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then
|
2022-05-12 23:26:42 +00:00
|
|
|
pm_nl_set_limits $ns1 1 1
|
|
|
|
pm_nl_set_limits $ns2 1 1
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 id 2 dev ns2eth2 flags subflow
|
2023-07-12 16:03:19 +00:00
|
|
|
test_linkfail=4 speed=20 \
|
2024-01-31 21:49:54 +00:00
|
|
|
run_tests $ns1 $ns2 10.0.1.1 &
|
|
|
|
local tests_pid=$!
|
2022-05-12 23:26:42 +00:00
|
|
|
|
|
|
|
wait_mpj $ns2
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
chk_subflow_nr "before delete" 2
|
2023-06-23 17:34:08 +00:00
|
|
|
chk_mptcp_info subflows 1 subflows 1
|
2023-03-27 10:22:24 +00:00
|
|
|
|
2022-05-12 23:26:42 +00:00
|
|
|
pm_nl_del_endpoint $ns2 2 10.0.2.2
|
|
|
|
sleep 0.5
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
chk_subflow_nr "after delete" 1
|
2023-06-23 17:34:08 +00:00
|
|
|
chk_mptcp_info subflows 0 subflows 0
|
2022-05-12 23:26:42 +00:00
|
|
|
|
|
|
|
pm_nl_add_endpoint $ns2 10.0.2.2 dev ns2eth2 flags subflow
|
|
|
|
wait_mpj $ns2
|
selftests: mptcp: join: rework detailed report
This patch modifies how the detailed results are printed, mainly to
improve what is displayed in case of issue:
- Now the test name (title) is printed earlier, when starting the test
if it is not intentionally skipped: by doing that, errors linked to
a test will be printed after having written the test name and then
avoid confusions.
- Due to the previous item, it is required to add a new line after
having printed the test name because in case of error with a command,
it is better not to have the output in the middle of the screen.
- Each check is printed on a dedicated line with aligned status (ok,
skip, fail): it is easier to spot which one has failed, simpler to
manage in the code not having to deal with alignment case by case and
helpers can be used to uniform what is done. These helpers can also be
useful later to do more actions depending on the results or change in
one place what is printed.
- Info messages have been reduced and aligned as well. And info messages
about the creation of the default test files of 1 KB are no longer
printed.
Example:
001 no JOIN
syn [ ok ]
synack [ ok ]
ack [ ok ]
Or with a skip and a failure:
001 no JOIN
syn [ ok ]
synack [fail] got 42 JOIN[s] synack expected 0
Server ns stats
(...)
Client ns stats
(...)
ack [skip]
Or with info:
104 Infinite map
Test file (size 128 KB) for client
Test file (size 128 KB) for server
file received by server has inverted byte at 169
5 corrupted pkts
syn [ ok ]
synack [ ok ]
While at it, verify_listener_events() now also print more info in case
of failure and in pm_nl_check_endpoint(), the test is marked as failed
instead of skipped if no ID has been given (internal selftest issue).
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Link: https://lore.kernel.org/r/20230730-upstream-net-next-20230728-mptcp-selftests-misc-v1-1-7e9cc530a9cd@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-07-30 08:05:15 +00:00
|
|
|
chk_subflow_nr "after re-add" 2
|
2023-06-23 17:34:08 +00:00
|
|
|
chk_mptcp_info subflows 1 subflows 1
|
2024-01-31 21:49:54 +00:00
|
|
|
mptcp_lib_kill_wait $tests_pid
|
2022-05-12 23:26:42 +00:00
|
|
|
fi
|
2022-03-07 20:44:38 +00:00
|
|
|
}
|
|
|
|
|
2022-02-18 03:03:07 +00:00
|
|
|
# [$1: error message]
|
2021-02-04 23:23:29 +00:00
|
|
|
usage()
|
|
|
|
{
|
2022-02-18 03:03:07 +00:00
|
|
|
if [ -n "${1}" ]; then
|
|
|
|
echo "${1}"
|
|
|
|
ret=1
|
|
|
|
fi
|
|
|
|
|
2021-02-04 23:23:29 +00:00
|
|
|
echo "mptcp_join usage:"
|
2022-03-09 19:16:28 +00:00
|
|
|
|
|
|
|
local key
|
|
|
|
for key in "${!all_tests[@]}"; do
|
|
|
|
echo " -${key} ${all_tests[${key}]}"
|
|
|
|
done
|
|
|
|
|
2021-03-13 00:43:52 +00:00
|
|
|
echo " -c capture pcap files"
|
2021-06-17 23:46:22 +00:00
|
|
|
echo " -C enable data checksum"
|
2022-02-05 00:03:37 +00:00
|
|
|
echo " -i use ip mptcp"
|
2021-02-04 23:23:29 +00:00
|
|
|
echo " -h help"
|
2022-02-18 03:03:07 +00:00
|
|
|
|
2022-03-09 19:16:31 +00:00
|
|
|
echo "[test ids|names]"
|
2022-03-09 19:16:30 +00:00
|
|
|
|
2022-02-18 03:03:07 +00:00
|
|
|
exit ${ret}
|
2021-02-04 23:23:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2022-03-09 19:16:28 +00:00
|
|
|
# Use a "simple" array to force an specific order we cannot have with an associative one
|
|
|
|
all_tests_sorted=(
|
|
|
|
f@subflows_tests
|
|
|
|
e@subflows_error_tests
|
|
|
|
s@signal_address_tests
|
|
|
|
l@link_failure_tests
|
|
|
|
t@add_addr_timeout_tests
|
|
|
|
r@remove_tests
|
|
|
|
a@add_tests
|
|
|
|
6@ipv6_tests
|
|
|
|
4@v4mapped_tests
|
2023-01-25 10:47:23 +00:00
|
|
|
M@mixed_tests
|
2022-03-09 19:16:28 +00:00
|
|
|
b@backup_tests
|
|
|
|
p@add_addr_ports_tests
|
|
|
|
k@syncookies_tests
|
|
|
|
S@checksum_tests
|
|
|
|
d@deny_join_id0_tests
|
|
|
|
m@fullmesh_tests
|
|
|
|
z@fastclose_tests
|
2022-04-26 21:57:11 +00:00
|
|
|
F@fail_tests
|
2022-04-27 22:50:02 +00:00
|
|
|
u@userspace_tests
|
2022-05-12 23:26:42 +00:00
|
|
|
I@endpoint_tests
|
2022-03-09 19:16:28 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
all_tests_args=""
|
|
|
|
all_tests_names=()
|
|
|
|
for subtests in "${all_tests_sorted[@]}"; do
|
|
|
|
key="${subtests%@*}"
|
|
|
|
value="${subtests#*@}"
|
|
|
|
|
|
|
|
all_tests_args+="${key}"
|
|
|
|
all_tests_names+=("${value}")
|
|
|
|
all_tests[${key}]="${value}"
|
|
|
|
done
|
|
|
|
|
2022-03-07 20:44:33 +00:00
|
|
|
tests=()
|
2022-03-09 19:16:28 +00:00
|
|
|
while getopts "${all_tests_args}cCih" opt; do
|
2021-02-04 23:23:29 +00:00
|
|
|
case $opt in
|
2022-03-09 19:16:28 +00:00
|
|
|
["${all_tests_args}"])
|
|
|
|
tests+=("${all_tests[${opt}]}")
|
2022-03-07 20:44:38 +00:00
|
|
|
;;
|
2021-03-13 00:43:52 +00:00
|
|
|
c)
|
2024-02-23 20:17:59 +00:00
|
|
|
capture=true
|
2021-03-13 00:43:52 +00:00
|
|
|
;;
|
2021-06-17 23:46:22 +00:00
|
|
|
C)
|
2024-02-23 20:17:59 +00:00
|
|
|
checksum=true
|
2021-06-17 23:46:22 +00:00
|
|
|
;;
|
2022-02-05 00:03:37 +00:00
|
|
|
i)
|
2022-03-07 20:44:33 +00:00
|
|
|
ip_mptcp=1
|
2022-02-05 00:03:37 +00:00
|
|
|
;;
|
2022-02-18 03:03:07 +00:00
|
|
|
h)
|
2021-02-04 23:23:29 +00:00
|
|
|
usage
|
|
|
|
;;
|
2022-02-18 03:03:07 +00:00
|
|
|
*)
|
|
|
|
usage "Unknown option: -${opt}"
|
|
|
|
;;
|
2021-02-04 23:23:29 +00:00
|
|
|
esac
|
|
|
|
done
|
2020-07-30 19:25:58 +00:00
|
|
|
|
2022-03-09 19:16:30 +00:00
|
|
|
shift $((OPTIND - 1))
|
|
|
|
|
|
|
|
for arg in "${@}"; do
|
|
|
|
if [[ "${arg}" =~ ^[0-9]+$ ]]; then
|
2022-03-09 19:16:31 +00:00
|
|
|
only_tests_ids+=("${arg}")
|
2022-03-09 19:16:30 +00:00
|
|
|
else
|
2022-03-09 19:16:31 +00:00
|
|
|
only_tests_names+=("${arg}")
|
2022-03-09 19:16:30 +00:00
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2022-03-07 20:44:33 +00:00
|
|
|
if [ ${#tests[@]} -eq 0 ]; then
|
2022-03-09 19:16:28 +00:00
|
|
|
tests=("${all_tests_names[@]}")
|
2022-03-07 20:44:33 +00:00
|
|
|
fi
|
|
|
|
|
2022-03-09 19:16:28 +00:00
|
|
|
for subtests in "${tests[@]}"; do
|
|
|
|
"${subtests}"
|
|
|
|
done
|
|
|
|
|
2022-03-09 19:16:32 +00:00
|
|
|
if [ ${ret} -ne 0 ]; then
|
|
|
|
echo
|
|
|
|
echo "${#failed_tests[@]} failure(s) has(ve) been detected:"
|
|
|
|
for i in $(get_failed_tests_ids); do
|
|
|
|
echo -e "\t- ${i}: ${failed_tests[${i}]}"
|
|
|
|
done
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
2023-07-17 13:21:29 +00:00
|
|
|
append_prev_results
|
|
|
|
mptcp_lib_result_print_all_tap
|
|
|
|
|
2020-03-27 21:48:53 +00:00
|
|
|
exit $ret
|