selftests: mptcp: drop test_linkfail parameter
authorGeliang Tang <geliang.tang@suse.com>
Fri, 23 Jun 2023 17:34:10 +0000 (10:34 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 24 Jun 2023 22:37:57 +0000 (15:37 -0700)
run_tests() accepts too many optional parameters. Before this modification,
it was required to set all of then when only the last one had to be
changed. That's not clear to see all these 0 and it makes the maintenance
harder:

      run_tests $ns1 $ns2 10.0.1.1 1 2 3 slow

Instead, the parameter can be set as an env var with a limited scope:

      foo=1 bar=2 next=3 \
            run_tests $ns1 $ns2 10.0.1.1 slow

This patch switches to key/value "test_linkfail=*" instead of positional
parameter test_linkfail of do_transfer() and run_tests().

Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <martineau@kernel.org>
Link: https://lore.kernel.org/r/20230623-send-net-next-20230623-v1-4-a883213c8ba9@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_join.sh

index 000c561..bc6a26d 100755 (executable)
@@ -50,6 +50,7 @@ TEST_NAME=""
 nr_blank=40
 
 export FAILING_LINKS=""
+export test_linkfail=0
 
 # generated using "nfbpf_compile '(ip && (ip[54] & 0xf0) == 0x30) ||
 #                                (ip6 && (ip6[74] & 0xf0) == 0x30)'"
@@ -825,11 +826,10 @@ do_transfer()
        local cl_proto="$3"
        local srv_proto="$4"
        local connect_addr="$5"
-       local test_link_fail="$6"
-       local addr_nr_ns1="$7"
-       local addr_nr_ns2="$8"
-       local speed="$9"
-       local sflags="${10}"
+       local addr_nr_ns1="$6"
+       local addr_nr_ns2="$7"
+       local speed="$8"
+       local sflags="${9}"
 
        local port=$((10000 + TEST_COUNT - 1))
        local cappid
@@ -874,21 +874,21 @@ do_transfer()
        local extra_srv_args=""
        local trunc_size=""
        if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then
-               if [ ${test_link_fail} -le 1 ]; then
-                       echo "fastclose tests need test_link_fail argument"
+               if [ ${test_linkfail} -le 1 ]; then
+                       echo "fastclose tests need test_linkfail argument"
                        fail_test
                        return 1
                fi
 
                # disconnect
-               trunc_size=${test_link_fail}
+               trunc_size=${test_linkfail}
                local side=${addr_nr_ns2:10}
 
                if [ ${side} = "client" ]; then
-                       extra_cl_args="-f ${test_link_fail}"
+                       extra_cl_args="-f ${test_linkfail}"
                        extra_srv_args="-f -1"
                elif [ ${side} = "server" ]; then
-                       extra_srv_args="-f ${test_link_fail}"
+                       extra_srv_args="-f ${test_linkfail}"
                        extra_cl_args="-f -1"
                else
                        echo "wrong/unknown fastclose spec ${side}"
@@ -902,7 +902,7 @@ do_transfer()
        fi
 
        extra_srv_args="$extra_args $extra_srv_args"
-       if [ "$test_link_fail" -gt 1 ];then
+       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} \
@@ -918,12 +918,12 @@ do_transfer()
        wait_local_port_listen "${listener_ns}" "${port}"
 
        extra_cl_args="$extra_args $extra_cl_args"
-       if [ "$test_link_fail" -eq 0 ];then
+       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_link_fail" -eq 1 ] || [ "$test_link_fail" -eq 2 ];then
+       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} \
@@ -1107,13 +1107,13 @@ do_transfer()
                return 1
        fi
 
-       if [ "$test_link_fail" -gt 1 ];then
+       if [ "$test_linkfail" -gt 1 ];then
                check_transfer $sinfail $cout "file received by client" $trunc_size
        else
                check_transfer $sin $cout "file received by client" $trunc_size
        fi
        retc=$?
-       if [ "$test_link_fail" -eq 0 ];then
+       if [ "$test_linkfail" -eq 0 ];then
                check_transfer $cin $sout "file received by server" $trunc_size
        else
                check_transfer $cinsent $sout "file received by server" $trunc_size
@@ -1146,11 +1146,10 @@ run_tests()
        local listener_ns="$1"
        local connector_ns="$2"
        local connect_addr="$3"
-       local test_linkfail="${4:-0}"
-       local addr_nr_ns1="${5:-0}"
-       local addr_nr_ns2="${6:-0}"
-       local speed="${7:-fast}"
-       local sflags="${8:-""}"
+       local addr_nr_ns1="${4:-0}"
+       local addr_nr_ns2="${5:-0}"
+       local speed="${6:-fast}"
+       local sflags="${7:-""}"
 
        local size
 
@@ -1195,7 +1194,7 @@ run_tests()
        fi
 
        do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} \
-               ${test_linkfail} ${addr_nr_ns1} ${addr_nr_ns2} ${speed} ${sflags}
+               ${addr_nr_ns1} ${addr_nr_ns2} ${speed} ${sflags}
 }
 
 dump_stats()
@@ -1984,7 +1983,7 @@ subflows_error_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
                chk_join_nr 0 0 0
        fi
 
@@ -1995,7 +1994,7 @@ subflows_error_tests()
                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 0 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
                chk_join_nr 1 1 1
        fi
 
@@ -2006,7 +2005,7 @@ subflows_error_tests()
                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 0 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
                chk_join_nr 1 1 1
        fi
 
@@ -2018,7 +2017,7 @@ subflows_error_tests()
                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 0 0 slow &
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow &
 
                # mpj subflow will be in TW after the reset
                wait_attempt_fail $ns2
@@ -2117,7 +2116,7 @@ signal_address_tests()
 
                # the peer could possibly miss some addr notification, allow retransmission
                ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
 
                # It is not directly linked to the commit introducing this
                # symbol but for the parent one which is linked anyway.
@@ -2149,7 +2148,8 @@ link_failure_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 1
+               test_linkfail=1 \
+                       run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 3 3 3
                chk_add_nr 1 1
                chk_stale_nr $ns2 1 5 1
@@ -2164,7 +2164,8 @@ link_failure_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 2
+               test_linkfail=2 \
+                       run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 3 3 3
                chk_add_nr 1 1
                chk_stale_nr $ns2 1 -1 1
@@ -2178,8 +2179,8 @@ link_failure_tests()
                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
-               FAILING_LINKS="1" \
-                       run_tests $ns1 $ns2 10.0.1.1 1
+               FAILING_LINKS="1" test_linkfail=1 \
+                       run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 2 2 2
                chk_add_nr 1 1
                chk_link_usage $ns2 ns2eth3 $cinsent 0
@@ -2193,8 +2194,8 @@ link_failure_tests()
                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
-               FAILING_LINKS="1 2" \
-                       run_tests $ns1 $ns2 10.0.1.1 1
+               FAILING_LINKS="1 2" test_linkfail=1 \
+                       run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 2 2 2
                chk_add_nr 1 1
                chk_stale_nr $ns2 2 4 2
@@ -2209,8 +2210,8 @@ link_failure_tests()
                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
-               FAILING_LINKS="1 2" \
-                       run_tests $ns1 $ns2 10.0.1.1 2
+               FAILING_LINKS="1 2" test_linkfail=2 \
+                       run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 2 2 2
                chk_add_nr 1 1
                chk_stale_nr $ns2 1 -1 2
@@ -2225,7 +2226,7 @@ add_addr_timeout_tests()
                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 0 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
                chk_join_nr 1 1 1
                chk_add_tx_nr 4 4
                chk_add_nr 4 0
@@ -2236,7 +2237,7 @@ add_addr_timeout_tests()
                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
-               run_tests $ns1 $ns2 dead:beef:1::1 0 0 slow
+               run_tests $ns1 $ns2 dead:beef:1::1 0 0 slow
                chk_join_nr 1 1 1
                chk_add_nr 4 0
        fi
@@ -2247,7 +2248,7 @@ add_addr_timeout_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 0 speed_10
+               run_tests $ns1 $ns2 10.0.1.1 0 0 speed_10
                chk_join_nr 2 2 2
                chk_add_nr 8 0
        fi
@@ -2258,7 +2259,7 @@ add_addr_timeout_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 0 speed_10
+               run_tests $ns1 $ns2 10.0.1.1 0 0 speed_10
                chk_join_nr 1 1 1
                chk_add_nr 8 0
        fi
@@ -2271,7 +2272,7 @@ remove_tests()
                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 0 -1 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 -1 slow
                chk_join_nr 1 1 1
                chk_rm_tx_nr 1
                chk_rm_nr 1 1
@@ -2283,7 +2284,7 @@ remove_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 -2 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 -2 slow
                chk_join_nr 2 2 2
                chk_rm_nr 2 2
        fi
@@ -2293,7 +2294,7 @@ remove_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 -1 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 -1 0 slow
                chk_join_nr 1 1 1
                chk_add_nr 1 1
                chk_rm_nr 1 1 invert
@@ -2305,7 +2306,7 @@ remove_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 -1 -1 slow
+               run_tests $ns1 $ns2 10.0.1.1 -1 -1 slow
                chk_join_nr 2 2 2
                chk_add_nr 1 1
                chk_rm_nr 1 1
@@ -2318,7 +2319,7 @@ remove_tests()
                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 -1 -2 speed_10
+               run_tests $ns1 $ns2 10.0.1.1 -1 -2 speed_10
                chk_join_nr 3 3 3
                chk_add_nr 1 1
                chk_rm_nr 2 2
@@ -2331,7 +2332,7 @@ remove_tests()
                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 -3 0 speed_10
+               run_tests $ns1 $ns2 10.0.1.1 -3 0 speed_10
                chk_join_nr 3 3 3
                chk_add_nr 3 3
                chk_rm_nr 3 3 invert
@@ -2344,7 +2345,7 @@ remove_tests()
                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 -3 0 speed_10
+               run_tests $ns1 $ns2 10.0.1.1 -3 0 speed_10
                chk_join_nr 1 1 1
                chk_add_nr 3 3
                chk_rm_nr 3 1 invert
@@ -2357,7 +2358,7 @@ remove_tests()
                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 -8 -8 slow
+               run_tests $ns1 $ns2 10.0.1.1 -8 -8 slow
                chk_join_nr 3 3 3
                chk_add_nr 1 1
                chk_rm_nr 1 3 invert simult
@@ -2370,7 +2371,7 @@ remove_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 -8 -8 slow
+               run_tests $ns1 $ns2 10.0.1.1 -8 -8 slow
                chk_join_nr 3 3 3
 
                if mptcp_lib_kversion_ge 5.18; then
@@ -2388,7 +2389,7 @@ remove_tests()
                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 -8 -8 slow
+               run_tests $ns1 $ns2 10.0.1.1 -8 -8 slow
                chk_join_nr 3 3 3
                chk_add_nr 3 3
                chk_rm_nr 3 3 invert simult
@@ -2401,7 +2402,7 @@ remove_tests()
                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 -8 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 -8 0 slow
                chk_join_nr 1 1 1
                chk_add_nr 3 3
                chk_rm_nr 3 1 invert
@@ -2412,7 +2413,7 @@ remove_tests()
                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 0 -9 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 -9 slow
                chk_join_nr 1 1 1
                chk_rm_nr 1 1
        fi
@@ -2422,7 +2423,7 @@ remove_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 -9 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 -9 0 slow
                chk_join_nr 1 1 1
                chk_add_nr 1 1
                chk_rm_nr 1 1 invert
@@ -2435,7 +2436,7 @@ add_tests()
        if reset "add single subflow"; then
                pm_nl_set_limits $ns1 0 1
                pm_nl_set_limits $ns2 0 1
-               run_tests $ns1 $ns2 10.0.1.1 0 1 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 1 slow
                chk_join_nr 1 1 1
        fi
 
@@ -2443,7 +2444,7 @@ add_tests()
        if reset "add signal address"; then
                pm_nl_set_limits $ns1 0 1
                pm_nl_set_limits $ns2 1 1
-               run_tests $ns1 $ns2 10.0.1.1 1 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 1 0 slow
                chk_join_nr 1 1 1
                chk_add_nr 1 1
        fi
@@ -2452,7 +2453,7 @@ add_tests()
        if reset "add multiple subflows"; then
                pm_nl_set_limits $ns1 0 2
                pm_nl_set_limits $ns2 0 2
-               run_tests $ns1 $ns2 10.0.1.1 0 2 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 2 slow
                chk_join_nr 2 2 2
        fi
 
@@ -2460,7 +2461,7 @@ add_tests()
        if reset "add multiple subflows IPv6"; then
                pm_nl_set_limits $ns1 0 2
                pm_nl_set_limits $ns2 0 2
-               run_tests $ns1 $ns2 dead:beef:1::1 0 2 slow
+               run_tests $ns1 $ns2 dead:beef:1::1 0 2 slow
                chk_join_nr 2 2 2
        fi
 
@@ -2468,7 +2469,7 @@ add_tests()
        if reset "add multiple addresses IPv6"; then
                pm_nl_set_limits $ns1 0 2
                pm_nl_set_limits $ns2 2 2
-               run_tests $ns1 $ns2 dead:beef:1::1 2 0 slow
+               run_tests $ns1 $ns2 dead:beef:1::1 2 0 slow
                chk_join_nr 2 2 2
                chk_add_nr 2 2
        fi
@@ -2481,14 +2482,14 @@ ipv6_tests()
                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
-               run_tests $ns1 $ns2 dead:beef:1::1 0 0 slow
+               run_tests $ns1 $ns2 dead:beef:1::1 0 0 slow
                chk_join_nr 1 1 1
        fi
 
        # add_address, unused IPv6
        if reset "unused signal address IPv6"; then
                pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal
-               run_tests $ns1 $ns2 dead:beef:1::1 0 0 slow
+               run_tests $ns1 $ns2 dead:beef:1::1 0 0 slow
                chk_join_nr 0 0 0
                chk_add_nr 1 1
        fi
@@ -2498,7 +2499,7 @@ ipv6_tests()
                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
-               run_tests $ns1 $ns2 dead:beef:1::1 0 0 slow
+               run_tests $ns1 $ns2 dead:beef:1::1 0 0 slow
                chk_join_nr 1 1 1
                chk_add_nr 1 1
        fi
@@ -2508,7 +2509,7 @@ ipv6_tests()
                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
-               run_tests $ns1 $ns2 dead:beef:1::1 -1 0 slow
+               run_tests $ns1 $ns2 dead:beef:1::1 -1 0 slow
                chk_join_nr 1 1 1
                chk_add_nr 1 1
                chk_rm_nr 1 1 invert
@@ -2520,7 +2521,7 @@ ipv6_tests()
                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
-               run_tests $ns1 $ns2 dead:beef:1::1 -1 -1 slow
+               run_tests $ns1 $ns2 dead:beef:1::1 -1 -1 slow
                chk_join_nr 2 2 2
                chk_add_nr 1 1
                chk_rm_nr 1 1
@@ -2621,7 +2622,7 @@ mixed_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
                chk_join_nr 0 0 0
        fi
 
@@ -2631,7 +2632,7 @@ mixed_tests()
                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
-               run_tests $ns1 $ns2 dead:beef:2::1 0 0 slow
+               run_tests $ns1 $ns2 dead:beef:2::1 0 0 slow
                chk_join_nr 1 1 1
        fi
 
@@ -2642,7 +2643,7 @@ mixed_tests()
                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
-               run_tests $ns1 $ns2 dead:beef:2::1 0 0 slow
+               run_tests $ns1 $ns2 dead:beef:2::1 0 0 slow
                chk_join_nr 1 1 1
        fi
 
@@ -2654,7 +2655,7 @@ mixed_tests()
                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
-               run_tests $ns1 $ns2 dead:beef:1::1 0 fullmesh_1 slow
+               run_tests $ns1 $ns2 dead:beef:1::1 0 fullmesh_1 slow
                chk_join_nr 4 4 4
        fi
 }
@@ -2667,7 +2668,7 @@ backup_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow nobackup
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow nobackup
                chk_join_nr 1 1 1
                chk_prio_nr 0 1
        fi
@@ -2678,7 +2679,7 @@ backup_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow backup
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow backup
                chk_join_nr 1 1 1
                chk_add_nr 1 1
                chk_prio_nr 1 1
@@ -2690,7 +2691,7 @@ backup_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow backup
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow backup
                chk_join_nr 1 1 1
                chk_add_nr 1 1
                chk_prio_nr 1 1
@@ -2699,7 +2700,7 @@ backup_tests()
        if reset "mpc backup" &&
           continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; then
                pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
                chk_join_nr 0 0 0
                chk_prio_nr 0 1
        fi
@@ -2708,7 +2709,7 @@ backup_tests()
           continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; then
                pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow,backup
                pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow
                chk_join_nr 0 0 0
                chk_prio_nr 1 1
        fi
@@ -2716,7 +2717,7 @@ backup_tests()
        if reset "mpc switch to backup" &&
           continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; then
                pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow backup
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow backup
                chk_join_nr 0 0 0
                chk_prio_nr 0 1
        fi
@@ -2725,7 +2726,7 @@ backup_tests()
           continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; then
                pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow
                pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow backup
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow backup
                chk_join_nr 0 0 0
                chk_prio_nr 1 1
        fi
@@ -2814,7 +2815,7 @@ add_addr_ports_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 -1 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 -1 0 slow
                chk_join_nr 1 1 1
                chk_add_nr 1 1 1
                chk_rm_nr 1 1 invert
@@ -2830,7 +2831,7 @@ add_addr_ports_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 -1 -1 slow
+               run_tests $ns1 $ns2 10.0.1.1 -1 -1 slow
                chk_join_nr 2 2 2
                chk_add_nr 1 1 1
                chk_rm_nr 1 1
@@ -2843,7 +2844,7 @@ add_addr_ports_tests()
                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 -8 -2 slow
+               run_tests $ns1 $ns2 10.0.1.1 -8 -2 slow
                chk_join_nr 3 3 3
                chk_add_nr 1 1
                chk_rm_nr 1 3 invert simult
@@ -3045,7 +3046,7 @@ fullmesh_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 1 0 slow
+               run_tests $ns1 $ns2 10.0.1.1 1 0 slow
                chk_join_nr 4 4 4
                chk_add_nr 1 1
        fi
@@ -3057,7 +3058,7 @@ fullmesh_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 fullmesh_1 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 fullmesh_1 slow
                chk_join_nr 3 3 3
                chk_add_nr 1 1
        fi
@@ -3069,7 +3070,7 @@ fullmesh_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 fullmesh_2 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 fullmesh_2 slow
                chk_join_nr 5 5 5
                chk_add_nr 1 1
        fi
@@ -3082,7 +3083,7 @@ fullmesh_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 fullmesh_2 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 fullmesh_2 slow
                chk_join_nr 4 4 4
                chk_add_nr 1 1
        fi
@@ -3093,7 +3094,7 @@ fullmesh_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 1 slow fullmesh
+               run_tests $ns1 $ns2 10.0.1.1 0 1 slow fullmesh
                chk_join_nr 2 2 2
                chk_rm_nr 0 1
        fi
@@ -3104,7 +3105,7 @@ fullmesh_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 fullmesh_1 slow nofullmesh
+               run_tests $ns1 $ns2 10.0.1.1 0 fullmesh_1 slow nofullmesh
                chk_join_nr 2 2 2
                chk_rm_nr 0 1
        fi
@@ -3115,7 +3116,7 @@ fullmesh_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 1 slow backup,fullmesh
+               run_tests $ns1 $ns2 10.0.1.1 0 1 slow backup,fullmesh
                chk_join_nr 2 2 2
                chk_prio_nr 0 1
                chk_rm_nr 0 1
@@ -3127,7 +3128,7 @@ fullmesh_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow nobackup,nofullmesh
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow nobackup,nofullmesh
                chk_join_nr 2 2 2
                chk_prio_nr 0 1
                chk_rm_nr 0 1
@@ -3137,14 +3138,16 @@ fullmesh_tests()
 fastclose_tests()
 {
        if reset_check_counter "fastclose test" "MPTcpExtMPFastcloseTx"; then
-               run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_client
+               test_linkfail=1024 \
+                       run_tests $ns1 $ns2 10.0.1.1 0 fastclose_client
                chk_join_nr 0 0 0
                chk_fclose_nr 1 1
                chk_rst_nr 1 1 invert
        fi
 
        if reset_check_counter "fastclose server test" "MPTcpExtMPFastcloseRx"; then
-               run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_server
+               test_linkfail=1024 \
+                       run_tests $ns1 $ns2 10.0.1.1 0 fastclose_server
                chk_join_nr 0 0 0
                chk_fclose_nr 1 1 invert
                chk_rst_nr 1 1
@@ -3162,7 +3165,8 @@ fail_tests()
 {
        # single subflow
        if reset_with_fail "Infinite map" 1; then
-               run_tests $ns1 $ns2 10.0.1.1 128
+               test_linkfail=128 \
+                       run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 0 0 0 +1 +0 1 0 1 "$(pedit_action_pkts)"
                chk_fail_nr 1 -1 invert
        fi
@@ -3173,7 +3177,8 @@ fail_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 1024
+               test_linkfail=1024 \
+                       run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 1 1 1 1 0 1 1 0 "$(pedit_action_pkts)"
        fi
 }
@@ -3298,7 +3303,7 @@ userspace_tests()
                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 0 0 slow backup
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow backup
                chk_join_nr 1 1 0
                chk_prio_nr 0 0
        fi
@@ -3311,7 +3316,7 @@ userspace_tests()
                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 0 -1 slow
+               run_tests $ns1 $ns2 10.0.1.1 0 -1 slow
                chk_join_nr 0 0 0
                chk_rm_nr 0 0
        fi
@@ -3321,7 +3326,7 @@ userspace_tests()
           continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
                set_userspace_pm $ns1
                pm_nl_set_limits $ns2 1 1
-               run_tests $ns1 $ns2 10.0.1.1 0 0 speed_10 &
+               run_tests $ns1 $ns2 10.0.1.1 0 0 speed_10 &
                local tests_pid=$!
                wait_mpj $ns1
                userspace_pm_add_addr 10.0.2.1 10
@@ -3341,7 +3346,7 @@ userspace_tests()
           continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
                set_userspace_pm $ns2
                pm_nl_set_limits $ns1 0 1
-               run_tests $ns1 $ns2 10.0.1.1 0 0 speed_10 &
+               run_tests $ns1 $ns2 10.0.1.1 0 0 speed_10 &
                local tests_pid=$!
                wait_mpj $ns2
                userspace_pm_add_sf 10.0.3.2 20
@@ -3364,7 +3369,7 @@ endpoint_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 0 0 slow 2>/dev/null &
+               run_tests $ns1 $ns2 10.0.1.1 0 0 slow 2>/dev/null &
 
                wait_mpj $ns1
                pm_nl_check_endpoint 1 "creation" \
@@ -3387,7 +3392,8 @@ endpoint_tests()
                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
-               run_tests $ns1 $ns2 10.0.1.1 4 0 0 speed_20 2>/dev/null &
+               test_linkfail=4 \
+                       run_tests $ns1 $ns2 10.0.1.1 0 0 speed_20 2>/dev/null &
 
                wait_mpj $ns2
                chk_subflow_nr needtitle "before delete" 2