* [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, part 2
@ 2024-02-21 7:06 Geliang Tang
2024-02-21 7:06 ` [PATCH mptcp-next v3 1/3] selftests: mptcp: connect: add local variable rndh Geliang Tang
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Geliang Tang @ 2024-02-21 7:06 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
From: Geliang Tang <tanggeliang@kylinos.cn>
v3:
- patch #2, drop this line in mptcp_lib_ns_exit():
rm -f /tmp/"$netns".{nstat,out}
Depends on:
- dump for userspace pm, v14
Geliang Tang (3):
selftests: mptcp: connect: add local variable rndh
selftests: mptcp: add mptcp_lib_ns_* helpers
selftests: mptcp: add mptcp_lib_evts_* helpers
tools/testing/selftests/net/mptcp/diag.sh | 9 +--
.../selftests/net/mptcp/mptcp_connect.sh | 25 +++---
.../testing/selftests/net/mptcp/mptcp_join.sh | 27 ++-----
.../testing/selftests/net/mptcp/mptcp_lib.sh | 78 +++++++++++++++++++
.../selftests/net/mptcp/mptcp_sockopt.sh | 16 ++--
.../testing/selftests/net/mptcp/pm_netlink.sh | 9 +--
.../selftests/net/mptcp/simult_flows.sh | 16 ++--
.../selftests/net/mptcp/userspace_pm.sh | 42 +++-------
8 files changed, 122 insertions(+), 100 deletions(-)
--
2.40.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH mptcp-next v3 1/3] selftests: mptcp: connect: add local variable rndh
2024-02-21 7:06 [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, part 2 Geliang Tang
@ 2024-02-21 7:06 ` Geliang Tang
2024-02-21 12:15 ` Matthieu Baerts
2024-02-21 7:06 ` [PATCH mptcp-next v3 2/3] selftests: mptcp: add mptcp_lib_ns_* helpers Geliang Tang
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Geliang Tang @ 2024-02-21 7:06 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
From: Geliang Tang <tanggeliang@kylinos.cn>
This patch adds a local variable rndh in do_transfer(), setting it with
${connector_ns:4}, not the global variable rndh. The global one is hidden
in the next commit.
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index ea52110c3fbc..b609649311f6 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -348,6 +348,7 @@ do_transfer()
if $capture; then
local capuser
+ local rndh="${connector_ns:4}"
if [ -z $SUDO_USER ] ; then
capuser=""
else
--
2.40.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH mptcp-next v3 2/3] selftests: mptcp: add mptcp_lib_ns_* helpers
2024-02-21 7:06 [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, part 2 Geliang Tang
2024-02-21 7:06 ` [PATCH mptcp-next v3 1/3] selftests: mptcp: connect: add local variable rndh Geliang Tang
@ 2024-02-21 7:06 ` Geliang Tang
2024-02-21 12:16 ` Matthieu Baerts
2024-02-21 7:06 ` [PATCH mptcp-next v3 3/3] selftests: mptcp: add mptcp_lib_evts_* helpers Geliang Tang
2024-02-21 12:14 ` [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, part 2 Matthieu Baerts
3 siblings, 1 reply; 9+ messages in thread
From: Geliang Tang @ 2024-02-21 7:06 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
From: Geliang Tang <tanggeliang@kylinos.cn>
Add helpers mptcp_lib_ns_init() and mptcp_lib_ns_exit() in mptcp_lib.sh to
initialize and delete the given namespaces. Then every test script can
invoke these helpers and use all namespaces.
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
tools/testing/selftests/net/mptcp/diag.sh | 9 +++----
.../selftests/net/mptcp/mptcp_connect.sh | 24 +++++++------------
.../testing/selftests/net/mptcp/mptcp_join.sh | 11 ++-------
.../testing/selftests/net/mptcp/mptcp_lib.sh | 23 ++++++++++++++++++
.../selftests/net/mptcp/mptcp_sockopt.sh | 16 ++++---------
.../testing/selftests/net/mptcp/pm_netlink.sh | 9 +++----
.../selftests/net/mptcp/simult_flows.sh | 16 ++++---------
.../selftests/net/mptcp/userspace_pm.sh | 14 ++++-------
8 files changed, 54 insertions(+), 68 deletions(-)
diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/selftests/net/mptcp/diag.sh
index 60a7009ce1b5..162d7b90c3f5 100755
--- a/tools/testing/selftests/net/mptcp/diag.sh
+++ b/tools/testing/selftests/net/mptcp/diag.sh
@@ -3,9 +3,8 @@
. "$(dirname "${0}")/mptcp_lib.sh"
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns="ns1-$rndh"
+ns=""
+mptcp_lib_ns_init ns
ksft_skip=4
test_cnt=1
timeout_poll=30
@@ -30,7 +29,7 @@ cleanup()
{
ip netns pids "${ns}" | xargs --no-run-if-empty kill -SIGKILL &>/dev/null
- ip netns del $ns
+ mptcp_lib_ns_exit "${ns}"
}
mptcp_lib_check_mptcp
@@ -205,8 +204,6 @@ wait_connected()
}
trap cleanup EXIT
-ip netns add $ns
-ip -n $ns link set dev lo up
echo "a" | \
timeout ${timeout_test} \
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index b609649311f6..6900f7f4d88d 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -121,12 +121,11 @@ while getopts "$optstring" option;do
esac
done
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
-ns2="ns2-$rndh"
-ns3="ns3-$rndh"
-ns4="ns4-$rndh"
+ns1=""
+ns2=""
+ns3=""
+ns4=""
+mptcp_lib_ns_init ns1 ns2 ns3 ns4
TEST_COUNT=0
TEST_GROUP=""
@@ -140,9 +139,9 @@ cleanup()
local netns
for netns in "$ns1" "$ns2" "$ns3" "$ns4";do
- ip netns del $netns
rm -f /tmp/$netns.{nstat,out}
done
+ mptcp_lib_ns_exit "${ns1}" "${ns2}" "${ns3}" "${ns4}"
}
mptcp_lib_check_mptcp
@@ -158,11 +157,6 @@ cin_disconnect="$cin".disconnect
cout_disconnect="$cout".disconnect
trap cleanup EXIT
-for i in "$ns1" "$ns2" "$ns3" "$ns4";do
- ip netns add $i || exit $ksft_skip
- ip -net $i link set lo up
-done
-
# "$ns1" ns2 ns3 ns4
# ns1eth2 ns2eth1 ns2eth3 ns3eth2 ns3eth4 ns4eth3
# - drop 1% -> reorder 25%
@@ -251,8 +245,8 @@ fi
check_mptcp_disabled()
{
- local disabled_ns="ns_disabled-$rndh"
- ip netns add ${disabled_ns} || exit $ksft_skip
+ local disabled_ns=""
+ mptcp_lib_ns_init disabled_ns
# net.mptcp.enabled should be enabled by default
if [ "$(ip netns exec ${disabled_ns} sysctl net.mptcp.enabled | awk '{ print $3 }')" -ne 1 ]; then
@@ -266,7 +260,7 @@ check_mptcp_disabled()
local err=0
LC_ALL=C ip netns exec ${disabled_ns} ./mptcp_connect -p 10000 -s MPTCP 127.0.0.1 < "$cin" 2>&1 | \
grep -q "^socket: Protocol not available$" && err=1
- ip netns delete ${disabled_ns}
+ mptcp_lib_ns_exit "${disabled_ns}"
if [ ${err} -eq 0 ]; then
echo -e "New MPTCP socket cannot be blocked via sysctl\t\t[ FAIL ]"
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 9f1476f0e2ae..bea7627c7313 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -86,17 +86,10 @@ init_partial()
{
capout=$(mktemp)
- local sec rndh
- sec=$(date +%s)
- rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-
- ns1="ns1-$rndh"
- ns2="ns2-$rndh"
+ mptcp_lib_ns_init ns1 ns2
local netns
for netns in "$ns1" "$ns2"; do
- ip netns add $netns || exit $ksft_skip
- ip -net $netns link set lo up
ip netns exec $netns sysctl -q net.mptcp.enabled=1
ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=0
@@ -147,9 +140,9 @@ cleanup_partial()
local netns
for netns in "$ns1" "$ns2"; do
- ip netns del $netns
rm -f /tmp/$netns.{nstat,out}
done
+ mptcp_lib_ns_exit "${ns1}" "${ns2}"
}
init() {
diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
index 556a7d9784d7..14c0b97a153e 100644
--- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
@@ -373,3 +373,26 @@ mptcp_lib_check_output() {
return 1
fi
}
+
+mptcp_lib_ns_init() {
+ local sec
+ local rndh=""
+
+ sec=$(date +%s)
+ rndh=$(printf %x "$sec")-$(mktemp -u XXXXXX)
+
+ local netns
+ for netns in "${@}"; do
+ eval "${netns}=${netns}-${rndh}"
+
+ ip netns add "${!netns}" || exit ${KSFT_SKIP}
+ ip -net "${!netns}" link set lo up
+ done
+}
+
+mptcp_lib_ns_exit() {
+ local netns
+ for netns in "${@}"; do
+ ip netns del "$netns"
+ done
+}
diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
index fd7de1b3dc55..58bf83d4e7fa 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
@@ -14,11 +14,10 @@ timeout_test=$((timeout_poll * 2 + 1))
iptables="iptables"
ip6tables="ip6tables"
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
-ns2="ns2-$rndh"
-ns_sbox="ns_sbox-$rndh"
+ns1=""
+ns2=""
+ns_sbox=""
+mptcp_lib_ns_init ns1 ns2 ns_sbox
add_mark_rules()
{
@@ -42,8 +41,6 @@ init()
{
local netns
for netns in "$ns1" "$ns2" "$ns_sbox";do
- ip netns add $netns || exit $ksft_skip
- ip -net $netns link set lo up
ip netns exec $netns sysctl -q net.mptcp.enabled=1
ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=0
ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=0
@@ -79,10 +76,7 @@ init()
cleanup()
{
- local netns
- for netns in "$ns1" "$ns2" "$ns_sbox"; do
- ip netns del $netns
- done
+ mptcp_lib_ns_exit "${ns1}" "${ns2}" "${ns_sbox}"
rm -f "$cin" "$cout"
rm -f "$sin" "$sout"
}
diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testing/selftests/net/mptcp/pm_netlink.sh
index 1ec9d8622fc9..c117eea92b6a 100755
--- a/tools/testing/selftests/net/mptcp/pm_netlink.sh
+++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh
@@ -24,15 +24,14 @@ while getopts "$optstring" option;do
esac
done
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
+ns1=""
+mptcp_lib_ns_init ns1
err=$(mktemp)
cleanup()
{
rm -f $err
- ip netns del $ns1
+ mptcp_lib_ns_exit "${ns1}"
}
mptcp_lib_check_mptcp
@@ -40,8 +39,6 @@ mptcp_lib_check_tools ip
trap cleanup EXIT
-ip netns add $ns1 || exit $ksft_skip
-ip -net $ns1 link set lo up
ip netns exec $ns1 sysctl -q net.mptcp.enabled=1
check()
diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/selftests/net/mptcp/simult_flows.sh
index 7d8388ecc966..67cddd40f211 100755
--- a/tools/testing/selftests/net/mptcp/simult_flows.sh
+++ b/tools/testing/selftests/net/mptcp/simult_flows.sh
@@ -3,11 +3,10 @@
. "$(dirname "${0}")/mptcp_lib.sh"
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
-ns2="ns2-$rndh"
-ns3="ns3-$rndh"
+ns1=""
+ns2=""
+ns3=""
+mptcp_lib_ns_init ns1 ns2 ns3
capture=false
ksft_skip=4
timeout_poll=30
@@ -36,10 +35,7 @@ cleanup()
rm -f "$large" "$small"
rm -f "$capout"
- local netns
- for netns in "$ns1" "$ns2" "$ns3";do
- ip netns del $netns
- done
+ mptcp_lib_ns_exit "${ns1}" "${ns2}" "${ns3}"
}
mptcp_lib_check_mptcp
@@ -66,8 +62,6 @@ setup()
trap cleanup EXIT
for i in "$ns1" "$ns2" "$ns3";do
- ip netns add $i || exit $ksft_skip
- ip -net $i link set lo up
ip netns exec $i sysctl -q net.ipv4.conf.all.rp_filter=0
ip netns exec $i sysctl -q net.ipv4.conf.default.rp_filter=0
done
diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/selftests/net/mptcp/userspace_pm.sh
index 629fc5d0ecc5..10074709420a 100755
--- a/tools/testing/selftests/net/mptcp/userspace_pm.sh
+++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh
@@ -50,10 +50,9 @@ app6_port=50004
client_addr_id=${RANDOM:0:2}
server_addr_id=${RANDOM:0:2}
-sec=$(date +%s)
-rndh=$(printf %x "$sec")-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
-ns2="ns2-$rndh"
+ns1=""
+ns2=""
+mptcp_lib_ns_init ns1 ns2
ret=0
test_name=""
@@ -118,10 +117,7 @@ cleanup()
mptcp_lib_kill_wait $pid
done
- local netns
- for netns in "$ns1" "$ns2" ;do
- ip netns del "$netns"
- done
+ mptcp_lib_ns_exit "${ns1}" "${ns2}"
rm -rf $file $client_evts $server_evts
@@ -132,8 +128,6 @@ trap cleanup EXIT
# Create and configure network namespaces for testing
for i in "$ns1" "$ns2" ;do
- ip netns add "$i" || exit 1
- ip -net "$i" link set lo up
ip netns exec "$i" sysctl -q net.mptcp.enabled=1
ip netns exec "$i" sysctl -q net.mptcp.pm_type=1
done
--
2.40.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH mptcp-next v3 3/3] selftests: mptcp: add mptcp_lib_evts_* helpers
2024-02-21 7:06 [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, part 2 Geliang Tang
2024-02-21 7:06 ` [PATCH mptcp-next v3 1/3] selftests: mptcp: connect: add local variable rndh Geliang Tang
2024-02-21 7:06 ` [PATCH mptcp-next v3 2/3] selftests: mptcp: add mptcp_lib_ns_* helpers Geliang Tang
@ 2024-02-21 7:06 ` Geliang Tang
2024-02-21 12:16 ` Matthieu Baerts
2024-02-21 14:54 ` selftests: mptcp: add mptcp_lib_evts_* helpers: Tests Results MPTCP CI
2024-02-21 12:14 ` [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, part 2 Matthieu Baerts
3 siblings, 2 replies; 9+ messages in thread
From: Geliang Tang @ 2024-02-21 7:06 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
From: Geliang Tang <tanggeliang@kylinos.cn>
To avoid duplicated code in different MPTCP selftests, we can add and
use helpers defined in mptcp_lib.sh.
This patch unifies "pm_nl_ctl events" related code in userspace_pm.sh
and mptcp_join.sh into four helpers: mptcp_lib_evts_init(), _start(),
_kill() and _remove(). Define them in mptcp_lib.sh and use these new
helpers in both scripts.
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
.../testing/selftests/net/mptcp/mptcp_join.sh | 16 ++----
.../testing/selftests/net/mptcp/mptcp_lib.sh | 55 +++++++++++++++++++
.../selftests/net/mptcp/userspace_pm.sh | 28 +++-------
3 files changed, 67 insertions(+), 32 deletions(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index bea7627c7313..006fefaf2e2a 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -158,8 +158,7 @@ init() {
cinsent=$(mktemp)
cout=$(mktemp)
err=$(mktemp)
- evts_ns1=$(mktemp)
- evts_ns2=$(mktemp)
+ mptcp_lib_evts_init evts_ns1 evts_ns2
trap cleanup EXIT
@@ -172,7 +171,7 @@ cleanup()
rm -f "$cin" "$cout" "$sinfail"
rm -f "$sin" "$sout" "$cinsent" "$cinfail"
rm -f "$tmpfile"
- rm -rf $evts_ns1 $evts_ns2
+ mptcp_lib_evts_remove "${evts_ns1}" "${evts_ns2}"
rm -f "$err"
cleanup_partial
}
@@ -437,12 +436,8 @@ reset_with_events()
{
reset "${1}" || return 1
- :> "$evts_ns1"
- :> "$evts_ns2"
- ip netns exec $ns1 ./pm_nl_ctl events >> "$evts_ns1" 2>&1 &
- evts_ns1_pid=$!
- ip netns exec $ns2 ./pm_nl_ctl events >> "$evts_ns2" 2>&1 &
- evts_ns2_pid=$!
+ mptcp_lib_evts_start "${ns1}" "${ns2}" "${evts_ns1}" "${evts_ns2}" \
+ evts_ns1_pid evts_ns2_pid
}
reset_with_tcp_filter()
@@ -614,8 +609,7 @@ wait_mpj()
kill_events_pids()
{
- mptcp_lib_kill_wait $evts_ns1_pid
- mptcp_lib_kill_wait $evts_ns2_pid
+ mptcp_lib_evts_kill evts_ns1_pid evts_ns2_pid
}
pm_nl_set_limits()
diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
index 14c0b97a153e..9573edb4efb1 100644
--- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
@@ -396,3 +396,58 @@ mptcp_lib_ns_exit() {
ip netns del "$netns"
done
}
+
+mptcp_lib_evts_init() {
+ local arg
+
+ for arg in "${@}"; do
+ declare -n evts="${arg}"
+
+ if [ -z "${evts}" ]; then
+ evts=$(mktemp)
+ fi
+ done
+}
+
+# $1 ns1, $2 ns2
+mptcp_lib_evts_start() {
+ local ns_1="${1}"
+ local ns_2="${2}"
+ local evts_1="${3}"
+ local evts_2="${4}"
+ declare -n pid_1="${5}"
+ declare -n pid_2="${6}"
+
+ :>"${evts_1}"
+ :>"${evts_2}"
+
+ if [ ${pid_1} -ne 0 ]; then
+ mptcp_lib_kill_wait "${pid_1}"
+ fi
+ ip netns exec "${ns_1}" ./pm_nl_ctl events >> "${evts_1}" 2>&1 &
+ pid_1=$!
+
+ if [ ${pid_2} -ne 0 ]; then
+ mptcp_lib_kill_wait "${pid_2}"
+ fi
+ ip netns exec "${ns_2}" ./pm_nl_ctl events >> "${evts_2}" 2>&1 &
+ pid_2=$!
+}
+
+mptcp_lib_evts_kill() {
+ declare -n pid_1="${1}"
+ declare -n pid_2="${2}"
+
+ mptcp_lib_kill_wait "${pid_1}"
+ mptcp_lib_kill_wait "${pid_2}"
+
+ pid_1=0
+ pid_2=0
+}
+
+mptcp_lib_evts_remove() {
+ local evts_1="${1}"
+ local evts_2="${2}"
+
+ rm -rf "${evts_1}" "${evts_2}"
+}
diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/selftests/net/mptcp/userspace_pm.sh
index 10074709420a..b6a03d96e786 100755
--- a/tools/testing/selftests/net/mptcp/userspace_pm.sh
+++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh
@@ -111,15 +111,16 @@ cleanup()
# Terminate the MPTCP connection and related processes
local pid
- for pid in $client4_pid $server4_pid $client6_pid $server6_pid\
- $server_evts_pid $client_evts_pid
+ for pid in $client4_pid $server4_pid $client6_pid $server6_pid
do
mptcp_lib_kill_wait $pid
done
+ mptcp_lib_evts_kill server_evts_pid client_evts_pid
mptcp_lib_ns_exit "${ns1}" "${ns2}"
- rm -rf $file $client_evts $server_evts
+ rm -rf $file
+ mptcp_lib_evts_remove "${server_evts}" "${client_evts}"
_printf "Done\n"
}
@@ -176,24 +177,9 @@ make_connection()
# Capture netlink events over the two network namespaces running
# the MPTCP client and server
- if [ -z "$client_evts" ]; then
- client_evts=$(mktemp)
- fi
- :>"$client_evts"
- if [ $client_evts_pid -ne 0 ]; then
- mptcp_lib_kill_wait $client_evts_pid
- fi
- ip netns exec "$ns2" ./pm_nl_ctl events >> "$client_evts" 2>&1 &
- client_evts_pid=$!
- if [ -z "$server_evts" ]; then
- server_evts=$(mktemp)
- fi
- :>"$server_evts"
- if [ $server_evts_pid -ne 0 ]; then
- mptcp_lib_kill_wait $server_evts_pid
- fi
- ip netns exec "$ns1" ./pm_nl_ctl events >> "$server_evts" 2>&1 &
- server_evts_pid=$!
+ mptcp_lib_evts_init server_evts client_evts
+ mptcp_lib_evts_start "${ns1}" "${ns2}" "${server_evts}" "${client_evts}" \
+ server_evts_pid client_evts_pid
sleep 0.5
# Run the server
--
2.40.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, part 2
2024-02-21 7:06 [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, part 2 Geliang Tang
` (2 preceding siblings ...)
2024-02-21 7:06 ` [PATCH mptcp-next v3 3/3] selftests: mptcp: add mptcp_lib_evts_* helpers Geliang Tang
@ 2024-02-21 12:14 ` Matthieu Baerts
3 siblings, 0 replies; 9+ messages in thread
From: Matthieu Baerts @ 2024-02-21 12:14 UTC (permalink / raw)
To: Geliang Tang, mptcp; +Cc: Geliang Tang
Hi Geliang,
On 21/02/2024 8:06 am, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
>
> v3:
> - patch #2, drop this line in mptcp_lib_ns_exit():
> rm -f /tmp/"$netns".{nstat,out}
Thank you for this new version. Please see my individual comments.
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH mptcp-next v3 1/3] selftests: mptcp: connect: add local variable rndh
2024-02-21 7:06 ` [PATCH mptcp-next v3 1/3] selftests: mptcp: connect: add local variable rndh Geliang Tang
@ 2024-02-21 12:15 ` Matthieu Baerts
0 siblings, 0 replies; 9+ messages in thread
From: Matthieu Baerts @ 2024-02-21 12:15 UTC (permalink / raw)
To: Geliang Tang, mptcp; +Cc: Geliang Tang
Hi Geliang,
On 21/02/2024 8:06 am, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
>
> This patch adds a local variable rndh in do_transfer(), setting it with
> ${connector_ns:4}, not the global variable rndh. The global one is hidden
> in the next commit.
Do you not need to do the same in simult_flows.sh?
If it is just these two modifications, and because you have other
behaviour changes in patch 2/3, maybe easier to squash that in patch 2/3
and add another note in the commit message?
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH mptcp-next v3 2/3] selftests: mptcp: add mptcp_lib_ns_* helpers
2024-02-21 7:06 ` [PATCH mptcp-next v3 2/3] selftests: mptcp: add mptcp_lib_ns_* helpers Geliang Tang
@ 2024-02-21 12:16 ` Matthieu Baerts
0 siblings, 0 replies; 9+ messages in thread
From: Matthieu Baerts @ 2024-02-21 12:16 UTC (permalink / raw)
To: Geliang Tang, mptcp; +Cc: Geliang Tang
Hi Geliang,
On 21/02/2024 8:06 am, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
>
> Add helpers mptcp_lib_ns_init() and mptcp_lib_ns_exit() in mptcp_lib.sh to
> initialize and delete the given namespaces. Then every test script can
> invoke these helpers and use all namespaces.
>
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> ---
> tools/testing/selftests/net/mptcp/diag.sh | 9 +++----
> .../selftests/net/mptcp/mptcp_connect.sh | 24 +++++++------------
> .../testing/selftests/net/mptcp/mptcp_join.sh | 11 ++-------
> .../testing/selftests/net/mptcp/mptcp_lib.sh | 23 ++++++++++++++++++
> .../selftests/net/mptcp/mptcp_sockopt.sh | 16 ++++---------
> .../testing/selftests/net/mptcp/pm_netlink.sh | 9 +++----
> .../selftests/net/mptcp/simult_flows.sh | 16 ++++---------
> .../selftests/net/mptcp/userspace_pm.sh | 14 ++++-------
> 8 files changed, 54 insertions(+), 68 deletions(-)
>
> diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/selftests/net/mptcp/diag.sh
> index 60a7009ce1b5..162d7b90c3f5 100755
> --- a/tools/testing/selftests/net/mptcp/diag.sh
> +++ b/tools/testing/selftests/net/mptcp/diag.sh
> @@ -3,9 +3,8 @@
>
> . "$(dirname "${0}")/mptcp_lib.sh"
>
> -sec=$(date +%s)
> -rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
> -ns="ns1-$rndh"
> +ns=""
> +mptcp_lib_ns_init ns
Please keep the init where the netns was created before: typically after
having declared the trap. Otherwise, the netns could be created, but not
cleaned in case of issues in between.
> ksft_skip=4
> test_cnt=1
> timeout_poll=30
(...)
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> index b609649311f6..6900f7f4d88d 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> @@ -121,12 +121,11 @@ while getopts "$optstring" option;do
> esac
> done
>
> -sec=$(date +%s)
> -rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
> -ns1="ns1-$rndh"
> -ns2="ns2-$rndh"
> -ns3="ns3-$rndh"
> -ns4="ns4-$rndh"
> +ns1=""
> +ns2=""
> +ns3=""
> +ns4=""
> +mptcp_lib_ns_init ns1 ns2 ns3 ns4
Same here: move it after the trap.
>
> TEST_COUNT=0
> TEST_GROUP=""
> @@ -140,9 +139,9 @@ cleanup()
>
> local netns
> for netns in "$ns1" "$ns2" "$ns3" "$ns4";do
> - ip netns del $netns
> rm -f /tmp/$netns.{nstat,out}
My previous comment was maybe not clear enough, sorry: for me, it is
fine to move this to 'mptcp_lib_ns_exit', just please clearly mention it
in the commit message as it is a behaviour change, e.g.
Note that 'mptcp_lib_ns_exit' now also try to remove temp netns files
used for the stats even for selftests not using them. That's fine to
do that because these files have a unique name.
> done
> + mptcp_lib_ns_exit "${ns1}" "${ns2}" "${ns3}" "${ns4}"
> }
>
> mptcp_lib_check_mptcp
(...)
> @@ -251,8 +245,8 @@ fi
>
> check_mptcp_disabled()
> {
> - local disabled_ns="ns_disabled-$rndh"
> - ip netns add ${disabled_ns} || exit $ksft_skip
> + local disabled_ns=""
(note that you don't need '=""', 'local disabled_ns' is enough ; but I'm
fine either ways, the result is the same)
> + mptcp_lib_ns_init disabled_ns
>
> # net.mptcp.enabled should be enabled by default
> if [ "$(ip netns exec ${disabled_ns} sysctl net.mptcp.enabled | awk '{ print $3 }')" -ne 1 ]; then
(...)
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index 9f1476f0e2ae..bea7627c7313 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -86,17 +86,10 @@ init_partial()
> {
> capout=$(mktemp)
>
> - local sec rndh
> - sec=$(date +%s)
> - rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
> -
> - ns1="ns1-$rndh"
> - ns2="ns2-$rndh"
> + mptcp_lib_ns_init ns1 ns2
>
> local netns
> for netns in "$ns1" "$ns2"; do
> - ip netns add $netns || exit $ksft_skip
> - ip -net $netns link set lo up
> ip netns exec $netns sysctl -q net.mptcp.enabled=1
> ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
> ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=0
Same here, I'm fine to move this in 'mptcp_lib_ns_init' as long as it is
documented in the commit message to explain that "it is fine to do that
everywhere, because (...)".
(...)
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> index 556a7d9784d7..14c0b97a153e 100644
> --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> @@ -373,3 +373,26 @@ mptcp_lib_check_output() {
> return 1
> fi
> }
> +
> +mptcp_lib_ns_init() {
> + local sec
> + local rndh=""
(detail: same here, it is enough to have 'local rndh' without '=""')
> +
> + sec=$(date +%s)
> + rndh=$(printf %x "$sec")-$(mktemp -u XXXXXX)
> +
> + local netns
> + for netns in "${@}"; do
> + eval "${netns}=${netns}-${rndh}"
> +
> + ip netns add "${!netns}" || exit ${KSFT_SKIP}
> + ip -net "${!netns}" link set lo up
> + done
> +}
> +
> +mptcp_lib_ns_exit() {
> + local netns
> + for netns in "${@}"; do
> + ip netns del "$netns"
> + done
> +}
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
> index fd7de1b3dc55..58bf83d4e7fa 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
> @@ -14,11 +14,10 @@ timeout_test=$((timeout_poll * 2 + 1))
> iptables="iptables"
> ip6tables="ip6tables"
>
> -sec=$(date +%s)
> -rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
> -ns1="ns1-$rndh"
> -ns2="ns2-$rndh"
> -ns_sbox="ns_sbox-$rndh"
> +ns1=""
> +ns2=""
> +ns_sbox=""
> +mptcp_lib_ns_init ns1 ns2 ns_sbox
Same here: move it to the 'init()' function, where it was done
> add_mark_rules()
> {
> @@ -42,8 +41,6 @@ init()
> {
> local netns
> for netns in "$ns1" "$ns2" "$ns_sbox";do
> - ip netns add $netns || exit $ksft_skip
> - ip -net $netns link set lo up
> ip netns exec $netns sysctl -q net.mptcp.enabled=1
> ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=0
> ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=0
> @@ -79,10 +76,7 @@ init()
>
> cleanup()
> {
> - local netns
> - for netns in "$ns1" "$ns2" "$ns_sbox"; do
> - ip netns del $netns
> - done
> + mptcp_lib_ns_exit "${ns1}" "${ns2}" "${ns_sbox}"
> rm -f "$cin" "$cout"
> rm -f "$sin" "$sout"
> }
> diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testing/selftests/net/mptcp/pm_netlink.sh
> index 1ec9d8622fc9..c117eea92b6a 100755
> --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh
> +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh
> @@ -24,15 +24,14 @@ while getopts "$optstring" option;do
> esac
> done
>
> -sec=$(date +%s)
> -rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
> -ns1="ns1-$rndh"
> +ns1=""
> +mptcp_lib_ns_init ns1
Same here: move it after the trap.
> err=$(mktemp)
>
> cleanup()
> {
> rm -f $err
> - ip netns del $ns1
> + mptcp_lib_ns_exit "${ns1}"
> }
>
> mptcp_lib_check_mptcp
> @@ -40,8 +39,6 @@ mptcp_lib_check_tools ip
>
> trap cleanup EXIT
>
> -ip netns add $ns1 || exit $ksft_skip
> -ip -net $ns1 link set lo up
> ip netns exec $ns1 sysctl -q net.mptcp.enabled=1
>
> check()
> diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/selftests/net/mptcp/simult_flows.sh
> index 7d8388ecc966..67cddd40f211 100755
> --- a/tools/testing/selftests/net/mptcp/simult_flows.sh
> +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh
> @@ -3,11 +3,10 @@
>
> . "$(dirname "${0}")/mptcp_lib.sh"
>
> -sec=$(date +%s)
> -rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
> -ns1="ns1-$rndh"
> -ns2="ns2-$rndh"
> -ns3="ns3-$rndh"
> +ns1=""
> +ns2=""
> +ns3=""
> +mptcp_lib_ns_init ns1 ns2 ns3
Same here: move it after the trap.
> capture=false
> ksft_skip=4
> timeout_poll=30
> @@ -36,10 +35,7 @@ cleanup()
> rm -f "$large" "$small"
> rm -f "$capout"
>
> - local netns
> - for netns in "$ns1" "$ns2" "$ns3";do
> - ip netns del $netns
> - done
> + mptcp_lib_ns_exit "${ns1}" "${ns2}" "${ns3}"
> }
>
> mptcp_lib_check_mptcp
> @@ -66,8 +62,6 @@ setup()
> trap cleanup EXIT
>
> for i in "$ns1" "$ns2" "$ns3";do
> - ip netns add $i || exit $ksft_skip
> - ip -net $i link set lo up
> ip netns exec $i sysctl -q net.ipv4.conf.all.rp_filter=0
> ip netns exec $i sysctl -q net.ipv4.conf.default.rp_filter=0
> done
> diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/selftests/net/mptcp/userspace_pm.sh
> index 629fc5d0ecc5..10074709420a 100755
> --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh
> +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh
> @@ -50,10 +50,9 @@ app6_port=50004
> client_addr_id=${RANDOM:0:2}
> server_addr_id=${RANDOM:0:2}
>
> -sec=$(date +%s)
> -rndh=$(printf %x "$sec")-$(mktemp -u XXXXXX)
> -ns1="ns1-$rndh"
> -ns2="ns2-$rndh"
> +ns1=""
> +ns2=""
> +mptcp_lib_ns_init ns1 ns2
Same here: move it after the trap.
> ret=0
> test_name=""
>
> @@ -118,10 +117,7 @@ cleanup()
> mptcp_lib_kill_wait $pid
> done
>
> - local netns
> - for netns in "$ns1" "$ns2" ;do
> - ip netns del "$netns"
> - done
> + mptcp_lib_ns_exit "${ns1}" "${ns2}"
>
> rm -rf $file $client_evts $server_evts
>
> @@ -132,8 +128,6 @@ trap cleanup EXIT
>
> # Create and configure network namespaces for testing
> for i in "$ns1" "$ns2" ;do
> - ip netns add "$i" || exit 1
> - ip -net "$i" link set lo up
> ip netns exec "$i" sysctl -q net.mptcp.enabled=1
> ip netns exec "$i" sysctl -q net.mptcp.pm_type=1
> done
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH mptcp-next v3 3/3] selftests: mptcp: add mptcp_lib_evts_* helpers
2024-02-21 7:06 ` [PATCH mptcp-next v3 3/3] selftests: mptcp: add mptcp_lib_evts_* helpers Geliang Tang
@ 2024-02-21 12:16 ` Matthieu Baerts
2024-02-21 14:54 ` selftests: mptcp: add mptcp_lib_evts_* helpers: Tests Results MPTCP CI
1 sibling, 0 replies; 9+ messages in thread
From: Matthieu Baerts @ 2024-02-21 12:16 UTC (permalink / raw)
To: Geliang Tang, mptcp; +Cc: Geliang Tang
Hi Geliang,
On 21/02/2024 8:06 am, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
>
> To avoid duplicated code in different MPTCP selftests, we can add and
> use helpers defined in mptcp_lib.sh.
>
> This patch unifies "pm_nl_ctl events" related code in userspace_pm.sh
> and mptcp_join.sh into four helpers: mptcp_lib_evts_init(), _start(),
> _kill() and _remove(). Define them in mptcp_lib.sh and use these new
> helpers in both scripts.
>
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> ---
> .../testing/selftests/net/mptcp/mptcp_join.sh | 16 ++----
> .../testing/selftests/net/mptcp/mptcp_lib.sh | 55 +++++++++++++++++++
> .../selftests/net/mptcp/userspace_pm.sh | 28 +++-------
> 3 files changed, 67 insertions(+), 32 deletions(-)
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index bea7627c7313..006fefaf2e2a 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -158,8 +158,7 @@ init() {
> cinsent=$(mktemp)
> cout=$(mktemp)
> err=$(mktemp)
> - evts_ns1=$(mktemp)
> - evts_ns2=$(mktemp)
> + mptcp_lib_evts_init evts_ns1 evts_ns2
Maybe easier to keep this unchanged? All you do in the lib is:
<var>=$(mktemp)
Same for the mptcp_lib_evts_remove -- just a 'rm' -- and
mptcp_lib_evts_kill -- just calling mptcp_lib_kill_wait.
Or do you see other advantages?
> trap cleanup EXIT
>
(...)
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> index 14c0b97a153e..9573edb4efb1 100644
> --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> @@ -396,3 +396,58 @@ mptcp_lib_ns_exit() {
> ip netns del "$netns"
> done
> }
> +
> +mptcp_lib_evts_init() {
> + local arg
> +
> + for arg in "${@}"; do
> + declare -n evts="${arg}"
> +
> + if [ -z "${evts}" ]; then
> + evts=$(mktemp)
> + fi
> + done
> +}
(see above, maybe we don't need this helper?)
> +
> +# $1 ns1, $2 ns2
> +mptcp_lib_evts_start() {
> + local ns_1="${1}"
> + local ns_2="${2}"
> + local evts_1="${3}"
> + local evts_2="${4}"
> + declare -n pid_1="${5}"
> + declare -n pid_2="${6}"
(or use ${!pid_1} as in mptcp_lib_ns_init -- or we use 'declare -n'
there too, just for consistency)
(I hope 'declare -n' will respect the 'local' scope, but I guess yes)
> +
> + :>"${evts_1}"
> + :>"${evts_2}"
> +
> + if [ ${pid_1} -ne 0 ]; then
> + mptcp_lib_kill_wait "${pid_1}"
> + fi
> + ip netns exec "${ns_1}" ./pm_nl_ctl events >> "${evts_1}" 2>&1 &
> + pid_1=$!
> +
> + if [ ${pid_2} -ne 0 ]; then
> + mptcp_lib_kill_wait "${pid_2}"
> + fi
> + ip netns exec "${ns_2}" ./pm_nl_ctl events >> "${evts_2}" 2>&1 &
> + pid_2=$!
> +}
> +
> +mptcp_lib_evts_kill() {
> + declare -n pid_1="${1}"
> + declare -n pid_2="${2}"
> +
> + mptcp_lib_kill_wait "${pid_1}"
> + mptcp_lib_kill_wait "${pid_2}"
> +
> + pid_1=0
> + pid_2=0
This was not done before, do you need that?
(but see above, maybe we don't need this helper, and the one below)
> +}
> +
> +mptcp_lib_evts_remove() {
> + local evts_1="${1}"
> + local evts_2="${2}"
> +
> + rm -rf "${evts_1}" "${evts_2}"
> +}
(...)
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: selftests: mptcp: add mptcp_lib_evts_* helpers: Tests Results
2024-02-21 7:06 ` [PATCH mptcp-next v3 3/3] selftests: mptcp: add mptcp_lib_evts_* helpers Geliang Tang
2024-02-21 12:16 ` Matthieu Baerts
@ 2024-02-21 14:54 ` MPTCP CI
1 sibling, 0 replies; 9+ messages in thread
From: MPTCP CI @ 2024-02-21 14:54 UTC (permalink / raw)
To: Geliang Tang; +Cc: mptcp
Hi Geliang,
Thank you for your modifications, that's great!
Our CI (GitHub Action) did some validations and here is its report:
- KVM Validation: normal:
- Unstable: 2 failed test(s): packetdrill_regressions selftest_mptcp_join 🔴:
- Task: https://github.com/multipath-tcp/mptcp_net-next/actions/runs/7990465311
Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/dc43d4035da0
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-normal
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 (NGI0 Core)
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-02-21 14:54 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-21 7:06 [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, part 2 Geliang Tang
2024-02-21 7:06 ` [PATCH mptcp-next v3 1/3] selftests: mptcp: connect: add local variable rndh Geliang Tang
2024-02-21 12:15 ` Matthieu Baerts
2024-02-21 7:06 ` [PATCH mptcp-next v3 2/3] selftests: mptcp: add mptcp_lib_ns_* helpers Geliang Tang
2024-02-21 12:16 ` Matthieu Baerts
2024-02-21 7:06 ` [PATCH mptcp-next v3 3/3] selftests: mptcp: add mptcp_lib_evts_* helpers Geliang Tang
2024-02-21 12:16 ` Matthieu Baerts
2024-02-21 14:54 ` selftests: mptcp: add mptcp_lib_evts_* helpers: Tests Results MPTCP CI
2024-02-21 12:14 ` [PATCH mptcp-next v3 0/3] add helpers and vars in mptcp_lib.sh, 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