* [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2
@ 2023-06-07 11:44 Geliang Tang
2023-06-07 11:44 ` [PATCH mptcp-next v17 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Geliang Tang
` (7 more replies)
0 siblings, 8 replies; 13+ messages in thread
From: Geliang Tang @ 2023-06-07 11:44 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
v17:
- rebased on export/20230607T094151
v16:
- address Matt's comments in v15.
- the last two patches in v15 is deponed on "selftests: mptcp: skip
tests when features are not supported", split them into a new series.
- this series have no conflect with "selftests: mptcp: skip tests when
features are not supported" now.
v15:
- fix the failures reported by CI in v14.
v14:
- rebased to "selftests: mptcp: skip tests when features are not supported".
- patch 1 "selftests: mptcp: skip tests when features are not
supported, v2, patches 8-37"
v13:
- fix all the failures the CI is complaining about with the debug kconfig.
- rename endpoint_manipulation to pm_nl_set_endpoint.
Geliang Tang (7):
mptcp: pass addr to mptcp_pm_alloc_anno_list
selftests: mptcp: test userspace pm out of transfer
selftests: mptcp: check subflows infos
selftests: mptcp: check add_addr infos
selftests: mptcp: add pm_nl_set_endpoint helper
selftests: mptcp: pass fastclose to sflags
selftests: mptcp: set endpoint out of transfer
net/mptcp/pm_netlink.c | 8 +-
net/mptcp/pm_userspace.c | 2 +-
net/mptcp/protocol.h | 2 +-
.../testing/selftests/net/mptcp/mptcp_join.sh | 545 ++++++++++--------
4 files changed, 311 insertions(+), 246 deletions(-)
--
2.35.3
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH mptcp-next v17 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list 2023-06-07 11:44 [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Geliang Tang @ 2023-06-07 11:44 ` Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 2/7] selftests: mptcp: test userspace pm out of transfer Geliang Tang ` (6 subsequent siblings) 7 siblings, 0 replies; 13+ messages in thread From: Geliang Tang @ 2023-06-07 11:44 UTC (permalink / raw) To: mptcp; +Cc: Geliang Tang Pass addr parameter to mptcp_pm_alloc_anno_list() instead of entry. We can reduce the scope, e.g. in mptcp_pm_alloc_anno_list(), we only access "entry->addr", we can then restrict to the pointer to "addr" then. Signed-off-by: Geliang Tang <geliang.tang@suse.com> --- net/mptcp/pm_netlink.c | 8 ++++---- net/mptcp/pm_userspace.c | 2 +- net/mptcp/protocol.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index ba1406e601e4..724b652876cf 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -341,7 +341,7 @@ mptcp_pm_del_add_timer(struct mptcp_sock *msk, } bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, - const struct mptcp_pm_addr_entry *entry) + const struct mptcp_addr_info *addr) { struct mptcp_pm_add_entry *add_entry = NULL; struct sock *sk = (struct sock *)msk; @@ -349,7 +349,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, lockdep_assert_held(&msk->pm.lock); - add_entry = mptcp_lookup_anno_list_by_saddr(msk, &entry->addr); + add_entry = mptcp_lookup_anno_list_by_saddr(msk, addr); if (add_entry) { if (mptcp_pm_is_kernel(msk)) @@ -366,7 +366,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, list_add(&add_entry->list, &msk->pm.anno_list); - add_entry->addr = entry->addr; + add_entry->addr = *addr; add_entry->sock = msk; add_entry->retrans_times = 0; @@ -573,7 +573,7 @@ static void mptcp_pm_create_subflow_or_signal_addr(struct mptcp_sock *msk) return; if (local) { - if (mptcp_pm_alloc_anno_list(msk, local)) { + if (mptcp_pm_alloc_anno_list(msk, &local->addr)) { __clear_bit(local->addr.id, msk->pm.id_avail_bitmap); msk->pm.add_addr_signaled++; mptcp_pm_announce_addr(msk, &local->addr, false); diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index 47a883a16c11..b5a8aa4c1ebd 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -193,7 +193,7 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct genl_info *info) lock_sock((struct sock *)msk); spin_lock_bh(&msk->pm.lock); - if (mptcp_pm_alloc_anno_list(msk, &addr_val)) { + if (mptcp_pm_alloc_anno_list(msk, &addr_val.addr)) { msk->pm.add_addr_signaled++; mptcp_pm_announce_addr(msk, &addr_val.addr, false); mptcp_pm_nl_addr_send_ack(msk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index d2e59cf33f57..3ba62f1154d3 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -833,7 +833,7 @@ int mptcp_pm_nl_mp_prio_send_ack(struct mptcp_sock *msk, struct mptcp_addr_info *rem, u8 bkup); bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, - const struct mptcp_pm_addr_entry *entry); + const struct mptcp_addr_info *addr); void mptcp_pm_free_anno_list(struct mptcp_sock *msk); bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk); struct mptcp_pm_add_entry * -- 2.35.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH mptcp-next v17 2/7] selftests: mptcp: test userspace pm out of transfer 2023-06-07 11:44 [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Geliang Tang @ 2023-06-07 11:44 ` Geliang Tang 2023-06-09 15:31 ` Matthieu Baerts 2023-06-07 11:44 ` [PATCH mptcp-next v17 3/7] selftests: mptcp: check subflows infos Geliang Tang ` (5 subsequent siblings) 7 siblings, 1 reply; 13+ messages in thread From: Geliang Tang @ 2023-06-07 11:44 UTC (permalink / raw) To: mptcp; +Cc: Geliang Tang This patch moves userspace pm tests out of do_transfer(). Move add addrese test into a new function userspace_pm_add_addr(), and remove address test into userspace_pm_rm_addr(). Move add subflow test into userspace_pm_add_sf() and remove subflow into userspace_pm_rm_sf(). Signed-off-by: Geliang Tang <geliang.tang@suse.com> --- .../testing/selftests/net/mptcp/mptcp_join.sh | 123 +++++++++++------- 1 file changed, 77 insertions(+), 46 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index a7973d6a40a0..6684a60dad50 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -813,7 +813,6 @@ do_transfer() local port=$((10000 + TEST_COUNT - 1)) local cappid - local userspace_pm=0 :> "$cout" :> "$sout" @@ -850,11 +849,6 @@ do_transfer() extra_args="-r ${speed:6}" fi - if [[ "${addr_nr_ns1}" = "userspace_"* ]]; then - userspace_pm=1 - addr_nr_ns1=${addr_nr_ns1:10} - fi - local flags="subflow" local extra_cl_args="" local extra_srv_args="" @@ -882,9 +876,6 @@ do_transfer() return 1 fi addr_nr_ns2=0 - elif [[ "${addr_nr_ns2}" = "userspace_"* ]]; then - userspace_pm=1 - addr_nr_ns2=${addr_nr_ns2:10} elif [[ "${addr_nr_ns2}" = "fullmesh_"* ]]; then flags="${flags},fullmesh" addr_nr_ns2=${addr_nr_ns2:9} @@ -938,7 +929,6 @@ do_transfer() local counter=2 local add_nr_ns1=${addr_nr_ns1} local id=10 - local tk while [ $add_nr_ns1 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -946,24 +936,7 @@ do_transfer() else addr="10.0.$counter.1" fi - if [ $userspace_pm -eq 0 ]; then - pm_nl_add_endpoint $ns1 $addr flags signal - else - tk=$(grep "type:1," "$evts_ns1" | - sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec ${listener_ns} ./pm_nl_ctl ann $addr token $tk id $id - sleep 1 - sp=$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') - da=$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') - dp=$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id - ip netns exec ${listener_ns} ./pm_nl_ctl dsf lip "::ffff:$addr" \ - lport $sp rip $da rport $dp token $tk - fi - + pm_nl_add_endpoint $ns1 $addr flags signal counter=$((counter + 1)) add_nr_ns1=$((add_nr_ns1 - 1)) id=$((id + 1)) @@ -1008,7 +981,6 @@ do_transfer() local add_nr_ns2=${addr_nr_ns2} local counter=3 local id=20 - local tk da dp sp while [ $add_nr_ns2 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -1016,21 +988,7 @@ do_transfer() else addr="10.0.$counter.2" fi - if [ $userspace_pm -eq 0 ]; then - pm_nl_add_endpoint $ns2 $addr flags $flags - else - tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") - da=$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") - dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") - ip netns exec ${connector_ns} ./pm_nl_ctl csf lip $addr lid $id \ - rip $da rport $dp token $tk - sleep 1 - sp=$(grep "type:10" "$evts_ns2" | - sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec ${connector_ns} ./pm_nl_ctl rem token $tk id $id - ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \ - rip $da rport $dp token $tk - fi + pm_nl_add_endpoint $ns2 $addr flags $flags counter=$((counter + 1)) add_nr_ns2=$((add_nr_ns2 - 1)) id=$((id + 1)) @@ -3205,6 +3163,65 @@ fail_tests() fi } +userspace_pm_add_addr() +{ + local addr=$1 + local id=$2 + local tk + + tk=$(grep "type:1," "$evts_ns1" | + sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') + ip netns exec $ns1 ./pm_nl_ctl ann $addr token $tk id $id +} + +userspace_pm_rm_addr() +{ + local addr=$1 + local id=$2 + local tk sp da dp + + tk=$(grep "type:1," "$evts_ns1" | + sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') + sp=$(grep "type:10" "$evts_ns1" | + sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') + da=$(grep "type:10" "$evts_ns1" | + sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') + dp=$(grep "type:10" "$evts_ns1" | + sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') + ip netns exec $ns1 ./pm_nl_ctl rem token $tk id $id + ip netns exec $ns1 ./pm_nl_ctl dsf lip "::ffff:$addr" \ + lport $sp rip $da rport $dp token $tk +} + +userspace_pm_add_sf() +{ + local addr=$1 + local id=$2 + local tk da dp + + tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + da=$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") + dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + ip netns exec $ns2 ./pm_nl_ctl csf lip $addr lid $id \ + rip $da rport $dp token $tk +} + +userspace_pm_rm_sf() +{ + local addr=$1 + local id=$2 + local tk da dp sp + + tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + da=$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") + dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + sp=$(grep "type:10" "$evts_ns2" | + sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') + ip netns exec $ns2 ./pm_nl_ctl rem token $tk id $id + ip netns exec $ns2 ./pm_nl_ctl dsf lip $addr lport $sp \ + rip $da rport $dp token $tk +} + userspace_tests() { # userspace pm type prevents add_addr @@ -3283,11 +3300,18 @@ 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 userspace_1 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 & + local tests_pid=$! + wait_mpj $ns1 + userspace_pm_add_addr 10.0.2.1 10 + sleep 1 chk_join_nr 1 1 1 chk_add_nr 1 1 + userspace_pm_rm_addr 10.0.2.1 10 + wait_rm_addr $ns1 1 chk_rm_nr 1 1 invert kill_events_pids + wait $tests_pid fi # userspace pm create destroy subflow @@ -3295,10 +3319,17 @@ 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 userspace_1 slow + run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 & + local tests_pid=$! + wait_mpj $ns2 + userspace_pm_add_sf 10.0.3.2 20 + sleep 1 chk_join_nr 1 1 1 + userspace_pm_rm_sf 10.0.3.2 20 + wait_rm_addr $ns2 1 chk_rm_nr 1 1 kill_events_pids + wait $tests_pid fi } -- 2.35.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH mptcp-next v17 2/7] selftests: mptcp: test userspace pm out of transfer 2023-06-07 11:44 ` [PATCH mptcp-next v17 2/7] selftests: mptcp: test userspace pm out of transfer Geliang Tang @ 2023-06-09 15:31 ` Matthieu Baerts 0 siblings, 0 replies; 13+ messages in thread From: Matthieu Baerts @ 2023-06-09 15:31 UTC (permalink / raw) To: Geliang Tang, mptcp Hi Geliang, On 07/06/2023 13:44, Geliang Tang wrote: > This patch moves userspace pm tests out of do_transfer(). Move add > addrese test into a new function userspace_pm_add_addr(), and remove > address test into userspace_pm_rm_addr(). Move add subflow test into > userspace_pm_add_sf() and remove subflow into userspace_pm_rm_sf(). (...) > diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh > index a7973d6a40a0..6684a60dad50 100755 > --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh > +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh (...) > +userspace_pm_rm_addr() > +{ > + local addr=$1 > + local id=$2 > + local tk sp da dp > + > + tk=$(grep "type:1," "$evts_ns1" | > + sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') > + sp=$(grep "type:10" "$evts_ns1" | > + sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') > + da=$(grep "type:10" "$evts_ns1" | > + sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') > + dp=$(grep "type:10" "$evts_ns1" | > + sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') > + ip netns exec $ns1 ./pm_nl_ctl rem token $tk id $id > + ip netns exec $ns1 ./pm_nl_ctl dsf lip "::ffff:$addr" \ > + lport $sp rip $da rport $dp token $tk> +} (...) > +userspace_pm_rm_sf() > +{ > + local addr=$1 > + local id=$2 > + local tk da dp sp > + > + tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") > + da=$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") > + dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") > + sp=$(grep "type:10" "$evts_ns2" | > + sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') > + ip netns exec $ns2 ./pm_nl_ctl rem token $tk id $id > + ip netns exec $ns2 ./pm_nl_ctl dsf lip $addr lport $sp \ > + rip $da rport $dp token $tk > +} These two functions (userspace_pm_rm_addr() and userspace_pm_rm_sf()) have confusing names: they both remove an address and a subflow. The only difference is that one is doing that on ns1 and the other one on ns2. It might be better to rename them, maybe userspace_pm_rm_sf_addr_ns1 and _ns2, no? See below: > userspace_tests() > { > # userspace pm type prevents add_addr > @@ -3283,11 +3300,18 @@ 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 userspace_1 0 slow > + run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 & > + local tests_pid=$! > + wait_mpj $ns1 > + userspace_pm_add_addr 10.0.2.1 10 > + sleep 1 > chk_join_nr 1 1 1 > chk_add_nr 1 1 > + userspace_pm_rm_addr 10.0.2.1 10 > + wait_rm_addr $ns1 1 > chk_rm_nr 1 1 invert Here, it is strange to see that one subflow has been removed: chk_rm_nr 1 *1* While we might think only one RM_ADDR has been sent (userspace_pm_rm_addr()). > kill_events_pids > + wait $tests_pid > fi > > # userspace pm create destroy subflow > @@ -3295,10 +3319,17 @@ 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 userspace_1 slow > + run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 & > + local tests_pid=$! > + wait_mpj $ns2 > + userspace_pm_add_sf 10.0.3.2 20 > + sleep 1 > chk_join_nr 1 1 1 > + userspace_pm_rm_sf 10.0.3.2 20 > + wait_rm_addr $ns2 1 > chk_rm_nr 1 1 Here, it is strange to see that we want to remove a subflow (userspace_pm_rm_sf()) but we wait to see RM_ADDR (wait_rm_addr()). I would say that it sounds better to just do one action and check that specific action but maybe it is enough to just rename the function and hope that only checking the if the remove addr have been exchanged is enough to know if the subflow has been removed as well (or better: add a wait_rm_sf()). Cheers, Matt -- Tessares | Belgium | Hybrid Access Solutions www.tessares.net ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH mptcp-next v17 3/7] selftests: mptcp: check subflows infos 2023-06-07 11:44 [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 2/7] selftests: mptcp: test userspace pm out of transfer Geliang Tang @ 2023-06-07 11:44 ` Geliang Tang 2023-06-09 15:31 ` Matthieu Baerts 2023-06-07 11:44 ` [PATCH mptcp-next v17 4/7] selftests: mptcp: check add_addr infos Geliang Tang ` (4 subsequent siblings) 7 siblings, 1 reply; 13+ messages in thread From: Geliang Tang @ 2023-06-07 11:44 UTC (permalink / raw) To: mptcp; +Cc: Geliang Tang This patch adds more arguments for chk_mptcp_info() to check subflows info of different namespaces. And invokes chk_mptcp_info() to check subflows infos of userspace PM tests and endpoint tests. Signed-off-by: Geliang Tang <geliang.tang@suse.com> --- .../testing/selftests/net/mptcp/mptcp_join.sh | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index 6684a60dad50..119a309bf96f 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1812,31 +1812,31 @@ chk_subflow_nr() chk_mptcp_info() { - local nr_info=$1 - local info + local info1=$1 + local nr1=$2 + local info2=$3 + local nr2=$4 local cnt1 local cnt2 local dump_stats - if [[ $nr_info = "subflows_"* ]]; then - info="subflows" - nr_info=${nr_info:9} - else - echo "[fail] unsupported argument: $nr_info" + if [ $info1 != "subflows" ] || + [ $info2 != "subflows" ]; then + echo "[fail] unsupported argument: $info1:$info2" fail_test return 1 fi - printf "%-${nr_blank}s %-30s" " " "mptcp_info $info=$nr_info" + printf "%-${nr_blank}s %-30s" " " "mptcp_info $info1:$info2=$nr1:$nr2" - cnt1=$(ss -N $ns1 -inmHM | grep "$info:" | - sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q') + cnt1=$(ss -N $ns1 -inmHM | grep "$info1:" | + sed -n 's/.*\('"$info1"':\)\([[:digit:]]*\).*$/\2/p;q') [ -z "$cnt1" ] && cnt1=0 - cnt2=$(ss -N $ns2 -inmHM | grep "$info:" | - sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q') + cnt2=$(ss -N $ns2 -inmHM | grep "$info2:" | + sed -n 's/.*\('"$info2"':\)\([[:digit:]]*\).*$/\2/p;q') [ -z "$cnt2" ] && cnt2=0 - if [ "$cnt1" != "$nr_info" ] || [ "$cnt2" != "$nr_info" ]; then - echo "[fail] got $cnt1:$cnt2 $info expected $nr_info" + if [ "$cnt1" != "$nr1" ] || [ "$cnt2" != "$nr2" ]; then + echo "[fail] got $cnt1:$cnt2 $info1:$info2 expected $nr1:$nr2" fail_test dump_stats=1 else @@ -3307,9 +3307,11 @@ userspace_tests() sleep 1 chk_join_nr 1 1 1 chk_add_nr 1 1 + chk_mptcp_info subflows 1 subflows 1 userspace_pm_rm_addr 10.0.2.1 10 wait_rm_addr $ns1 1 chk_rm_nr 1 1 invert + chk_mptcp_info subflows 0 subflows 0 kill_events_pids wait $tests_pid fi @@ -3325,9 +3327,11 @@ userspace_tests() userspace_pm_add_sf 10.0.3.2 20 sleep 1 chk_join_nr 1 1 1 + chk_mptcp_info subflows 1 subflows 1 userspace_pm_rm_sf 10.0.3.2 20 wait_rm_addr $ns2 1 chk_rm_nr 1 1 + chk_mptcp_info subflows 0 subflows 0 kill_events_pids wait $tests_pid fi @@ -3347,6 +3351,7 @@ endpoint_tests() wait_mpj $ns1 pm_nl_check_endpoint 1 "creation" \ $ns2 10.0.2.2 id 1 flags implicit + chk_mptcp_info subflows 1 subflows 1 pm_nl_add_endpoint $ns2 10.0.2.2 id 33 pm_nl_check_endpoint 0 "ID change is prevented" \ @@ -3367,17 +3372,17 @@ endpoint_tests() wait_mpj $ns2 chk_subflow_nr needtitle "before delete" 2 - chk_mptcp_info subflows_1 + chk_mptcp_info subflows 1 subflows 1 pm_nl_del_endpoint $ns2 2 10.0.2.2 sleep 0.5 chk_subflow_nr "" "after delete" 1 - chk_mptcp_info subflows_0 + chk_mptcp_info subflows 0 subflows 0 pm_nl_add_endpoint $ns2 10.0.2.2 dev ns2eth2 flags subflow wait_mpj $ns2 chk_subflow_nr "" "after re-add" 2 - chk_mptcp_info subflows_1 + chk_mptcp_info subflows 1 subflows 1 kill_tests_wait fi } -- 2.35.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH mptcp-next v17 3/7] selftests: mptcp: check subflows infos 2023-06-07 11:44 ` [PATCH mptcp-next v17 3/7] selftests: mptcp: check subflows infos Geliang Tang @ 2023-06-09 15:31 ` Matthieu Baerts 0 siblings, 0 replies; 13+ messages in thread From: Matthieu Baerts @ 2023-06-09 15:31 UTC (permalink / raw) To: Geliang Tang, mptcp Hi Geliang, On 07/06/2023 13:44, Geliang Tang wrote: > This patch adds more arguments for chk_mptcp_info() to check subflows > info of different namespaces. And invokes chk_mptcp_info() to check > subflows infos of userspace PM tests and endpoint tests. > > Signed-off-by: Geliang Tang <geliang.tang@suse.com> > --- > .../testing/selftests/net/mptcp/mptcp_join.sh | 39 +++++++++++-------- > 1 file changed, 22 insertions(+), 17 deletions(-) > > diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh > index 6684a60dad50..119a309bf96f 100755 > --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh > +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh > @@ -1812,31 +1812,31 @@ chk_subflow_nr() > > chk_mptcp_info() > { > - local nr_info=$1 > - local info > + local info1=$1 > + local nr1=$2 > + local info2=$3 > + local nr2=$4 > local cnt1 > local cnt2 > local dump_stats > > - if [[ $nr_info = "subflows_"* ]]; then > - info="subflows" > - nr_info=${nr_info:9} > - else > - echo "[fail] unsupported argument: $nr_info" > + if [ $info1 != "subflows" ] || > + [ $info2 != "subflows" ]; then > + echo "[fail] unsupported argument: $info1:$info2" > fail_test > return 1 > fi Do you still need to check the arguments? That's just internal and we no longer extract info from the variable. Maybe we can remove this block now? > - printf "%-${nr_blank}s %-30s" " " "mptcp_info $info=$nr_info" > + printf "%-${nr_blank}s %-30s" " " "mptcp_info $info1:$info2=$nr1:$nr2" > > - cnt1=$(ss -N $ns1 -inmHM | grep "$info:" | > - sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q') > + cnt1=$(ss -N $ns1 -inmHM | grep "$info1:" | > + sed -n 's/.*\('"$info1"':\)\([[:digit:]]*\).*$/\2/p;q') > [ -z "$cnt1" ] && cnt1=0 I see below that you are checking the values in more places. Some old kernels might not have these counters, no? Should we not have something like: cnt1=$(...) cnt2=$(...) if [ -z "${cnt1}" ] || [ -z "${cnt2}" ]; then mptcp_lib_fail_if_expected_feature "${info1} SS counter" echo "[skip]" elif [ "$cnt1" != "$nr1" ] || [ "$cnt2" != "$nr2" ]; then <fail> else <ok> fi No? Cheers, Matt -- Tessares | Belgium | Hybrid Access Solutions www.tessares.net ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH mptcp-next v17 4/7] selftests: mptcp: check add_addr infos 2023-06-07 11:44 [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Geliang Tang ` (2 preceding siblings ...) 2023-06-07 11:44 ` [PATCH mptcp-next v17 3/7] selftests: mptcp: check subflows infos Geliang Tang @ 2023-06-07 11:44 ` Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 5/7] selftests: mptcp: add pm_nl_set_endpoint helper Geliang Tang ` (3 subsequent siblings) 7 siblings, 0 replies; 13+ messages in thread From: Geliang Tang @ 2023-06-07 11:44 UTC (permalink / raw) To: mptcp; +Cc: Geliang Tang This patch checks add_addr_signal and add_addr_accepted in chk_mptcp_info(), and do this checks in userspace_tests() and endpoint_tests(). Signed-off-by: Geliang Tang <geliang.tang@suse.com> --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index 119a309bf96f..530b88990b76 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1820,8 +1820,8 @@ chk_mptcp_info() local cnt2 local dump_stats - if [ $info1 != "subflows" ] || - [ $info2 != "subflows" ]; then + if [ $info1 != "subflows" ] && [ $info1 != "add_addr_signal" ] || + [ $info2 != "subflows" ] && [ $info2 != "add_addr_accepted" ]; then echo "[fail] unsupported argument: $info1:$info2" fail_test return 1 @@ -3308,6 +3308,7 @@ userspace_tests() chk_join_nr 1 1 1 chk_add_nr 1 1 chk_mptcp_info subflows 1 subflows 1 + chk_mptcp_info add_addr_signal 1 add_addr_accepted 1 userspace_pm_rm_addr 10.0.2.1 10 wait_rm_addr $ns1 1 chk_rm_nr 1 1 invert @@ -3352,6 +3353,7 @@ endpoint_tests() pm_nl_check_endpoint 1 "creation" \ $ns2 10.0.2.2 id 1 flags implicit chk_mptcp_info subflows 1 subflows 1 + chk_mptcp_info add_addr_signal 1 add_addr_accepted 1 pm_nl_add_endpoint $ns2 10.0.2.2 id 33 pm_nl_check_endpoint 0 "ID change is prevented" \ -- 2.35.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH mptcp-next v17 5/7] selftests: mptcp: add pm_nl_set_endpoint helper 2023-06-07 11:44 [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Geliang Tang ` (3 preceding siblings ...) 2023-06-07 11:44 ` [PATCH mptcp-next v17 4/7] selftests: mptcp: check add_addr infos Geliang Tang @ 2023-06-07 11:44 ` Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 6/7] selftests: mptcp: pass fastclose to sflags Geliang Tang ` (2 subsequent siblings) 7 siblings, 0 replies; 13+ messages in thread From: Geliang Tang @ 2023-06-07 11:44 UTC (permalink / raw) To: mptcp; +Cc: Geliang Tang This patch moves endpoint settings out of do_transfer() into a new helper pm_nl_set_endpoint(). And invoke this helper in do_transfer(). Signed-off-by: Geliang Tang <geliang.tang@suse.com> --- .../testing/selftests/net/mptcp/mptcp_join.sh | 246 +++++++++--------- 1 file changed, 129 insertions(+), 117 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index 530b88990b76..d594df3e7897 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -798,126 +798,14 @@ pm_nl_check_endpoint() fi } -do_transfer() +pm_nl_set_endpoint() { local listener_ns="$1" local connector_ns="$2" - 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 port=$((10000 + TEST_COUNT - 1)) - local cappid - - :> "$cout" - :> "$sout" - :> "$capout" - - if [ $capture -eq 1 ]; then - local capuser - if [ -z $SUDO_USER ] ; then - capuser="" - else - capuser="-Z $SUDO_USER" - fi - - capfile=$(printf "mp_join-%02u-%s.pcap" "$TEST_COUNT" "${listener_ns}") - - echo "Capturing traffic for test $TEST_COUNT into $capfile" - 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" - elif [[ $speed = "speed_"* ]]; then - extra_args="-r ${speed:6}" - fi - - local flags="subflow" - local extra_cl_args="" - 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" - fail_test - return 1 - fi - - # disconnect - trunc_size=${test_link_fail} - local side=${addr_nr_ns2:10} - - if [ ${side} = "client" ]; then - extra_cl_args="-f ${test_link_fail}" - extra_srv_args="-f -1" - elif [ ${side} = "server" ]; then - extra_srv_args="-f ${test_link_fail}" - extra_cl_args="-f -1" - else - echo "wrong/unknown fastclose spec ${side}" - fail_test - return 1 - fi - addr_nr_ns2=0 - elif [[ "${addr_nr_ns2}" = "fullmesh_"* ]]; then - flags="${flags},fullmesh" - addr_nr_ns2=${addr_nr_ns2:9} - fi - - extra_srv_args="$extra_args $extra_srv_args" - if [ "$test_link_fail" -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=$! - - wait_local_port_listen "${listener_ns}" "${port}" - - extra_cl_args="$extra_args $extra_cl_args" - if [ "$test_link_fail" -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 - ( 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=$! + local connect_addr="$3" + local addr_nr_ns1="$4" + local addr_nr_ns2="$5" + local sflags="${6}" # let the mptcp subflow be established in background before # do endpoint manipulation @@ -1057,6 +945,130 @@ do_transfer() done done fi +} + +do_transfer() +{ + local listener_ns="$1" + local connector_ns="$2" + 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 port=$((10000 + TEST_COUNT - 1)) + local cappid + + :> "$cout" + :> "$sout" + :> "$capout" + + if [ $capture -eq 1 ]; then + local capuser + if [ -z $SUDO_USER ] ; then + capuser="" + else + capuser="-Z $SUDO_USER" + fi + + capfile=$(printf "mp_join-%02u-%s.pcap" "$TEST_COUNT" "${listener_ns}") + + echo "Capturing traffic for test $TEST_COUNT into $capfile" + 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" + elif [[ $speed = "speed_"* ]]; then + extra_args="-r ${speed:6}" + fi + + local flags="subflow" + local extra_cl_args="" + 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" + fail_test + return 1 + fi + + # disconnect + trunc_size=${test_link_fail} + local side=${addr_nr_ns2:10} + + if [ ${side} = "client" ]; then + extra_cl_args="-f ${test_link_fail}" + extra_srv_args="-f -1" + elif [ ${side} = "server" ]; then + extra_srv_args="-f ${test_link_fail}" + extra_cl_args="-f -1" + else + echo "wrong/unknown fastclose spec ${side}" + fail_test + return 1 + fi + addr_nr_ns2=0 + elif [[ "${addr_nr_ns2}" = "fullmesh_"* ]]; then + flags="${flags},fullmesh" + addr_nr_ns2=${addr_nr_ns2:9} + fi + + extra_srv_args="$extra_args $extra_srv_args" + if [ "$test_link_fail" -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=$! + + wait_local_port_listen "${listener_ns}" "${port}" + + extra_cl_args="$extra_args $extra_cl_args" + if [ "$test_link_fail" -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 + ( 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 $addr_nr_ns1 $addr_nr_ns2 $sflags wait $cpid local retc=$? -- 2.35.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH mptcp-next v17 6/7] selftests: mptcp: pass fastclose to sflags 2023-06-07 11:44 [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Geliang Tang ` (4 preceding siblings ...) 2023-06-07 11:44 ` [PATCH mptcp-next v17 5/7] selftests: mptcp: add pm_nl_set_endpoint helper Geliang Tang @ 2023-06-07 11:44 ` Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer Geliang Tang 2023-06-09 15:30 ` [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Matthieu Baerts 7 siblings, 0 replies; 13+ messages in thread From: Geliang Tang @ 2023-06-07 11:44 UTC (permalink / raw) To: mptcp; +Cc: Geliang Tang Pass fastclose flag to the sflags argument instead of addr_nr_ns2. Then the fullmesh flag setting can be moved into pm_nl_set_endpoint() from do_transfer(). Signed-off-by: Geliang Tang <geliang.tang@suse.com> --- .../testing/selftests/net/mptcp/mptcp_join.sh | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index d594df3e7897..cd6869a3783d 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -807,6 +807,12 @@ pm_nl_set_endpoint() local addr_nr_ns2="$5" local sflags="${6}" + local flags="subflow" + if [[ "${addr_nr_ns2}" = "fullmesh_"* ]]; then + flags="${flags},fullmesh" + addr_nr_ns2=${addr_nr_ns2:9} + fi + # let the mptcp subflow be established in background before # do endpoint manipulation if [ $addr_nr_ns1 != "0" ] || [ $addr_nr_ns2 != "0" ]; then @@ -998,11 +1004,10 @@ do_transfer() extra_args="-r ${speed:6}" fi - local flags="subflow" local extra_cl_args="" local extra_srv_args="" local trunc_size="" - if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then + if [[ "${sflags}" = "fastclose_"* ]]; then if [ ${test_link_fail} -le 1 ]; then echo "fastclose tests need test_link_fail argument" fail_test @@ -1011,7 +1016,7 @@ do_transfer() # disconnect trunc_size=${test_link_fail} - local side=${addr_nr_ns2:10} + local side=${sflags:10} if [ ${side} = "client" ]; then extra_cl_args="-f ${test_link_fail}" @@ -1024,10 +1029,6 @@ do_transfer() fail_test return 1 fi - addr_nr_ns2=0 - elif [[ "${addr_nr_ns2}" = "fullmesh_"* ]]; then - flags="${flags},fullmesh" - addr_nr_ns2=${addr_nr_ns2:9} fi extra_srv_args="$extra_args $extra_srv_args" @@ -3134,14 +3135,14 @@ fullmesh_tests() fastclose_tests() { if reset_check_counter "fastclose test" "MPTcpExtMPFastcloseTx"; then - run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_client + run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast 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 + run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_server chk_join_nr 0 0 0 chk_fclose_nr 1 1 invert chk_rst_nr 1 1 -- 2.35.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer 2023-06-07 11:44 [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Geliang Tang ` (5 preceding siblings ...) 2023-06-07 11:44 ` [PATCH mptcp-next v17 6/7] selftests: mptcp: pass fastclose to sflags Geliang Tang @ 2023-06-07 11:44 ` Geliang Tang 2023-06-07 12:48 ` selftests: mptcp: set endpoint out of transfer: Tests Results MPTCP CI 2023-06-09 15:31 ` [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer Matthieu Baerts 2023-06-09 15:30 ` [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Matthieu Baerts 7 siblings, 2 replies; 13+ messages in thread From: Geliang Tang @ 2023-06-07 11:44 UTC (permalink / raw) To: mptcp; +Cc: Geliang Tang This patch moves endpoint settings out of do_transfer() into a new function pm_nl_set_endpoint(), then addr_nr_ns1 and addr_nr_ns2 arguments can be removed for do_transfer() and run_tests(). Signed-off-by: Geliang Tang <geliang.tang@suse.com> --- .../testing/selftests/net/mptcp/mptcp_join.sh | 164 ++++++++++-------- 1 file changed, 89 insertions(+), 75 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh index cd6869a3783d..595f9f0230ad 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -804,8 +804,8 @@ pm_nl_set_endpoint() local connector_ns="$2" local connect_addr="$3" local addr_nr_ns1="$4" - local addr_nr_ns2="$5" - local sflags="${6}" + local addr_nr_ns2="${5:-0}" + local sflags="${6:-""}" local flags="subflow" if [[ "${addr_nr_ns2}" = "fullmesh_"* ]]; then @@ -961,10 +961,8 @@ do_transfer() 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 speed="$7" + local sflags="${8}" local port=$((10000 + TEST_COUNT - 1)) local cappid @@ -1069,8 +1067,6 @@ do_transfer() fi local cpid=$! - pm_nl_set_endpoint $listener_ns $connector_ns $connect_addr $addr_nr_ns1 $addr_nr_ns2 $sflags - wait $cpid local retc=$? wait $spid @@ -1140,10 +1136,8 @@ run_tests() 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 speed="${5:-fast}" + local sflags="${6:-""}" local size @@ -1188,7 +1182,27 @@ run_tests() fi do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} \ - ${test_linkfail} ${addr_nr_ns1} ${addr_nr_ns2} ${speed} ${sflags} + ${test_linkfail} ${speed} ${sflags} +} + +run_tests_bg() +{ + 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 wait_join="${9:-0}" + + run_tests $listener_ns $connector_ns $connect_addr $test_linkfail $speed & + local tests_pid=$! + [ $wait_join -eq 1 ] && wait_mpj $connector_ns + pm_nl_set_endpoint $listener_ns $connector_ns $connect_addr $addr_nr_ns1 \ + $addr_nr_ns2 $sflags + wait $tests_pid } dump_stats() @@ -1982,7 +1996,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 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 fi @@ -1993,7 +2007,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 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 1 1 1 fi @@ -2004,7 +2018,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 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 1 1 1 fi @@ -2016,7 +2030,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 0 slow & + run_tests $ns1 $ns2 10.0.1.1 0 slow & # mpj subflow will be in TW after the reset wait_attempt_fail $ns2 @@ -2115,7 +2129,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 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow # It is not directly linked to the commit introducing this # symbol but for the parent one which is linked anyway. @@ -2223,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 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 1 1 1 chk_add_tx_nr 4 4 chk_add_nr 4 0 @@ -2234,7 +2248,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 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 1 1 1 chk_add_nr 4 0 fi @@ -2245,7 +2259,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 0 speed_10 + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 chk_join_nr 2 2 2 chk_add_nr 8 0 fi @@ -2256,7 +2270,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 0 speed_10 + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 chk_join_nr 1 1 1 chk_add_nr 8 0 fi @@ -2269,7 +2283,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 0 -1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 -1 slow chk_join_nr 1 1 1 chk_rm_tx_nr 1 chk_rm_nr 1 1 @@ -2281,7 +2295,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 0 -2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 -2 speed_10 "" 1 chk_join_nr 2 2 2 chk_rm_nr 2 2 fi @@ -2291,7 +2305,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 0 -1 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 0 slow chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert @@ -2303,7 +2317,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 0 -1 -1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 -1 slow chk_join_nr 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 @@ -2316,7 +2330,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 0 -1 -2 speed_10 + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 -2 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 @@ -2329,7 +2343,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 0 -3 0 speed_10 + run_tests_bg $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert @@ -2342,7 +2356,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 0 -3 0 speed_10 + run_tests_bg $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 "" 1 chk_join_nr 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert @@ -2355,7 +2369,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 0 -8 -8 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 -8 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 1 3 invert simult @@ -2368,7 +2382,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 0 -8 -8 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 -8 speed_10 "" 1 chk_join_nr 3 3 3 if mptcp_lib_kversion_ge 5.18; then @@ -2386,7 +2400,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 0 -8 -8 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 -8 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert simult @@ -2399,7 +2413,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 0 -8 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 0 speed_10 "" 1 chk_join_nr 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert @@ -2410,7 +2424,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 0 -9 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 -9 speed_10 "" 1 chk_join_nr 1 1 1 chk_rm_nr 1 1 fi @@ -2420,7 +2434,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 0 -9 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -9 0 speed_10 "" 1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert @@ -2433,7 +2447,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 0 1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 1 slow chk_join_nr 1 1 1 fi @@ -2441,7 +2455,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 0 1 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 1 0 slow chk_join_nr 1 1 1 chk_add_nr 1 1 fi @@ -2450,7 +2464,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 0 2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 2 slow chk_join_nr 2 2 2 fi @@ -2458,7 +2472,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 0 2 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 0 2 slow chk_join_nr 2 2 2 fi @@ -2466,7 +2480,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 0 2 0 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 2 0 slow chk_join_nr 2 2 2 chk_add_nr 2 2 fi @@ -2479,14 +2493,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 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 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 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 0 0 0 chk_add_nr 1 1 fi @@ -2496,7 +2510,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 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 1 1 1 chk_add_nr 1 1 fi @@ -2506,7 +2520,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 -1 0 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 -1 0 speed_10 "" 1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert @@ -2518,7 +2532,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 0 -1 -1 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 -1 -1 speed_10 "" 1 chk_join_nr 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 @@ -2619,7 +2633,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 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 fi @@ -2629,7 +2643,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 0 slow + run_tests $ns1 $ns2 dead:beef:2::1 0 slow chk_join_nr 1 1 1 fi @@ -2640,7 +2654,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 0 slow + run_tests $ns1 $ns2 dead:beef:2::1 0 slow chk_join_nr 1 1 1 fi @@ -2652,7 +2666,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 0 fullmesh_1 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 0 fullmesh_1 speed_10 "" 1 chk_join_nr 4 4 4 fi } @@ -2665,7 +2679,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 0 slow nobackup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 speed_10 nobackup 1 chk_join_nr 1 1 1 chk_prio_nr 0 1 fi @@ -2676,7 +2690,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 0 slow backup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 speed_10 backup 1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_prio_nr 1 1 @@ -2688,7 +2702,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 0 slow backup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 speed_10 backup 1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_prio_nr 1 1 @@ -2697,7 +2711,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 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 chk_prio_nr 0 1 fi @@ -2706,7 +2720,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 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 chk_prio_nr 1 1 fi @@ -2714,7 +2728,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 0 slow backup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 slow backup chk_join_nr 0 0 0 chk_prio_nr 0 1 fi @@ -2723,7 +2737,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 0 slow backup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 slow backup chk_join_nr 0 0 0 chk_prio_nr 1 1 fi @@ -2812,7 +2826,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 0 -1 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 0 slow chk_join_nr 1 1 1 chk_add_nr 1 1 1 chk_rm_nr 1 1 invert @@ -2828,7 +2842,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 0 -1 -1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 -1 speed_10 chk_join_nr 2 2 2 chk_add_nr 1 1 1 chk_rm_nr 1 1 @@ -2841,7 +2855,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 0 -8 -2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 -2 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 1 3 invert simult @@ -3043,7 +3057,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 0 1 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 1 0 slow chk_join_nr 4 4 4 chk_add_nr 1 1 fi @@ -3055,7 +3069,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 0 fullmesh_1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow chk_join_nr 3 3 3 chk_add_nr 1 1 fi @@ -3067,7 +3081,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 0 fullmesh_2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow chk_join_nr 5 5 5 chk_add_nr 1 1 fi @@ -3080,7 +3094,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 0 fullmesh_2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow chk_join_nr 4 4 4 chk_add_nr 1 1 fi @@ -3091,7 +3105,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 0 1 slow fullmesh + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 1 slow fullmesh chk_join_nr 2 2 2 chk_rm_nr 0 1 fi @@ -3102,7 +3116,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 0 fullmesh_1 slow nofullmesh + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow nofullmesh chk_join_nr 2 2 2 chk_rm_nr 0 1 fi @@ -3113,7 +3127,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 0 1 slow backup,fullmesh + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 1 slow backup,fullmesh chk_join_nr 2 2 2 chk_prio_nr 0 1 chk_rm_nr 0 1 @@ -3125,7 +3139,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 0 slow nobackup,nofullmesh + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 speed_10 nobackup,nofullmesh 1 chk_join_nr 2 2 2 chk_prio_nr 0 1 chk_rm_nr 0 1 @@ -3135,14 +3149,14 @@ fullmesh_tests() fastclose_tests() { if reset_check_counter "fastclose test" "MPTcpExtMPFastcloseTx"; then - run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_client + run_tests $ns1 $ns2 10.0.1.1 1024 fast 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 0 fast fastclose_server + run_tests $ns1 $ns2 10.0.1.1 1024 fast fastclose_server chk_join_nr 0 0 0 chk_fclose_nr 1 1 invert chk_rst_nr 1 1 @@ -3290,7 +3304,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 0 slow backup + run_tests $ns1 $ns2 10.0.1.1 0 slow backup chk_join_nr 1 1 0 chk_prio_nr 0 0 fi @@ -3303,7 +3317,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 0 -1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 -1 slow chk_join_nr 0 0 0 chk_rm_nr 0 0 fi @@ -3313,7 +3327,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 0 speed_10 & + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 & local tests_pid=$! wait_mpj $ns1 userspace_pm_add_addr 10.0.2.1 10 @@ -3335,7 +3349,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 0 speed_10 & + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 & local tests_pid=$! wait_mpj $ns2 userspace_pm_add_sf 10.0.3.2 20 @@ -3360,7 +3374,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 0 slow 2>/dev/null & + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & wait_mpj $ns1 pm_nl_check_endpoint 1 "creation" \ @@ -3383,7 +3397,7 @@ 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 & + run_tests $ns1 $ns2 10.0.1.1 4 speed_20 2>/dev/null & wait_mpj $ns2 chk_subflow_nr needtitle "before delete" 2 -- 2.35.3 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: selftests: mptcp: set endpoint out of transfer: Tests Results 2023-06-07 11:44 ` [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer Geliang Tang @ 2023-06-07 12:48 ` MPTCP CI 2023-06-09 15:31 ` [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer Matthieu Baerts 1 sibling, 0 replies; 13+ messages in thread From: MPTCP CI @ 2023-06-07 12:48 UTC (permalink / raw) To: Geliang Tang; +Cc: mptcp Hi Geliang, Thank you for your modifications, that's great! Our CI did some validations and here is its report: - KVM Validation: normal (except selftest_mptcp_join): - Success! ✅: - Task: https://cirrus-ci.com/task/4820643485581312 - Summary: https://api.cirrus-ci.com/v1/artifact/task/4820643485581312/summary/summary.txt - KVM Validation: debug (except selftest_mptcp_join): - Success! ✅: - Task: https://cirrus-ci.com/task/5383593439002624 - Summary: https://api.cirrus-ci.com/v1/artifact/task/5383593439002624/summary/summary.txt - KVM Validation: normal (only selftest_mptcp_join): - Success! ✅: - Task: https://cirrus-ci.com/task/5946543392423936 - Summary: https://api.cirrus-ci.com/v1/artifact/task/5946543392423936/summary/summary.txt - KVM Validation: debug (only selftest_mptcp_join): - Success! ✅: - Task: https://cirrus-ci.com/task/6509493345845248 - Summary: https://api.cirrus-ci.com/v1/artifact/task/6509493345845248/summary/summary.txt Initiator: Patchew Applier Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/07e42421acf3 If there are some issues, you can reproduce them using the same environment as the one used by the CI thanks to a docker image, e.g.: $ cd [kernel source code] $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \ --pull always mptcp/mptcp-upstream-virtme-docker:latest \ auto-debug For more details: https://github.com/multipath-tcp/mptcp-upstream-virtme-docker Please note that despite all the efforts that have been already done to have a stable tests suite when executed on a public CI like here, it is possible some reported issues are not due to your modifications. Still, do not hesitate to help us improve that ;-) Cheers, MPTCP GH Action bot Bot operated by Matthieu Baerts (Tessares) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer 2023-06-07 11:44 ` [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer Geliang Tang 2023-06-07 12:48 ` selftests: mptcp: set endpoint out of transfer: Tests Results MPTCP CI @ 2023-06-09 15:31 ` Matthieu Baerts 1 sibling, 0 replies; 13+ messages in thread From: Matthieu Baerts @ 2023-06-09 15:31 UTC (permalink / raw) To: Geliang Tang, Paolo Abeni; +Cc: mptcp Hi Geliang, Paolo, On 07/06/2023 13:44, Geliang Tang wrote: > This patch moves endpoint settings out of do_transfer() into a new > function pm_nl_set_endpoint(), then addr_nr_ns1 and addr_nr_ns2 > arguments can be removed for do_transfer() and run_tests(). I still have the same questions as on v15: Why did you switch from slow to speed_10 here? (see below for more questions) Does it mean that this selftest will be even slower than before? (Maybe it is a good opportunity to switch to key/value instead of positional parameters? I know that Paolo was interested by that at some points) speed=speed_10 sfflags=nobackup,nofullmesh wait_join=1 \ run_tests_bg $ns1 $ns2 10.0.1.1 Cheers, Matt -- Tessares | Belgium | Hybrid Access Solutions www.tessares.net ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 2023-06-07 11:44 [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Geliang Tang ` (6 preceding siblings ...) 2023-06-07 11:44 ` [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer Geliang Tang @ 2023-06-09 15:30 ` Matthieu Baerts 7 siblings, 0 replies; 13+ messages in thread From: Matthieu Baerts @ 2023-06-09 15:30 UTC (permalink / raw) To: Geliang Tang, Paolo Abeni; +Cc: mptcp Hi Geliang, Paolo, On 07/06/2023 13:44, Geliang Tang wrote: > v17: > - rebased on export/20230607T094151 > > v16: > - address Matt's comments in v15. > - the last two patches in v15 is deponed on "selftests: mptcp: skip > tests when features are not supported", split them into a new series. > - this series have no conflect with "selftests: mptcp: skip tests when > features are not supported" now. Thank you for the new version! I have a few questions if you don't mind, please see the individual patches. There is also a question for Paolo on patch 7/7 if you don't mind :) Cheers, Matt -- Tessares | Belgium | Hybrid Access Solutions www.tessares.net ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-06-09 15:31 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-06-07 11:44 [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 2/7] selftests: mptcp: test userspace pm out of transfer Geliang Tang 2023-06-09 15:31 ` Matthieu Baerts 2023-06-07 11:44 ` [PATCH mptcp-next v17 3/7] selftests: mptcp: check subflows infos Geliang Tang 2023-06-09 15:31 ` Matthieu Baerts 2023-06-07 11:44 ` [PATCH mptcp-next v17 4/7] selftests: mptcp: check add_addr infos Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 5/7] selftests: mptcp: add pm_nl_set_endpoint helper Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 6/7] selftests: mptcp: pass fastclose to sflags Geliang Tang 2023-06-07 11:44 ` [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer Geliang Tang 2023-06-07 12:48 ` selftests: mptcp: set endpoint out of transfer: Tests Results MPTCP CI 2023-06-09 15:31 ` [PATCH mptcp-next v17 7/7] selftests: mptcp: set endpoint out of transfer Matthieu Baerts 2023-06-09 15:30 ` [PATCH mptcp-next v17 0/7] update userspace pm mptcp_info fields part 2 Matthieu Baerts
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).