From: Geliang Tang <geliang.tang@suse.com>
To: Mat Martineau <martineau@kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
netdev@vger.kernel.org, mptcp@lists.linux.dev
Subject: Re: [PATCH net-next v2 11/15] selftests: mptcp: add mptcp_lib_get_counter
Date: Wed, 15 Nov 2023 06:03:58 +0800 [thread overview]
Message-ID: <20231114220358.GA3995@bogon> (raw)
In-Reply-To: <20231114-send-net-next-2023107-v2-11-b650a477362c@kernel.org>
On Tue, Nov 14, 2023 at 11:56:53AM -0800, Mat Martineau wrote:
> From: Geliang Tang <geliang.tang@suse.com>
>
> To avoid duplicated code in different MPTCP selftests, we can add
> and use helpers defined in mptcp_lib.sh.
>
> The helper get_counter() in mptcp_join.sh and get_mib_counter() in
> mptcp_connect.sh have the same functionality, export get_counter() into
> mptcp_lib.sh and rename it as mptcp_lib_get_counter(). Use this new
> helper instead of get_counter() and get_mib_counter().
>
> Reviewed-by: Matthieu Baerts <matttbe@kernel.org>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> Signed-off-by: Mat Martineau <martineau@kernel.org>
> ---
> tools/testing/selftests/net/mptcp/mptcp_connect.sh | 41 ++++------
> tools/testing/selftests/net/mptcp/mptcp_join.sh | 88 +++++++++-------------
> tools/testing/selftests/net/mptcp/mptcp_lib.sh | 16 ++++
> 3 files changed, 65 insertions(+), 80 deletions(-)
Sorry Mat, this patch needs to be updated. A squash-to patch [1] has been
merged into it last week.
Thanks,
-Geliang
[1] https://patchwork.kernel.org/project/mptcp/patch/a345cc5ff04729307b7b5b3a26f81e4e653dbefb.1699408002.git.geliang.tang@suse.com/
>
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> index 4cf62b2b0480..3b971d1617d8 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> @@ -335,21 +335,6 @@ do_ping()
> return 0
> }
>
> -# $1: ns, $2: MIB counter
> -get_mib_counter()
> -{
> - local listener_ns="${1}"
> - local mib="${2}"
> -
> - # strip the header
> - ip netns exec "${listener_ns}" \
> - nstat -z -a "${mib}" | \
> - tail -n+2 | \
> - while read a count c rest; do
> - echo $count
> - done
> -}
> -
> # $1: ns, $2: port
> wait_local_port_listen()
> {
> @@ -435,12 +420,12 @@ do_transfer()
> nstat -n
> fi
>
> - local stat_synrx_last_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
> - local stat_ackrx_last_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
> - local stat_cookietx_last=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesSent")
> - local stat_cookierx_last=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesRecv")
> - local stat_csum_err_s=$(get_mib_counter "${listener_ns}" "MPTcpExtDataCsumErr")
> - local stat_csum_err_c=$(get_mib_counter "${connector_ns}" "MPTcpExtDataCsumErr")
> + local stat_synrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
> + local stat_ackrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
> + local stat_cookietx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
> + local stat_cookierx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
> + local stat_csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
> + local stat_csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
>
> timeout ${timeout_test} \
> ip netns exec ${listener_ns} \
> @@ -503,11 +488,11 @@ do_transfer()
> check_transfer $cin $sout "file received by server"
> rets=$?
>
> - local stat_synrx_now_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
> - local stat_ackrx_now_l=$(get_mib_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
> - local stat_cookietx_now=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesSent")
> - local stat_cookierx_now=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesRecv")
> - local stat_ooo_now=$(get_mib_counter "${listener_ns}" "TcpExtTCPOFOQueue")
> + local stat_synrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
> + local stat_ackrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
> + local stat_cookietx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
> + local stat_cookierx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
> + local stat_ooo_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtTCPOFOQueue")
>
> expect_synrx=$((stat_synrx_last_l))
> expect_ackrx=$((stat_ackrx_last_l))
> @@ -536,8 +521,8 @@ do_transfer()
> fi
>
> if $checksum; then
> - local csum_err_s=$(get_mib_counter "${listener_ns}" "MPTcpExtDataCsumErr")
> - local csum_err_c=$(get_mib_counter "${connector_ns}" "MPTcpExtDataCsumErr")
> + local csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
> + local csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
>
> local csum_err_s_nr=$((csum_err_s - stat_csum_err_s))
> if [ $csum_err_s_nr -gt 0 ]; then
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index 1f0a6c09e605..4cb6ca72f164 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -605,25 +605,9 @@ wait_local_port_listen()
> done
> }
>
> -# $1: ns ; $2: counter
> -get_counter()
> -{
> - local ns="${1}"
> - local counter="${2}"
> - local count
> -
> - count=$(ip netns exec ${ns} nstat -asz "${counter}" | awk 'NR==1 {next} {print $2}')
> - if [ -z "${count}" ]; then
> - mptcp_lib_fail_if_expected_feature "${counter} counter"
> - return 1
> - fi
> -
> - echo "${count}"
> -}
> -
> rm_addr_count()
> {
> - get_counter "${1}" "MPTcpExtRmAddr"
> + mptcp_lib_get_counter "${1}" "MPTcpExtRmAddr"
> }
>
> # $1: ns, $2: old rm_addr counter in $ns
> @@ -643,7 +627,7 @@ wait_rm_addr()
>
> rm_sf_count()
> {
> - get_counter "${1}" "MPTcpExtRmSubflow"
> + mptcp_lib_get_counter "${1}" "MPTcpExtRmSubflow"
> }
>
> # $1: ns, $2: old rm_sf counter in $ns
> @@ -666,11 +650,11 @@ wait_mpj()
> local ns="${1}"
> local cnt old_cnt
>
> - old_cnt=$(get_counter ${ns} "MPTcpExtMPJoinAckRx")
> + old_cnt=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx")
>
> local i
> for i in $(seq 10); do
> - cnt=$(get_counter ${ns} "MPTcpExtMPJoinAckRx")
> + cnt=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPJoinAckRx")
> [ "$cnt" = "${old_cnt}" ] || break
> sleep 0.1
> done
> @@ -1272,7 +1256,7 @@ chk_csum_nr()
> fi
>
> print_check "sum"
> - count=$(get_counter ${ns1} "MPTcpExtDataCsumErr")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtDataCsumErr")
> if [ "$count" != "$csum_ns1" ]; then
> extra_msg="$extra_msg ns1=$count"
> fi
> @@ -1285,7 +1269,7 @@ chk_csum_nr()
> print_ok
> fi
> print_check "csum"
> - count=$(get_counter ${ns2} "MPTcpExtDataCsumErr")
> + count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtDataCsumErr")
> if [ "$count" != "$csum_ns2" ]; then
> extra_msg="$extra_msg ns2=$count"
> fi
> @@ -1329,7 +1313,7 @@ chk_fail_nr()
> fi
>
> print_check "ftx"
> - count=$(get_counter ${ns_tx} "MPTcpExtMPFailTx")
> + count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFailTx")
> if [ "$count" != "$fail_tx" ]; then
> extra_msg="$extra_msg,tx=$count"
> fi
> @@ -1343,7 +1327,7 @@ chk_fail_nr()
> fi
>
> print_check "failrx"
> - count=$(get_counter ${ns_rx} "MPTcpExtMPFailRx")
> + count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFailRx")
> if [ "$count" != "$fail_rx" ]; then
> extra_msg="$extra_msg,rx=$count"
> fi
> @@ -1376,7 +1360,7 @@ chk_fclose_nr()
> fi
>
> print_check "ctx"
> - count=$(get_counter ${ns_tx} "MPTcpExtMPFastcloseTx")
> + count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFastcloseTx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$fclose_tx" ]; then
> @@ -1387,7 +1371,7 @@ chk_fclose_nr()
> fi
>
> print_check "fclzrx"
> - count=$(get_counter ${ns_rx} "MPTcpExtMPFastcloseRx")
> + count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFastcloseRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$fclose_rx" ]; then
> @@ -1417,7 +1401,7 @@ chk_rst_nr()
> fi
>
> print_check "rtx"
> - count=$(get_counter ${ns_tx} "MPTcpExtMPRstTx")
> + count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPRstTx")
> if [ -z "$count" ]; then
> print_skip
> # accept more rst than expected except if we don't expect any
> @@ -1429,7 +1413,7 @@ chk_rst_nr()
> fi
>
> print_check "rstrx"
> - count=$(get_counter ${ns_rx} "MPTcpExtMPRstRx")
> + count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPRstRx")
> if [ -z "$count" ]; then
> print_skip
> # accept more rst than expected except if we don't expect any
> @@ -1450,7 +1434,7 @@ chk_infi_nr()
> local count
>
> print_check "itx"
> - count=$(get_counter ${ns2} "MPTcpExtInfiniteMapTx")
> + count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtInfiniteMapTx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$infi_tx" ]; then
> @@ -1460,7 +1444,7 @@ chk_infi_nr()
> fi
>
> print_check "infirx"
> - count=$(get_counter ${ns1} "MPTcpExtInfiniteMapRx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtInfiniteMapRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$infi_rx" ]; then
> @@ -1489,7 +1473,7 @@ chk_join_nr()
> fi
>
> print_check "syn"
> - count=$(get_counter ${ns1} "MPTcpExtMPJoinSynRx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinSynRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$syn_nr" ]; then
> @@ -1500,7 +1484,7 @@ chk_join_nr()
>
> print_check "synack"
> with_cookie=$(ip netns exec $ns2 sysctl -n net.ipv4.tcp_syncookies)
> - count=$(get_counter ${ns2} "MPTcpExtMPJoinSynAckRx")
> + count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinSynAckRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$syn_ack_nr" ]; then
> @@ -1517,7 +1501,7 @@ chk_join_nr()
> fi
>
> print_check "ack"
> - count=$(get_counter ${ns1} "MPTcpExtMPJoinAckRx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinAckRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$ack_nr" ]; then
> @@ -1550,8 +1534,8 @@ chk_stale_nr()
>
> print_check "stale"
>
> - stale_nr=$(get_counter ${ns} "MPTcpExtSubflowStale")
> - recover_nr=$(get_counter ${ns} "MPTcpExtSubflowRecover")
> + stale_nr=$(mptcp_lib_get_counter ${ns} "MPTcpExtSubflowStale")
> + recover_nr=$(mptcp_lib_get_counter ${ns} "MPTcpExtSubflowRecover")
> if [ -z "$stale_nr" ] || [ -z "$recover_nr" ]; then
> print_skip
> elif [ $stale_nr -lt $stale_min ] ||
> @@ -1588,7 +1572,7 @@ chk_add_nr()
> timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
>
> print_check "add"
> - count=$(get_counter ${ns2} "MPTcpExtAddAddr")
> + count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtAddAddr")
> if [ -z "$count" ]; then
> print_skip
> # if the test configured a short timeout tolerate greater then expected
> @@ -1600,7 +1584,7 @@ chk_add_nr()
> fi
>
> print_check "echo"
> - count=$(get_counter ${ns1} "MPTcpExtEchoAdd")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtEchoAdd")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$echo_nr" ]; then
> @@ -1611,7 +1595,7 @@ chk_add_nr()
>
> if [ $port_nr -gt 0 ]; then
> print_check "pt"
> - count=$(get_counter ${ns2} "MPTcpExtPortAdd")
> + count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtPortAdd")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$port_nr" ]; then
> @@ -1621,7 +1605,7 @@ chk_add_nr()
> fi
>
> print_check "syn"
> - count=$(get_counter ${ns1} "MPTcpExtMPJoinPortSynRx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortSynRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$syn_nr" ]; then
> @@ -1632,7 +1616,7 @@ chk_add_nr()
> fi
>
> print_check "synack"
> - count=$(get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx")
> + count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$syn_ack_nr" ]; then
> @@ -1643,7 +1627,7 @@ chk_add_nr()
> fi
>
> print_check "ack"
> - count=$(get_counter ${ns1} "MPTcpExtMPJoinPortAckRx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortAckRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$ack_nr" ]; then
> @@ -1654,7 +1638,7 @@ chk_add_nr()
> fi
>
> print_check "syn"
> - count=$(get_counter ${ns1} "MPTcpExtMismatchPortSynRx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortSynRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$mis_syn_nr" ]; then
> @@ -1665,7 +1649,7 @@ chk_add_nr()
> fi
>
> print_check "ack"
> - count=$(get_counter ${ns1} "MPTcpExtMismatchPortAckRx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortAckRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$mis_ack_nr" ]; then
> @@ -1687,7 +1671,7 @@ chk_add_tx_nr()
> timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
>
> print_check "add TX"
> - count=$(get_counter ${ns1} "MPTcpExtAddAddrTx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtAddAddrTx")
> if [ -z "$count" ]; then
> print_skip
> # if the test configured a short timeout tolerate greater then expected
> @@ -1699,7 +1683,7 @@ chk_add_tx_nr()
> fi
>
> print_check "echo TX"
> - count=$(get_counter ${ns2} "MPTcpExtEchoAddTx")
> + count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtEchoAddTx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$echo_tx_nr" ]; then
> @@ -1737,7 +1721,7 @@ chk_rm_nr()
> fi
>
> print_check "rm"
> - count=$(get_counter ${addr_ns} "MPTcpExtRmAddr")
> + count=$(mptcp_lib_get_counter ${addr_ns} "MPTcpExtRmAddr")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$rm_addr_nr" ]; then
> @@ -1747,13 +1731,13 @@ chk_rm_nr()
> fi
>
> print_check "rmsf"
> - count=$(get_counter ${subflow_ns} "MPTcpExtRmSubflow")
> + count=$(mptcp_lib_get_counter ${subflow_ns} "MPTcpExtRmSubflow")
> if [ -z "$count" ]; then
> print_skip
> elif [ -n "$simult" ]; then
> local cnt suffix
>
> - cnt=$(get_counter ${addr_ns} "MPTcpExtRmSubflow")
> + cnt=$(mptcp_lib_get_counter ${addr_ns} "MPTcpExtRmSubflow")
>
> # in case of simult flush, the subflow removal count on each side is
> # unreliable
> @@ -1782,7 +1766,7 @@ chk_rm_tx_nr()
> local rm_addr_tx_nr=$1
>
> print_check "rm TX"
> - count=$(get_counter ${ns2} "MPTcpExtRmAddrTx")
> + count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtRmAddrTx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$rm_addr_tx_nr" ]; then
> @@ -1799,7 +1783,7 @@ chk_prio_nr()
> local count
>
> print_check "ptx"
> - count=$(get_counter ${ns1} "MPTcpExtMPPrioTx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPPrioTx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$mp_prio_nr_tx" ]; then
> @@ -1809,7 +1793,7 @@ chk_prio_nr()
> fi
>
> print_check "prx"
> - count=$(get_counter ${ns1} "MPTcpExtMPPrioRx")
> + count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPPrioRx")
> if [ -z "$count" ]; then
> print_skip
> elif [ "$count" != "$mp_prio_nr_rx" ]; then
> @@ -1942,7 +1926,7 @@ wait_attempt_fail()
> while [ $time -lt $timeout_ms ]; do
> local cnt
>
> - cnt=$(get_counter ${ns} "TcpAttemptFails")
> + cnt=$(mptcp_lib_get_counter ${ns} "TcpAttemptFails")
>
> [ "$cnt" = 1 ] && return 1
> time=$((time + 100))
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> index 447292cad33c..718c79dda2b3 100644
> --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> @@ -231,3 +231,19 @@ mptcp_lib_kill_wait() {
> mptcp_lib_is_v6() {
> [ -z "${1##*:*}" ]
> }
> +
> +# $1: ns, $2: MIB counter
> +mptcp_lib_get_counter() {
> + local ns="${1}"
> + local counter="${2}"
> + local count
> +
> + count=$(ip netns exec "${ns}" nstat -asz "${counter}" |
> + awk 'NR==1 {next} {print $2}')
> + if [ -z "${count}" ]; then
> + mptcp_lib_fail_if_expected_feature "${counter} counter"
> + return 1
> + fi
> +
> + echo "${count}"
> +}
>
> --
> 2.41.0
>
next prev parent reply other threads:[~2023-11-14 22:03 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-14 19:56 [PATCH net-next v2 00/15] mptcp: More selftest coverage and code cleanup for net-next Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 01/15] mptcp: add mptcpi_subflows_total counter Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 02/15] selftests: mptcp: add evts_get_info helper Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 03/15] selftests: mptcp: add chk_subflows_total helper Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 04/15] selftests: mptcp: update userspace pm test helpers Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 05/15] selftests: mptcp: userspace pm create id 0 subflow Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 06/15] mptcp: userspace pm rename remove_err to out Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 07/15] selftests: mptcp: userspace pm remove initial subflow Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 08/15] selftests: mptcp: userspace pm send RM_ADDR for ID 0 Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 09/15] selftests: mptcp: add mptcp_lib_kill_wait Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 10/15] selftests: mptcp: add mptcp_lib_is_v6 Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 11/15] selftests: mptcp: add mptcp_lib_get_counter Mat Martineau
2023-11-14 22:03 ` Geliang Tang [this message]
2023-11-14 19:56 ` [PATCH net-next v2 12/15] selftests: mptcp: add missing oflag=append Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 13/15] selftests: mptcp: add mptcp_lib_make_file Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 14/15] selftests: mptcp: add mptcp_lib_check_transfer Mat Martineau
2023-11-14 19:56 ` [PATCH net-next v2 15/15] selftests: mptcp: add mptcp_lib_wait_local_port_listen Mat Martineau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231114220358.GA3995@bogon \
--to=geliang.tang@suse.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=martineau@kernel.org \
--cc=mptcp@lists.linux.dev \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.