All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* FAILED: patch "[PATCH] mptcp: don't account accept() of non-MPC client as fallback" failed to apply to 6.6-stable tree
@ 2024-04-05  6:29 gregkh
  2024-04-05 15:36 ` [PATCH 6.6.y 0/5] Backport "mptcp: don't account accept() of non-MPC client as fallback to TCP" Matthieu Baerts (NGI0)
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: gregkh @ 2024-04-05  6:29 UTC (permalink / raw
  To: dcaratti, cpaasch, kuba, martineau, matttbe; +Cc: stable


The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x 7a1b3490f47e88ec4cbde65f1a77a0f4bc972282
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable@vger.kernel.org>' --in-reply-to '2024040520-unselect-antitrust-a41b@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..

Possible dependencies:



thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 7a1b3490f47e88ec4cbde65f1a77a0f4bc972282 Mon Sep 17 00:00:00 2001
From: Davide Caratti <dcaratti@redhat.com>
Date: Fri, 29 Mar 2024 13:08:52 +0100
Subject: [PATCH] mptcp: don't account accept() of non-MPC client as fallback
 to TCP

Current MPTCP servers increment MPTcpExtMPCapableFallbackACK when they
accept non-MPC connections. As reported by Christoph, this is "surprising"
because the counter might become greater than MPTcpExtMPCapableSYNRX.

MPTcpExtMPCapableFallbackACK counter's name suggests it should only be
incremented when a connection was seen using MPTCP options, then a
fallback to TCP has been done. Let's do that by incrementing it when
the subflow context of an inbound MPC connection attempt is dropped.
Also, update mptcp_connect.sh kselftest, to ensure that the
above MIB does not increment in case a pure TCP client connects to a
MPTCP server.

Fixes: fc518953bc9c ("mptcp: add and use MIB counter infrastructure")
Cc: stable@vger.kernel.org
Reported-by: Christoph Paasch <cpaasch@apple.com>
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/449
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://lore.kernel.org/r/20240329-upstream-net-20240329-fallback-mib-v1-1-324a8981da48@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 3a1967bc7bad..7e74b812e366 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -3937,8 +3937,6 @@ static int mptcp_stream_accept(struct socket *sock, struct socket *newsock,
 				mptcp_set_state(newsk, TCP_CLOSE);
 		}
 	} else {
-		MPTCP_INC_STATS(sock_net(ssk),
-				MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK);
 tcpfallback:
 		newsk->sk_kern_sock = kern;
 		lock_sock(newsk);
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index 1626dd20c68f..6042a47da61b 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -905,6 +905,8 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk,
 	return child;
 
 fallback:
+	if (fallback)
+		SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK);
 	mptcp_subflow_drop_ctx(child);
 	return child;
 }
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index 4c4248554826..4131f3263a48 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -383,12 +383,14 @@ do_transfer()
 	local stat_cookierx_last
 	local stat_csum_err_s
 	local stat_csum_err_c
+	local stat_tcpfb_last_l
 	stat_synrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
 	stat_ackrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
 	stat_cookietx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
 	stat_cookierx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
 	stat_csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
 	stat_csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
+	stat_tcpfb_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableFallbackACK")
 
 	timeout ${timeout_test} \
 		ip netns exec ${listener_ns} \
@@ -457,11 +459,13 @@ do_transfer()
 	local stat_cookietx_now
 	local stat_cookierx_now
 	local stat_ooo_now
+	local stat_tcpfb_now_l
 	stat_synrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
 	stat_ackrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
 	stat_cookietx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
 	stat_cookierx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
 	stat_ooo_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtTCPOFOQueue")
+	stat_tcpfb_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableFallbackACK")
 
 	expect_synrx=$((stat_synrx_last_l))
 	expect_ackrx=$((stat_ackrx_last_l))
@@ -508,6 +512,11 @@ do_transfer()
 		fi
 	fi
 
+	if [ ${stat_ooo_now} -eq 0 ] && [ ${stat_tcpfb_last_l} -ne ${stat_tcpfb_now_l} ]; then
+		mptcp_lib_pr_fail "unexpected fallback to TCP"
+		rets=1
+	fi
+
 	if [ $cookies -eq 2 ];then
 		if [ $stat_cookietx_last -ge $stat_cookietx_now ] ;then
 			extra+=" WARN: CookieSent: did not advance"


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 6.6.y 0/5] Backport "mptcp: don't account accept() of non-MPC client as fallback to TCP"
  2024-04-05  6:29 FAILED: patch "[PATCH] mptcp: don't account accept() of non-MPC client as fallback" failed to apply to 6.6-stable tree gregkh
@ 2024-04-05 15:36 ` Matthieu Baerts (NGI0)
  2024-04-05 15:36 ` [PATCH 6.6.y 1/5] selftests: mptcp: display simult in extra_msg Matthieu Baerts (NGI0)
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 15+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-04-05 15:36 UTC (permalink / raw
  To: mptcp, stable, gregkh; +Cc: Matthieu Baerts (NGI0)

Commit 7a1b3490f47e ("mptcp: don't account accept() of non-MPC client as
fallback to TCP") does not apply to the 6.8-stable tree. That's because
there are some conflicts with recent refactoring done in the selftests
and around the 'accept()' code:

- commit 629b35a225b0 ("selftests: mptcp: display simult in extra_msg")
- commit e3aae1098f10 ("selftests: mptcp: connect: fix shellcheck warnings")
- commit e7c42bf4d320 ("selftests: mptcp: use += operator to append strings"
- commit 8e2b8a9fa512 ("mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()")

These 4 patches look harmless, probably safer and easier to backport
them, than diverging even more from the development branch.

Note that applied in this order, all these 5 patches have been
backported without conflicts. Tests are still OK.

Davide Caratti (2):
  mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()
  mptcp: don't account accept() of non-MPC client as fallback to TCP

Geliang Tang (2):
  selftests: mptcp: display simult in extra_msg
  selftests: mptcp: use += operator to append strings

Matthieu Baerts (NGI0) (1):
  selftests: mptcp: connect: fix shellcheck warnings

 net/mptcp/protocol.c                          | 106 ++++++--------
 net/mptcp/subflow.c                           |   2 +
 .../selftests/net/mptcp/mptcp_connect.sh      | 134 +++++++++++-------
 .../testing/selftests/net/mptcp/mptcp_join.sh |  33 +++--
 4 files changed, 144 insertions(+), 131 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 6.6.y 1/5] selftests: mptcp: display simult in extra_msg
  2024-04-05  6:29 FAILED: patch "[PATCH] mptcp: don't account accept() of non-MPC client as fallback" failed to apply to 6.6-stable tree gregkh
  2024-04-05 15:36 ` [PATCH 6.6.y 0/5] Backport "mptcp: don't account accept() of non-MPC client as fallback to TCP" Matthieu Baerts (NGI0)
@ 2024-04-05 15:36 ` Matthieu Baerts (NGI0)
  2024-04-05 15:36 ` [PATCH 6.6.y 2/5] selftests: mptcp: connect: fix shellcheck warnings Matthieu Baerts (NGI0)
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 15+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-04-05 15:36 UTC (permalink / raw
  To: mptcp, stable, gregkh
  Cc: Geliang Tang, Matthieu Baerts, Mat Martineau, Jakub Kicinski

From: Geliang Tang <geliang.tang@suse.com>

Just like displaying "invert" after "Info: ", "simult" should be
displayed too when rm_subflow_nr doesn't match the expect value in
chk_rm_nr():

      syn                                 [ ok ]
      synack                              [ ok ]
      ack                                 [ ok ]
      add                                 [ ok ]
      echo                                [ ok ]
      rm                                  [ ok ]
      rmsf                                [ ok ] 3 in [2:4]
      Info: invert simult

      syn                                 [ ok ]
      synack                              [ ok ]
      ack                                 [ ok ]
      add                                 [ ok ]
      echo                                [ ok ]
      rm                                  [ ok ]
      rmsf                                [ ok ]
      Info: invert

Reviewed-by: Matthieu Baerts <matttbe@kernel.org>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
Signed-off-by: Mat Martineau <martineau@kernel.org>
Link: https://lore.kernel.org/r/20231025-send-net-next-20231025-v1-10-db8f25f798eb@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 629b35a225b0d49fbcff3b5c22e3b983c7c7b36f)
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 34c342346967..e6b778a9a937 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -1740,7 +1740,10 @@ chk_rm_nr()
 		# in case of simult flush, the subflow removal count on each side is
 		# unreliable
 		count=$((count + cnt))
-		[ "$count" != "$rm_subflow_nr" ] && suffix="$count in [$rm_subflow_nr:$((rm_subflow_nr*2))]"
+		if [ "$count" != "$rm_subflow_nr" ]; then
+			suffix="$count in [$rm_subflow_nr:$((rm_subflow_nr*2))]"
+			extra_msg="$extra_msg simult"
+		fi
 		if [ $count -ge "$rm_subflow_nr" ] && \
 		   [ "$count" -le "$((rm_subflow_nr *2 ))" ]; then
 			print_ok "$suffix"
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 6.6.y 2/5] selftests: mptcp: connect: fix shellcheck warnings
  2024-04-05  6:29 FAILED: patch "[PATCH] mptcp: don't account accept() of non-MPC client as fallback" failed to apply to 6.6-stable tree gregkh
  2024-04-05 15:36 ` [PATCH 6.6.y 0/5] Backport "mptcp: don't account accept() of non-MPC client as fallback to TCP" Matthieu Baerts (NGI0)
  2024-04-05 15:36 ` [PATCH 6.6.y 1/5] selftests: mptcp: display simult in extra_msg Matthieu Baerts (NGI0)
@ 2024-04-05 15:36 ` Matthieu Baerts (NGI0)
  2024-04-05 15:36 ` [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings Matthieu Baerts (NGI0)
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 15+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-04-05 15:36 UTC (permalink / raw
  To: mptcp, stable, gregkh
  Cc: Matthieu Baerts (NGI0), Mat Martineau, Jakub Kicinski

shellcheck recently helped to prevent issues. It is then good to fix the
other harmless issues in order to spot "real" ones later.

Here, two categories of warnings are now ignored:

- SC2317: Command appears to be unreachable. The cleanup() function is
  invoked indirectly via the EXIT trap.

- SC2086: Double quote to prevent globbing and word splitting. This is
  recommended, but the current usage is correct and there is no need to
  do all these modifications to be compliant with this rule.

For the modifications:

  - SC2034: ksft_skip appears unused.
  - SC2181: Check exit code directly with e.g. 'if mycmd;', not
            indirectly with $?.
  - SC2004: $/${} is unnecessary on arithmetic variables.
  - SC2155: Declare and assign separately to avoid masking return
            values.
  - SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
  - SC2059: Don't use variables in the printf format string. Use printf
            '..%s..' "$foo".

Now this script is shellcheck (0.9.0) compliant. We can easily spot new
issues.

Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://lore.kernel.org/r/20240306-upstream-net-next-20240304-selftests-mptcp-shared-code-shellcheck-v2-8-bc79e6e5e6a0@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit e3aae1098f109f0bd33c971deff1926f4e4441d0)
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
 .../selftests/net/mptcp/mptcp_connect.sh      | 76 ++++++++++++-------
 1 file changed, 47 insertions(+), 29 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index 3b971d1617d8..8b3017cedba0 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -1,6 +1,11 @@
 #!/bin/bash
 # SPDX-License-Identifier: GPL-2.0
 
+# Double quotes to prevent globbing and word splitting is recommended in new
+# code but we accept it, especially because there were too many before having
+# address all other issues detected by shellcheck.
+#shellcheck disable=SC2086
+
 . "$(dirname "${0}")/mptcp_lib.sh"
 
 time_start=$(date +%s)
@@ -13,7 +18,6 @@ sout=""
 cin_disconnect=""
 cin=""
 cout=""
-ksft_skip=4
 capture=false
 timeout_poll=30
 timeout_test=$((timeout_poll * 2 + 1))
@@ -131,6 +135,8 @@ ns4="ns4-$rndh"
 TEST_COUNT=0
 TEST_GROUP=""
 
+# This function is used in the cleanup trap
+#shellcheck disable=SC2317
 cleanup()
 {
 	rm -f "$cin_disconnect" "$cout_disconnect"
@@ -225,8 +231,9 @@ set_ethtool_flags() {
 	local dev="$2"
 	local flags="$3"
 
-	ip netns exec $ns ethtool -K $dev $flags 2>/dev/null
-	[ $? -eq 0 ] && echo "INFO: set $ns dev $dev: ethtool -K $flags"
+	if ip netns exec $ns ethtool -K $dev $flags 2>/dev/null; then
+		echo "INFO: set $ns dev $dev: ethtool -K $flags"
+	fi
 }
 
 set_random_ethtool_flags() {
@@ -363,7 +370,7 @@ do_transfer()
 	local extra_args="$7"
 
 	local port
-	port=$((10000+$TEST_COUNT))
+	port=$((10000+TEST_COUNT))
 	TEST_COUNT=$((TEST_COUNT+1))
 
 	if [ "$rcvbuf" -gt 0 ]; then
@@ -420,12 +427,18 @@ do_transfer()
 			nstat -n
 	fi
 
-	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")
+	local stat_synrx_last_l
+	local stat_ackrx_last_l
+	local stat_cookietx_last
+	local stat_cookierx_last
+	local stat_csum_err_s
+	local stat_csum_err_c
+	stat_synrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
+	stat_ackrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
+	stat_cookietx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
+	stat_cookierx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
+	stat_csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
+	stat_csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
 
 	timeout ${timeout_test} \
 		ip netns exec ${listener_ns} \
@@ -488,11 +501,16 @@ do_transfer()
 	check_transfer $cin $sout "file received by server"
 	rets=$?
 
-	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")
+	local stat_synrx_now_l
+	local stat_ackrx_now_l
+	local stat_cookietx_now
+	local stat_cookierx_now
+	local stat_ooo_now
+	stat_synrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
+	stat_ackrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
+	stat_cookietx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
+	stat_cookierx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
+	stat_ooo_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtTCPOFOQueue")
 
 	expect_synrx=$((stat_synrx_last_l))
 	expect_ackrx=$((stat_ackrx_last_l))
@@ -501,8 +519,8 @@ do_transfer()
 	cookies=${cookies##*=}
 
 	if [ ${cl_proto} = "MPTCP" ] && [ ${srv_proto} = "MPTCP" ]; then
-		expect_synrx=$((stat_synrx_last_l+$connect_per_transfer))
-		expect_ackrx=$((stat_ackrx_last_l+$connect_per_transfer))
+		expect_synrx=$((stat_synrx_last_l+connect_per_transfer))
+		expect_ackrx=$((stat_ackrx_last_l+connect_per_transfer))
 	fi
 
 	if [ ${stat_synrx_now_l} -lt ${expect_synrx} ]; then
@@ -510,7 +528,7 @@ do_transfer()
 			"${stat_synrx_now_l}" "${expect_synrx}" 1>&2
 		retc=1
 	fi
-	if [ ${stat_ackrx_now_l} -lt ${expect_ackrx} -a ${stat_ooo_now} -eq 0 ]; then
+	if [ ${stat_ackrx_now_l} -lt ${expect_ackrx} ] && [ ${stat_ooo_now} -eq 0 ]; then
 		if [ ${stat_ooo_now} -eq 0 ]; then
 			printf "[ FAIL ] lower MPC ACK rx (%d) than expected (%d)\n" \
 				"${stat_ackrx_now_l}" "${expect_ackrx}" 1>&2
@@ -521,18 +539,20 @@ do_transfer()
 	fi
 
 	if $checksum; then
-		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
+		local csum_err_c
+		csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
+		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
-			printf "[ FAIL ]\nserver got $csum_err_s_nr data checksum error[s]"
+			printf "[ FAIL ]\nserver got %d data checksum error[s]" ${csum_err_s_nr}
 			rets=1
 		fi
 
 		local csum_err_c_nr=$((csum_err_c - stat_csum_err_c))
 		if [ $csum_err_c_nr -gt 0 ]; then
-			printf "[ FAIL ]\nclient got $csum_err_c_nr data checksum error[s]"
+			printf "[ FAIL ]\nclient got %d data checksum error[s]" ${csum_err_c_nr}
 			retc=1
 		fi
 	fi
@@ -701,7 +721,7 @@ run_test_transparent()
 		return
 	fi
 
-ip netns exec "$listener_ns" nft -f /dev/stdin <<"EOF"
+	if ! ip netns exec "$listener_ns" nft -f /dev/stdin <<"EOF"
 flush ruleset
 table inet mangle {
 	chain divert {
@@ -712,7 +732,7 @@ table inet mangle {
 	}
 }
 EOF
-	if [ $? -ne 0 ]; then
+	then
 		echo "SKIP: $msg, could not load nft ruleset"
 		mptcp_lib_fail_if_expected_feature "nft rules"
 		mptcp_lib_result_skip "${TEST_GROUP}"
@@ -727,8 +747,7 @@ EOF
 		local_addr="0.0.0.0"
 	fi
 
-	ip -net "$listener_ns" $r6flag rule add fwmark 1 lookup 100
-	if [ $? -ne 0 ]; then
+	if ! ip -net "$listener_ns" $r6flag rule add fwmark 1 lookup 100; then
 		ip netns exec "$listener_ns" nft flush ruleset
 		echo "SKIP: $msg, ip $r6flag rule failed"
 		mptcp_lib_fail_if_expected_feature "ip rule"
@@ -736,8 +755,7 @@ EOF
 		return
 	fi
 
-	ip -net "$listener_ns" route add local $local_addr/0 dev lo table 100
-	if [ $? -ne 0 ]; then
+	if ! ip -net "$listener_ns" route add local $local_addr/0 dev lo table 100; then
 		ip netns exec "$listener_ns" nft flush ruleset
 		ip -net "$listener_ns" $r6flag rule del fwmark 1 lookup 100
 		echo "SKIP: $msg, ip route add local $local_addr failed"
@@ -900,7 +918,7 @@ stop_if_error "Could not even run ping tests"
 echo -n "INFO: Using loss of $tc_loss "
 test "$tc_delay" -gt 0 && echo -n "delay $tc_delay ms "
 
-reorder_delay=$(($tc_delay / 4))
+reorder_delay=$((tc_delay / 4))
 
 if [ -z "${tc_reorder}" ]; then
 	reorder1=$((RANDOM%10))
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings
  2024-04-05  6:29 FAILED: patch "[PATCH] mptcp: don't account accept() of non-MPC client as fallback" failed to apply to 6.6-stable tree gregkh
                   ` (2 preceding siblings ...)
  2024-04-05 15:36 ` [PATCH 6.6.y 2/5] selftests: mptcp: connect: fix shellcheck warnings Matthieu Baerts (NGI0)
@ 2024-04-05 15:36 ` Matthieu Baerts (NGI0)
  2024-04-08 11:31   ` Greg KH
  2024-04-05 15:36 ` [PATCH 6.6.y 4/5] mptcp: don't overwrite sock_ops in mptcp_is_tcpsk() Matthieu Baerts (NGI0)
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-04-05 15:36 UTC (permalink / raw
  To: mptcp, stable, gregkh; +Cc: Geliang Tang, Matthieu Baerts, Jakub Kicinski

From: Geliang Tang <tanggeliang@kylinos.cn>

This patch uses addition assignment operator (+=) to append strings
instead of duplicating the variable name in mptcp_connect.sh and
mptcp_join.sh.

This can make the statements shorter.

Note: in mptcp_connect.sh, add a local variable extra in do_transfer to
save the various extra warning logs, using += to append it. And add a
new variable tc_info to save various tc info, also using += to append it.
This can make the code more readable and prepare for the next commit.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-8-4f42c347b653@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit e7c42bf4d320affe37337aa83ae0347832b3f568)
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
 .../selftests/net/mptcp/mptcp_connect.sh      | 53 ++++++++++---------
 .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++------
 2 files changed, 43 insertions(+), 40 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index 8b3017cedba0..f40d3222442b 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -374,15 +374,15 @@ do_transfer()
 	TEST_COUNT=$((TEST_COUNT+1))
 
 	if [ "$rcvbuf" -gt 0 ]; then
-		extra_args="$extra_args -R $rcvbuf"
+		extra_args+=" -R $rcvbuf"
 	fi
 
 	if [ "$sndbuf" -gt 0 ]; then
-		extra_args="$extra_args -S $sndbuf"
+		extra_args+=" -S $sndbuf"
 	fi
 
 	if [ -n "$testmode" ]; then
-		extra_args="$extra_args -m $testmode"
+		extra_args+=" -m $testmode"
 	fi
 
 	if [ -n "$extra_args" ] && $options_log; then
@@ -501,6 +501,7 @@ do_transfer()
 	check_transfer $cin $sout "file received by server"
 	rets=$?
 
+	local extra=""
 	local stat_synrx_now_l
 	local stat_ackrx_now_l
 	local stat_cookietx_now
@@ -534,7 +535,7 @@ do_transfer()
 				"${stat_ackrx_now_l}" "${expect_ackrx}" 1>&2
 			rets=1
 		else
-			printf "[ Note ] fallback due to TCP OoO"
+			extra+=" [ Note ] fallback due to TCP OoO"
 		fi
 	fi
 
@@ -557,39 +558,41 @@ do_transfer()
 		fi
 	fi
 
-	if [ $retc -eq 0 ] && [ $rets -eq 0 ]; then
-		printf "[ OK ]"
-		mptcp_lib_result_pass "${TEST_GROUP}: ${result_msg}"
-	else
-		mptcp_lib_result_fail "${TEST_GROUP}: ${result_msg}"
-	fi
-
 	if [ $cookies -eq 2 ];then
 		if [ $stat_cookietx_last -ge $stat_cookietx_now ] ;then
-			printf " WARN: CookieSent: did not advance"
+			extra+=" WARN: CookieSent: did not advance"
 		fi
 		if [ $stat_cookierx_last -ge $stat_cookierx_now ] ;then
-			printf " WARN: CookieRecv: did not advance"
+			extra+=" WARN: CookieRecv: did not advance"
 		fi
 	else
 		if [ $stat_cookietx_last -ne $stat_cookietx_now ] ;then
-			printf " WARN: CookieSent: changed"
+			extra+=" WARN: CookieSent: changed"
 		fi
 		if [ $stat_cookierx_last -ne $stat_cookierx_now ] ;then
-			printf " WARN: CookieRecv: changed"
+			extra+=" WARN: CookieRecv: changed"
 		fi
 	fi
 
 	if [ ${stat_synrx_now_l} -gt ${expect_synrx} ]; then
-		printf " WARN: SYNRX: expect %d, got %d (probably retransmissions)" \
-			"${expect_synrx}" "${stat_synrx_now_l}"
+		extra+=" WARN: SYNRX: expect ${expect_synrx},"
+		extra+=" got ${stat_synrx_now_l} (probably retransmissions)"
 	fi
 	if [ ${stat_ackrx_now_l} -gt ${expect_ackrx} ]; then
-		printf " WARN: ACKRX: expect %d, got %d (probably retransmissions)" \
-			"${expect_ackrx}" "${stat_ackrx_now_l}"
+		extra+=" WARN: ACKRX: expect ${expect_ackrx},"
+		extra+=" got ${stat_ackrx_now_l} (probably retransmissions)"
+	fi
+
+	if [ $retc -eq 0 ] && [ $rets -eq 0 ]; then
+		printf "[ OK ]%s\n" "${extra:1}"
+		mptcp_lib_result_pass "${TEST_GROUP}: ${result_msg}"
+	else
+		if [ -n "${extra}" ]; then
+			printf "%s\n" "${extra:1}"
+		fi
+		mptcp_lib_result_fail "${TEST_GROUP}: ${result_msg}"
 	fi
 
-	echo
 	cat "$capout"
 	[ $retc -eq 0 ] && [ $rets -eq 0 ]
 }
@@ -915,8 +918,8 @@ mptcp_lib_result_code "${ret}" "ping tests"
 stop_if_error "Could not even run ping tests"
 
 [ -n "$tc_loss" ] && tc -net "$ns2" qdisc add dev ns2eth3 root netem loss random $tc_loss delay ${tc_delay}ms
-echo -n "INFO: Using loss of $tc_loss "
-test "$tc_delay" -gt 0 && echo -n "delay $tc_delay ms "
+tc_info="loss of $tc_loss "
+test "$tc_delay" -gt 0 && tc_info+="delay $tc_delay ms "
 
 reorder_delay=$((tc_delay / 4))
 
@@ -927,17 +930,17 @@ if [ -z "${tc_reorder}" ]; then
 
 	if [ $reorder_delay -gt 0 ] && [ $reorder1 -lt 100 ] && [ $reorder2 -gt 0 ]; then
 		tc_reorder="reorder ${reorder1}% ${reorder2}%"
-		echo -n "$tc_reorder with delay ${reorder_delay}ms "
+		tc_info+="$tc_reorder with delay ${reorder_delay}ms "
 	fi
 elif [ "$tc_reorder" = "0" ];then
 	tc_reorder=""
 elif [ "$reorder_delay" -gt 0 ];then
 	# reordering requires some delay
 	tc_reorder="reorder $tc_reorder"
-	echo -n "$tc_reorder with delay ${reorder_delay}ms "
+	tc_info+="$tc_reorder with delay ${reorder_delay}ms "
 fi
 
-echo "on ns3eth4"
+echo "INFO: Using ${tc_info}on ns3eth4"
 
 tc -net "$ns3" qdisc add dev ns3eth4 root netem delay ${reorder_delay}ms $tc_reorder
 
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index e6b778a9a937..eb227557d590 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -822,18 +822,18 @@ pm_nl_check_endpoint()
 		line="${line% }"
 		# the dump order is: address id flags port dev
 		[ -n "$addr" ] && expected_line="$addr"
-		expected_line="$expected_line $id"
-		[ -n "$_flags" ] && expected_line="$expected_line ${_flags//","/" "}"
-		[ -n "$dev" ] && expected_line="$expected_line $dev"
-		[ -n "$port" ] && expected_line="$expected_line $port"
+		expected_line+=" $id"
+		[ -n "$_flags" ] && expected_line+=" ${_flags//","/" "}"
+		[ -n "$dev" ] && expected_line+=" $dev"
+		[ -n "$port" ] && expected_line+=" $port"
 	else
 		line=$(ip netns exec $ns ./pm_nl_ctl get $_id)
 		# the dump order is: id flags dev address port
 		expected_line="$id"
-		[ -n "$flags" ] && expected_line="$expected_line $flags"
-		[ -n "$dev" ] && expected_line="$expected_line $dev"
-		[ -n "$addr" ] && expected_line="$expected_line $addr"
-		[ -n "$_port" ] && expected_line="$expected_line $_port"
+		[ -n "$flags" ] && expected_line+=" $flags"
+		[ -n "$dev" ] && expected_line+=" $dev"
+		[ -n "$addr" ] && expected_line+=" $addr"
+		[ -n "$_port" ] && expected_line+=" $_port"
 	fi
 	if [ "$line" = "$expected_line" ]; then
 		print_ok
@@ -1256,7 +1256,7 @@ chk_csum_nr()
 	print_check "sum"
 	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtDataCsumErr")
 	if [ "$count" != "$csum_ns1" ]; then
-		extra_msg="$extra_msg ns1=$count"
+		extra_msg+=" ns1=$count"
 	fi
 	if [ -z "$count" ]; then
 		print_skip
@@ -1269,7 +1269,7 @@ chk_csum_nr()
 	print_check "csum"
 	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtDataCsumErr")
 	if [ "$count" != "$csum_ns2" ]; then
-		extra_msg="$extra_msg ns2=$count"
+		extra_msg+=" ns2=$count"
 	fi
 	if [ -z "$count" ]; then
 		print_skip
@@ -1313,7 +1313,7 @@ chk_fail_nr()
 	print_check "ftx"
 	count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFailTx")
 	if [ "$count" != "$fail_tx" ]; then
-		extra_msg="$extra_msg,tx=$count"
+		extra_msg+=",tx=$count"
 	fi
 	if [ -z "$count" ]; then
 		print_skip
@@ -1327,7 +1327,7 @@ chk_fail_nr()
 	print_check "failrx"
 	count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFailRx")
 	if [ "$count" != "$fail_rx" ]; then
-		extra_msg="$extra_msg,rx=$count"
+		extra_msg+=",rx=$count"
 	fi
 	if [ -z "$count" ]; then
 		print_skip
@@ -1362,7 +1362,7 @@ chk_fclose_nr()
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$fclose_tx" ]; then
-		extra_msg="$extra_msg,tx=$count"
+		extra_msg+=",tx=$count"
 		fail_test "got $count MP_FASTCLOSE[s] TX expected $fclose_tx"
 	else
 		print_ok
@@ -1373,7 +1373,7 @@ chk_fclose_nr()
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$fclose_rx" ]; then
-		extra_msg="$extra_msg,rx=$count"
+		extra_msg+=",rx=$count"
 		fail_test "got $count MP_FASTCLOSE[s] RX expected $fclose_rx"
 	else
 		print_ok
@@ -1742,7 +1742,7 @@ chk_rm_nr()
 		count=$((count + cnt))
 		if [ "$count" != "$rm_subflow_nr" ]; then
 			suffix="$count in [$rm_subflow_nr:$((rm_subflow_nr*2))]"
-			extra_msg="$extra_msg simult"
+			extra_msg+=" simult"
 		fi
 		if [ $count -ge "$rm_subflow_nr" ] && \
 		   [ "$count" -le "$((rm_subflow_nr *2 ))" ]; then
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 6.6.y 4/5] mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()
  2024-04-05  6:29 FAILED: patch "[PATCH] mptcp: don't account accept() of non-MPC client as fallback" failed to apply to 6.6-stable tree gregkh
                   ` (3 preceding siblings ...)
  2024-04-05 15:36 ` [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings Matthieu Baerts (NGI0)
@ 2024-04-05 15:36 ` Matthieu Baerts (NGI0)
  2024-04-05 15:36 ` [PATCH 6.6.y 5/5] mptcp: don't account accept() of non-MPC client as fallback to TCP Matthieu Baerts (NGI0)
  2024-04-11 10:07 ` [PATCH 6.6.y] selftests: mptcp: use += operator to append strings Matthieu Baerts (NGI0)
  6 siblings, 0 replies; 15+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-04-05 15:36 UTC (permalink / raw
  To: mptcp, stable, gregkh
  Cc: Davide Caratti, Eric Dumazet, Paolo Abeni, Matthieu Baerts,
	David S . Miller

From: Davide Caratti <dcaratti@redhat.com>

Eric Dumazet suggests:

 > The fact that mptcp_is_tcpsk() was able to write over sock->ops was a
 > bit strange to me.
 > mptcp_is_tcpsk() should answer a question, with a read-only argument.

re-factor code to avoid overwriting sock_ops inside that function. Also,
change the helper name to reflect the semantics and to disambiguate from
its dual, sk_is_mptcp(). While at it, collapse mptcp_stream_accept() and
mptcp_accept() into a single function, where fallback / non-fallback are
separated into a single sk_is_mptcp() conditional.

Link: https://github.com/multipath-tcp/mptcp_net-next/issues/432
Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts <matttbe@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 8e2b8a9fa512709e6fee744dcd4e2a20ee7f5c56)
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
 net/mptcp/protocol.c | 108 ++++++++++++++++++-------------------------
 1 file changed, 44 insertions(+), 64 deletions(-)

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index b54951ae07aa..35f9d59c8ded 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -55,28 +55,14 @@ static u64 mptcp_wnd_end(const struct mptcp_sock *msk)
 	return READ_ONCE(msk->wnd_end);
 }
 
-static bool mptcp_is_tcpsk(struct sock *sk)
+static const struct proto_ops *mptcp_fallback_tcp_ops(const struct sock *sk)
 {
-	struct socket *sock = sk->sk_socket;
-
-	if (unlikely(sk->sk_prot == &tcp_prot)) {
-		/* we are being invoked after mptcp_accept() has
-		 * accepted a non-mp-capable flow: sk is a tcp_sk,
-		 * not an mptcp one.
-		 *
-		 * Hand the socket over to tcp so all further socket ops
-		 * bypass mptcp.
-		 */
-		WRITE_ONCE(sock->ops, &inet_stream_ops);
-		return true;
 #if IS_ENABLED(CONFIG_MPTCP_IPV6)
-	} else if (unlikely(sk->sk_prot == &tcpv6_prot)) {
-		WRITE_ONCE(sock->ops, &inet6_stream_ops);
-		return true;
+	if (sk->sk_prot == &tcpv6_prot)
+		return &inet6_stream_ops;
 #endif
-	}
-
-	return false;
+	WARN_ON_ONCE(sk->sk_prot != &tcp_prot);
+	return &inet_stream_ops;
 }
 
 static int __mptcp_socket_create(struct mptcp_sock *msk)
@@ -3328,44 +3314,6 @@ void mptcp_rcv_space_init(struct mptcp_sock *msk, const struct sock *ssk)
 		msk->rcvq_space.space = TCP_INIT_CWND * TCP_MSS_DEFAULT;
 }
 
-static struct sock *mptcp_accept(struct sock *ssk, int flags, int *err,
-				 bool kern)
-{
-	struct sock *newsk;
-
-	pr_debug("ssk=%p, listener=%p", ssk, mptcp_subflow_ctx(ssk));
-	newsk = inet_csk_accept(ssk, flags, err, kern);
-	if (!newsk)
-		return NULL;
-
-	pr_debug("newsk=%p, subflow is mptcp=%d", newsk, sk_is_mptcp(newsk));
-	if (sk_is_mptcp(newsk)) {
-		struct mptcp_subflow_context *subflow;
-		struct sock *new_mptcp_sock;
-
-		subflow = mptcp_subflow_ctx(newsk);
-		new_mptcp_sock = subflow->conn;
-
-		/* is_mptcp should be false if subflow->conn is missing, see
-		 * subflow_syn_recv_sock()
-		 */
-		if (WARN_ON_ONCE(!new_mptcp_sock)) {
-			tcp_sk(newsk)->is_mptcp = 0;
-			goto out;
-		}
-
-		newsk = new_mptcp_sock;
-		MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_MPCAPABLEPASSIVEACK);
-	} else {
-		MPTCP_INC_STATS(sock_net(ssk),
-				MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK);
-	}
-
-out:
-	newsk->sk_kern_sock = kern;
-	return newsk;
-}
-
 void mptcp_destroy_common(struct mptcp_sock *msk, unsigned int flags)
 {
 	struct mptcp_subflow_context *subflow, *tmp;
@@ -3802,7 +3750,6 @@ static struct proto mptcp_prot = {
 	.connect	= mptcp_connect,
 	.disconnect	= mptcp_disconnect,
 	.close		= mptcp_close,
-	.accept		= mptcp_accept,
 	.setsockopt	= mptcp_setsockopt,
 	.getsockopt	= mptcp_getsockopt,
 	.shutdown	= mptcp_shutdown,
@@ -3912,18 +3859,36 @@ static int mptcp_stream_accept(struct socket *sock, struct socket *newsock,
 	if (!ssk)
 		return -EINVAL;
 
-	newsk = mptcp_accept(ssk, flags, &err, kern);
+	pr_debug("ssk=%p, listener=%p", ssk, mptcp_subflow_ctx(ssk));
+	newsk = inet_csk_accept(ssk, flags, &err, kern);
 	if (!newsk)
 		return err;
 
-	lock_sock(newsk);
-
-	__inet_accept(sock, newsock, newsk);
-	if (!mptcp_is_tcpsk(newsock->sk)) {
-		struct mptcp_sock *msk = mptcp_sk(newsk);
+	pr_debug("newsk=%p, subflow is mptcp=%d", newsk, sk_is_mptcp(newsk));
+	if (sk_is_mptcp(newsk)) {
 		struct mptcp_subflow_context *subflow;
+		struct sock *new_mptcp_sock;
+
+		subflow = mptcp_subflow_ctx(newsk);
+		new_mptcp_sock = subflow->conn;
+
+		/* is_mptcp should be false if subflow->conn is missing, see
+		 * subflow_syn_recv_sock()
+		 */
+		if (WARN_ON_ONCE(!new_mptcp_sock)) {
+			tcp_sk(newsk)->is_mptcp = 0;
+			goto tcpfallback;
+		}
+
+		newsk = new_mptcp_sock;
+		MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_MPCAPABLEPASSIVEACK);
+
+		newsk->sk_kern_sock = kern;
+		lock_sock(newsk);
+		__inet_accept(sock, newsock, newsk);
 
 		set_bit(SOCK_CUSTOM_SOCKOPT, &newsock->flags);
+		msk = mptcp_sk(newsk);
 		msk->in_accept_queue = 0;
 
 		/* set ssk->sk_socket of accept()ed flows to mptcp socket.
@@ -3945,6 +3910,21 @@ static int mptcp_stream_accept(struct socket *sock, struct socket *newsock,
 			if (unlikely(list_is_singular(&msk->conn_list)))
 				mptcp_set_state(newsk, TCP_CLOSE);
 		}
+	} else {
+		MPTCP_INC_STATS(sock_net(ssk),
+				MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK);
+tcpfallback:
+		newsk->sk_kern_sock = kern;
+		lock_sock(newsk);
+		__inet_accept(sock, newsock, newsk);
+		/* we are being invoked after accepting a non-mp-capable
+		 * flow: sk is a tcp_sk, not an mptcp one.
+		 *
+		 * Hand the socket over to tcp so all further socket ops
+		 * bypass mptcp.
+		 */
+		WRITE_ONCE(newsock->sk->sk_socket->ops,
+			   mptcp_fallback_tcp_ops(newsock->sk));
 	}
 	release_sock(newsk);
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 6.6.y 5/5] mptcp: don't account accept() of non-MPC client as fallback to TCP
  2024-04-05  6:29 FAILED: patch "[PATCH] mptcp: don't account accept() of non-MPC client as fallback" failed to apply to 6.6-stable tree gregkh
                   ` (4 preceding siblings ...)
  2024-04-05 15:36 ` [PATCH 6.6.y 4/5] mptcp: don't overwrite sock_ops in mptcp_is_tcpsk() Matthieu Baerts (NGI0)
@ 2024-04-05 15:36 ` Matthieu Baerts (NGI0)
  2024-04-11 10:07 ` [PATCH 6.6.y] selftests: mptcp: use += operator to append strings Matthieu Baerts (NGI0)
  6 siblings, 0 replies; 15+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-04-05 15:36 UTC (permalink / raw
  To: mptcp, stable, gregkh
  Cc: Davide Caratti, Christoph Paasch, Mat Martineau, Matthieu Baerts,
	Jakub Kicinski

From: Davide Caratti <dcaratti@redhat.com>

Current MPTCP servers increment MPTcpExtMPCapableFallbackACK when they
accept non-MPC connections. As reported by Christoph, this is "surprising"
because the counter might become greater than MPTcpExtMPCapableSYNRX.

MPTcpExtMPCapableFallbackACK counter's name suggests it should only be
incremented when a connection was seen using MPTCP options, then a
fallback to TCP has been done. Let's do that by incrementing it when
the subflow context of an inbound MPC connection attempt is dropped.
Also, update mptcp_connect.sh kselftest, to ensure that the
above MIB does not increment in case a pure TCP client connects to a
MPTCP server.

Fixes: fc518953bc9c ("mptcp: add and use MIB counter infrastructure")
Cc: stable@vger.kernel.org
Reported-by: Christoph Paasch <cpaasch@apple.com>
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/449
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://lore.kernel.org/r/20240329-upstream-net-20240329-fallback-mib-v1-1-324a8981da48@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 7a1b3490f47e88ec4cbde65f1a77a0f4bc972282)
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
 net/mptcp/protocol.c                               | 2 --
 net/mptcp/subflow.c                                | 2 ++
 tools/testing/selftests/net/mptcp/mptcp_connect.sh | 9 +++++++++
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 35f9d59c8ded..01ac690af779 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -3911,8 +3911,6 @@ static int mptcp_stream_accept(struct socket *sock, struct socket *newsock,
 				mptcp_set_state(newsk, TCP_CLOSE);
 		}
 	} else {
-		MPTCP_INC_STATS(sock_net(ssk),
-				MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK);
 tcpfallback:
 		newsk->sk_kern_sock = kern;
 		lock_sock(newsk);
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index ab41700bee68..23ee96c6abcb 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -905,6 +905,8 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk,
 	return child;
 
 fallback:
+	if (fallback)
+		SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK);
 	mptcp_subflow_drop_ctx(child);
 	return child;
 }
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index f40d3222442b..ffb2aff14690 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -433,12 +433,14 @@ do_transfer()
 	local stat_cookierx_last
 	local stat_csum_err_s
 	local stat_csum_err_c
+	local stat_tcpfb_last_l
 	stat_synrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
 	stat_ackrx_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
 	stat_cookietx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
 	stat_cookierx_last=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
 	stat_csum_err_s=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumErr")
 	stat_csum_err_c=$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsumErr")
+	stat_tcpfb_last_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableFallbackACK")
 
 	timeout ${timeout_test} \
 		ip netns exec ${listener_ns} \
@@ -507,11 +509,13 @@ do_transfer()
 	local stat_cookietx_now
 	local stat_cookierx_now
 	local stat_ooo_now
+	local stat_tcpfb_now_l
 	stat_synrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableSYNRX")
 	stat_ackrx_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableACKRX")
 	stat_cookietx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesSent")
 	stat_cookierx_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSyncookiesRecv")
 	stat_ooo_now=$(mptcp_lib_get_counter "${listener_ns}" "TcpExtTCPOFOQueue")
+	stat_tcpfb_now_l=$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCapableFallbackACK")
 
 	expect_synrx=$((stat_synrx_last_l))
 	expect_ackrx=$((stat_ackrx_last_l))
@@ -558,6 +562,11 @@ do_transfer()
 		fi
 	fi
 
+	if [ ${stat_ooo_now} -eq 0 ] && [ ${stat_tcpfb_last_l} -ne ${stat_tcpfb_now_l} ]; then
+		mptcp_lib_pr_fail "unexpected fallback to TCP"
+		rets=1
+	fi
+
 	if [ $cookies -eq 2 ];then
 		if [ $stat_cookietx_last -ge $stat_cookietx_now ] ;then
 			extra+=" WARN: CookieSent: did not advance"
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings
  2024-04-05 15:36 ` [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings Matthieu Baerts (NGI0)
@ 2024-04-08 11:31   ` Greg KH
  2024-04-08 16:10     ` Matthieu Baerts
  0 siblings, 1 reply; 15+ messages in thread
From: Greg KH @ 2024-04-08 11:31 UTC (permalink / raw
  To: Matthieu Baerts (NGI0); +Cc: mptcp, stable, Geliang Tang, Jakub Kicinski

On Fri, Apr 05, 2024 at 05:36:40PM +0200, Matthieu Baerts (NGI0) wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
> 
> This patch uses addition assignment operator (+=) to append strings
> instead of duplicating the variable name in mptcp_connect.sh and
> mptcp_join.sh.
> 
> This can make the statements shorter.
> 
> Note: in mptcp_connect.sh, add a local variable extra in do_transfer to
> save the various extra warning logs, using += to append it. And add a
> new variable tc_info to save various tc info, also using += to append it.
> This can make the code more readable and prepare for the next commit.
> 
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-8-4f42c347b653@kernel.org
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> (cherry picked from commit e7c42bf4d320affe37337aa83ae0347832b3f568)
> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> ---
>  .../selftests/net/mptcp/mptcp_connect.sh      | 53 ++++++++++---------
>  .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++------
>  2 files changed, 43 insertions(+), 40 deletions(-)

Odd, this one did not apply.

All others did, thanks!

greg k-h

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings
  2024-04-08 11:31   ` Greg KH
@ 2024-04-08 16:10     ` Matthieu Baerts
  2024-04-09 12:16       ` Greg KH
  0 siblings, 1 reply; 15+ messages in thread
From: Matthieu Baerts @ 2024-04-08 16:10 UTC (permalink / raw
  To: Greg KH; +Cc: mptcp, stable, Geliang Tang, Jakub Kicinski

Hi Greg,

On 08/04/2024 13:31, Greg KH wrote:
> On Fri, Apr 05, 2024 at 05:36:40PM +0200, Matthieu Baerts (NGI0) wrote:
>> From: Geliang Tang <tanggeliang@kylinos.cn>
>>
>> This patch uses addition assignment operator (+=) to append strings
>> instead of duplicating the variable name in mptcp_connect.sh and
>> mptcp_join.sh.
>>
>> This can make the statements shorter.
>>
>> Note: in mptcp_connect.sh, add a local variable extra in do_transfer to
>> save the various extra warning logs, using += to append it. And add a
>> new variable tc_info to save various tc info, also using += to append it.
>> This can make the code more readable and prepare for the next commit.
>>
>> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
>> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
>> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
>> Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-8-4f42c347b653@kernel.org
>> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
>> (cherry picked from commit e7c42bf4d320affe37337aa83ae0347832b3f568)
>> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
>> ---
>>  .../selftests/net/mptcp/mptcp_connect.sh      | 53 ++++++++++---------
>>  .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++------
>>  2 files changed, 43 insertions(+), 40 deletions(-)
> 
> Odd, this one did not apply.

Indeed, that's odd. Do you use a different merge strategy?

I just tried on my side with the default merge strategy coming with Git
2.43.0, and it works:

  $ git fetch
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
refs/heads/linux-6.6.y
  $ git switch -c tmp FETCH_HEAD
  $ git rebase -i 2f39e4380e73~ ## to drop these 3 patches you added:
    # 2f39e4380e73 selftests: mptcp: connect: fix shellcheck warnings



    # bd3b5b0fff75 mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()



    # f723f9449193 mptcp: don't account accept() of non-MPC client (...)
  $ git cherry-pick -xs \
    629b35a225b0 e3aae1098f10 e7c42bf4d320 8e2b8a9fa512 7a1b3490f47e
  Auto-merging tools/testing/selftests/net/mptcp/mptcp_join.sh
  (...)
  $ echo $?
  0

But if I try the 3 patches you selected

  $ git reset --hard HEAD~5
  $ git cherry-pick -xs e3aae1098f10 8e2b8a9fa512 7a1b3490f47e
  Auto-merging tools/testing/selftests/net/mptcp/mptcp_connect.sh
  (...)
  CONFLICT (content): Merge conflict in
tools/testing/selftests/net/mptcp/mptcp_connect.sh
  error: could not apply 7a1b3490f47e... mptcp: don't account accept()
of non-MPC client as fallback to TCP


And the conflict makes sense: with the version that is currently in
linux-6.6.y branch, the new check is done after having printed "OK", so
that's not correct.


I can share the 5 patches I applied without conflicts on top of the
current linux-6.6.y branch, without the 3 patches you added today if it
can help.


> All others did, thanks!

Thank you!

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings
  2024-04-08 16:10     ` Matthieu Baerts
@ 2024-04-09 12:16       ` Greg KH
  2024-04-09 15:04         ` Matthieu Baerts
  0 siblings, 1 reply; 15+ messages in thread
From: Greg KH @ 2024-04-09 12:16 UTC (permalink / raw
  To: Matthieu Baerts; +Cc: mptcp, stable, Geliang Tang, Jakub Kicinski

On Mon, Apr 08, 2024 at 06:10:38PM +0200, Matthieu Baerts wrote:
> Hi Greg,
> 
> On 08/04/2024 13:31, Greg KH wrote:
> > On Fri, Apr 05, 2024 at 05:36:40PM +0200, Matthieu Baerts (NGI0) wrote:
> >> From: Geliang Tang <tanggeliang@kylinos.cn>
> >>
> >> This patch uses addition assignment operator (+=) to append strings
> >> instead of duplicating the variable name in mptcp_connect.sh and
> >> mptcp_join.sh.
> >>
> >> This can make the statements shorter.
> >>
> >> Note: in mptcp_connect.sh, add a local variable extra in do_transfer to
> >> save the various extra warning logs, using += to append it. And add a
> >> new variable tc_info to save various tc info, also using += to append it.
> >> This can make the code more readable and prepare for the next commit.
> >>
> >> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> >> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> >> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> >> Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-8-4f42c347b653@kernel.org
> >> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> >> (cherry picked from commit e7c42bf4d320affe37337aa83ae0347832b3f568)
> >> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> >> ---
> >>  .../selftests/net/mptcp/mptcp_connect.sh      | 53 ++++++++++---------
> >>  .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++------
> >>  2 files changed, 43 insertions(+), 40 deletions(-)
> > 
> > Odd, this one did not apply.
> 
> Indeed, that's odd. Do you use a different merge strategy?

I do not use any merge strategy at all, I use 'patch' to apply patches
(well, that's what quilt does), so git is not involved here.

> I just tried on my side with the default merge strategy coming with Git
> 2.43.0, and it works:
> 
>   $ git fetch
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> refs/heads/linux-6.6.y
>   $ git switch -c tmp FETCH_HEAD
>   $ git rebase -i 2f39e4380e73~ ## to drop these 3 patches you added:
>     # 2f39e4380e73 selftests: mptcp: connect: fix shellcheck warnings
> 
> 
> 
>     # bd3b5b0fff75 mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()
> 
> 
> 
>     # f723f9449193 mptcp: don't account accept() of non-MPC client (...)
>   $ git cherry-pick -xs \
>     629b35a225b0 e3aae1098f10 e7c42bf4d320 8e2b8a9fa512 7a1b3490f47e
>   Auto-merging tools/testing/selftests/net/mptcp/mptcp_join.sh
>   (...)
>   $ echo $?
>   0
> 
> But if I try the 3 patches you selected
> 
>   $ git reset --hard HEAD~5
>   $ git cherry-pick -xs e3aae1098f10 8e2b8a9fa512 7a1b3490f47e
>   Auto-merging tools/testing/selftests/net/mptcp/mptcp_connect.sh
>   (...)
>   CONFLICT (content): Merge conflict in
> tools/testing/selftests/net/mptcp/mptcp_connect.sh
>   error: could not apply 7a1b3490f47e... mptcp: don't account accept()
> of non-MPC client as fallback to TCP
> 
> 
> And the conflict makes sense: with the version that is currently in
> linux-6.6.y branch, the new check is done after having printed "OK", so
> that's not correct.
> 
> 
> I can share the 5 patches I applied without conflicts on top of the
> current linux-6.6.y branch, without the 3 patches you added today if it
> can help.

How about just resending this one patch after the next 6.6.y release
that comes out in a day or so.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings
  2024-04-09 12:16       ` Greg KH
@ 2024-04-09 15:04         ` Matthieu Baerts
  2024-04-11  7:32           ` Greg KH
  0 siblings, 1 reply; 15+ messages in thread
From: Matthieu Baerts @ 2024-04-09 15:04 UTC (permalink / raw
  To: Greg KH; +Cc: mptcp, stable, Geliang Tang, Jakub Kicinski

Hi Greg,

On 09/04/2024 14:16, Greg KH wrote:
> On Mon, Apr 08, 2024 at 06:10:38PM +0200, Matthieu Baerts wrote:
>> Hi Greg,
>>
>> On 08/04/2024 13:31, Greg KH wrote:
>>> On Fri, Apr 05, 2024 at 05:36:40PM +0200, Matthieu Baerts (NGI0) wrote:
>>>> From: Geliang Tang <tanggeliang@kylinos.cn>
>>>>
>>>> This patch uses addition assignment operator (+=) to append strings
>>>> instead of duplicating the variable name in mptcp_connect.sh and
>>>> mptcp_join.sh.
>>>>
>>>> This can make the statements shorter.
>>>>
>>>> Note: in mptcp_connect.sh, add a local variable extra in do_transfer to
>>>> save the various extra warning logs, using += to append it. And add a
>>>> new variable tc_info to save various tc info, also using += to append it.
>>>> This can make the code more readable and prepare for the next commit.
>>>>
>>>> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
>>>> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
>>>> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
>>>> Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-8-4f42c347b653@kernel.org
>>>> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
>>>> (cherry picked from commit e7c42bf4d320affe37337aa83ae0347832b3f568)
>>>> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
>>>> ---
>>>>  .../selftests/net/mptcp/mptcp_connect.sh      | 53 ++++++++++---------
>>>>  .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++------
>>>>  2 files changed, 43 insertions(+), 40 deletions(-)
>>>
>>> Odd, this one did not apply.
>>
>> Indeed, that's odd. Do you use a different merge strategy?
> 
> I do not use any merge strategy at all, I use 'patch' to apply patches
> (well, that's what quilt does), so git is not involved here.

Ah OK, thank you for the explanation. I thought git was used to do the
cherry-pick + generate the patch for quilt.

I'm still surprised quilt didn't accept these patches generated on top
of the 6.6-y branch. (By "chance", did you not have conflicts because
the patch 1/5 (commit 629b35a225b0 ("selftests: mptcp: display simult in
extra_msg")) didn't get backported by accident? It is strange it is also
missing in the v6.6.y branch.)

>> I just tried on my side with the default merge strategy coming with Git
>> 2.43.0, and it works:
>>
>>   $ git fetch
>> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
>> refs/heads/linux-6.6.y
>>   $ git switch -c tmp FETCH_HEAD
>>   $ git rebase -i 2f39e4380e73~ ## to drop these 3 patches you added:
>>     # 2f39e4380e73 selftests: mptcp: connect: fix shellcheck warnings
>>
>>
>>
>>     # bd3b5b0fff75 mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()
>>
>>
>>
>>     # f723f9449193 mptcp: don't account accept() of non-MPC client (...)
>>   $ git cherry-pick -xs \
>>     629b35a225b0 e3aae1098f10 e7c42bf4d320 8e2b8a9fa512 7a1b3490f47e
>>   Auto-merging tools/testing/selftests/net/mptcp/mptcp_join.sh
>>   (...)
>>   $ echo $?
>>   0
>>
>> But if I try the 3 patches you selected
>>
>>   $ git reset --hard HEAD~5
>>   $ git cherry-pick -xs e3aae1098f10 8e2b8a9fa512 7a1b3490f47e
>>   Auto-merging tools/testing/selftests/net/mptcp/mptcp_connect.sh
>>   (...)
>>   CONFLICT (content): Merge conflict in
>> tools/testing/selftests/net/mptcp/mptcp_connect.sh
>>   error: could not apply 7a1b3490f47e... mptcp: don't account accept()
>> of non-MPC client as fallback to TCP
>>
>>
>> And the conflict makes sense: with the version that is currently in
>> linux-6.6.y branch, the new check is done after having printed "OK", so
>> that's not correct.
>>
>>
>> I can share the 5 patches I applied without conflicts on top of the
>> current linux-6.6.y branch, without the 3 patches you added today if it
>> can help.
> 
> How about just resending this one patch after the next 6.6.y release
> that comes out in a day or so.

No hurry, that can indeed wait for the next 6.6.y release.

Just to be sure we are aligned: I suggested backporting these 5 commits:

- 629b35a225b0 ("selftests: mptcp: display simult in extra_msg")
- e3aae1098f10 ("selftests: mptcp: connect: fix shellcheck warnings")
- e7c42bf4d320 ("selftests: mptcp: use += operator to append strings")
- 8e2b8a9fa512 ("mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()")
- 7a1b3490f47e ("mptcp: don't account accept() of non-MPC client as
fallback to TCP")

But only these 3 got backported to 6.6.y:

- e3aae1098f10 ("selftests: mptcp: connect: fix shellcheck warnings")
- 8e2b8a9fa512 ("mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()")
- 7a1b3490f47e ("mptcp: don't account accept() of non-MPC client as
fallback to TCP")

The last commit ("mptcp: don't account accept() of non-MPC client as
fallback to TCP") has a small problem in 6.6.y (only):

- In case of issue, a message will say that the subtest is OK and not
OK, and the TAP report will report that everything is OK with this
subtest => that's OK, nothing critical, that's the tests.
- We can solve that in the next 6.6 version by manually backporting
commit e7c42bf4d320 ("selftests: mptcp: use += operator to append
strings") and its dependence: commit 629b35a225b0 ("selftests: mptcp:
display simult in extra_msg").


Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings
  2024-04-09 15:04         ` Matthieu Baerts
@ 2024-04-11  7:32           ` Greg KH
  2024-04-11 10:06             ` Matthieu Baerts
  0 siblings, 1 reply; 15+ messages in thread
From: Greg KH @ 2024-04-11  7:32 UTC (permalink / raw
  To: Matthieu Baerts; +Cc: mptcp, stable, Geliang Tang, Jakub Kicinski

On Tue, Apr 09, 2024 at 05:04:02PM +0200, Matthieu Baerts wrote:
> Hi Greg,
> 
> On 09/04/2024 14:16, Greg KH wrote:
> > On Mon, Apr 08, 2024 at 06:10:38PM +0200, Matthieu Baerts wrote:
> >> Hi Greg,
> >>
> >> On 08/04/2024 13:31, Greg KH wrote:
> >>> On Fri, Apr 05, 2024 at 05:36:40PM +0200, Matthieu Baerts (NGI0) wrote:
> >>>> From: Geliang Tang <tanggeliang@kylinos.cn>
> >>>>
> >>>> This patch uses addition assignment operator (+=) to append strings
> >>>> instead of duplicating the variable name in mptcp_connect.sh and
> >>>> mptcp_join.sh.
> >>>>
> >>>> This can make the statements shorter.
> >>>>
> >>>> Note: in mptcp_connect.sh, add a local variable extra in do_transfer to
> >>>> save the various extra warning logs, using += to append it. And add a
> >>>> new variable tc_info to save various tc info, also using += to append it.
> >>>> This can make the code more readable and prepare for the next commit.
> >>>>
> >>>> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> >>>> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> >>>> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> >>>> Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-8-4f42c347b653@kernel.org
> >>>> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> >>>> (cherry picked from commit e7c42bf4d320affe37337aa83ae0347832b3f568)
> >>>> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> >>>> ---
> >>>>  .../selftests/net/mptcp/mptcp_connect.sh      | 53 ++++++++++---------
> >>>>  .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++------
> >>>>  2 files changed, 43 insertions(+), 40 deletions(-)
> >>>
> >>> Odd, this one did not apply.
> >>
> >> Indeed, that's odd. Do you use a different merge strategy?
> > 
> > I do not use any merge strategy at all, I use 'patch' to apply patches
> > (well, that's what quilt does), so git is not involved here.
> 
> Ah OK, thank you for the explanation. I thought git was used to do the
> cherry-pick + generate the patch for quilt.

No, git is used only to export the patch from the tree if a git id is
used.  As you sent a patch here, I just used your patch for this.

> I'm still surprised quilt didn't accept these patches generated on top
> of the 6.6-y branch. (By "chance", did you not have conflicts because
> the patch 1/5 (commit 629b35a225b0 ("selftests: mptcp: display simult in
> extra_msg")) didn't get backported by accident? It is strange it is also
> missing in the v6.6.y branch.)

I do not remember if there were conflicts or not, sorry.

> > How about just resending this one patch after the next 6.6.y release
> > that comes out in a day or so.
> 
> No hurry, that can indeed wait for the next 6.6.y release.
> 
> Just to be sure we are aligned: I suggested backporting these 5 commits:
> 
> - 629b35a225b0 ("selftests: mptcp: display simult in extra_msg")

This one I've now queued up.

> - e3aae1098f10 ("selftests: mptcp: connect: fix shellcheck warnings")

Was already in the tree.

> - e7c42bf4d320 ("selftests: mptcp: use += operator to append strings")

Failed to apply

> - 8e2b8a9fa512 ("mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()")

In the tree.

> - 7a1b3490f47e ("mptcp: don't account accept() of non-MPC client as
> fallback to TCP")

In the tree.

> But only these 3 got backported to 6.6.y:
> 
> - e3aae1098f10 ("selftests: mptcp: connect: fix shellcheck warnings")
> - 8e2b8a9fa512 ("mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()")
> - 7a1b3490f47e ("mptcp: don't account accept() of non-MPC client as
> fallback to TCP")
> 
> The last commit ("mptcp: don't account accept() of non-MPC client as
> fallback to TCP") has a small problem in 6.6.y (only):
> 
> - In case of issue, a message will say that the subtest is OK and not
> OK, and the TAP report will report that everything is OK with this
> subtest => that's OK, nothing critical, that's the tests.
> - We can solve that in the next 6.6 version by manually backporting
> commit e7c42bf4d320 ("selftests: mptcp: use += operator to append
> strings") and its dependence: commit 629b35a225b0 ("selftests: mptcp:
> display simult in extra_msg").

Patches gladly accepted :)

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings
  2024-04-11  7:32           ` Greg KH
@ 2024-04-11 10:06             ` Matthieu Baerts
  0 siblings, 0 replies; 15+ messages in thread
From: Matthieu Baerts @ 2024-04-11 10:06 UTC (permalink / raw
  To: Greg KH; +Cc: mptcp, stable, Geliang Tang, Jakub Kicinski

Hi Greg,

On 11/04/2024 09:32, Greg KH wrote:
> On Tue, Apr 09, 2024 at 05:04:02PM +0200, Matthieu Baerts wrote:
>> Hi Greg,
>>
>> On 09/04/2024 14:16, Greg KH wrote:
>>> On Mon, Apr 08, 2024 at 06:10:38PM +0200, Matthieu Baerts wrote:
>>>> Hi Greg,
>>>>
>>>> On 08/04/2024 13:31, Greg KH wrote:
>>>>> On Fri, Apr 05, 2024 at 05:36:40PM +0200, Matthieu Baerts (NGI0) wrote:
>>>>>> From: Geliang Tang <tanggeliang@kylinos.cn>
>>>>>>
>>>>>> This patch uses addition assignment operator (+=) to append strings
>>>>>> instead of duplicating the variable name in mptcp_connect.sh and
>>>>>> mptcp_join.sh.
>>>>>>
>>>>>> This can make the statements shorter.
>>>>>>
>>>>>> Note: in mptcp_connect.sh, add a local variable extra in do_transfer to
>>>>>> save the various extra warning logs, using += to append it. And add a
>>>>>> new variable tc_info to save various tc info, also using += to append it.
>>>>>> This can make the code more readable and prepare for the next commit.
>>>>>>
>>>>>> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
>>>>>> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
>>>>>> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
>>>>>> Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-8-4f42c347b653@kernel.org
>>>>>> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
>>>>>> (cherry picked from commit e7c42bf4d320affe37337aa83ae0347832b3f568)
>>>>>> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
>>>>>> ---
>>>>>>  .../selftests/net/mptcp/mptcp_connect.sh      | 53 ++++++++++---------
>>>>>>  .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++------
>>>>>>  2 files changed, 43 insertions(+), 40 deletions(-)
>>>>>
>>>>> Odd, this one did not apply.
>>>>
>>>> Indeed, that's odd. Do you use a different merge strategy?
>>>
>>> I do not use any merge strategy at all, I use 'patch' to apply patches
>>> (well, that's what quilt does), so git is not involved here.
>>
>> Ah OK, thank you for the explanation. I thought git was used to do the
>> cherry-pick + generate the patch for quilt.
> 
> No, git is used only to export the patch from the tree if a git id is
> used.  As you sent a patch here, I just used your patch for this.

Thank you, that's clearer!

>> I'm still surprised quilt didn't accept these patches generated on top
>> of the 6.6-y branch. (By "chance", did you not have conflicts because
>> the patch 1/5 (commit 629b35a225b0 ("selftests: mptcp: display simult in
>> extra_msg")) didn't get backported by accident? It is strange it is also
>> missing in the v6.6.y branch.)
> 
> I do not remember if there were conflicts or not, sorry.

All good, I can send a fix for v6.6.

>>> How about just resending this one patch after the next 6.6.y release
>>> that comes out in a day or so.
>>
>> No hurry, that can indeed wait for the next 6.6.y release.

(after having read the announcement around the last stable releases, I
understand why it was better to wait to fix this minor issue :) )

>> Just to be sure we are aligned: I suggested backporting these 5 commits:
>>
>> - 629b35a225b0 ("selftests: mptcp: display simult in extra_msg")
> 
> This one I've now queued up.

Thank you!

>> - e3aae1098f10 ("selftests: mptcp: connect: fix shellcheck warnings")
> 
> Was already in the tree.
> 
>> - e7c42bf4d320 ("selftests: mptcp: use += operator to append strings")
> 
> Failed to apply

That's now normal, I can send a patch as a reply to your message.

>> - 8e2b8a9fa512 ("mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()")
> 
> In the tree.
> 
>> - 7a1b3490f47e ("mptcp: don't account accept() of non-MPC client as
>> fallback to TCP")
> 
> In the tree.

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 6.6.y] selftests: mptcp: use += operator to append strings
  2024-04-05  6:29 FAILED: patch "[PATCH] mptcp: don't account accept() of non-MPC client as fallback" failed to apply to 6.6-stable tree gregkh
                   ` (5 preceding siblings ...)
  2024-04-05 15:36 ` [PATCH 6.6.y 5/5] mptcp: don't account accept() of non-MPC client as fallback to TCP Matthieu Baerts (NGI0)
@ 2024-04-11 10:07 ` Matthieu Baerts (NGI0)
  2024-04-15 10:44   ` Greg KH
  6 siblings, 1 reply; 15+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-04-11 10:07 UTC (permalink / raw
  To: stable, gregkh
  Cc: MPTCP Upstream, Geliang Tang, Matthieu Baerts, Jakub Kicinski

From: Geliang Tang <tanggeliang@kylinos.cn>

commit e7c42bf4d320affe37337aa83ae0347832b3f568 upstream.

This patch uses addition assignment operator (+=) to append strings
instead of duplicating the variable name in mptcp_connect.sh and
mptcp_join.sh.

This can make the statements shorter.

Note: in mptcp_connect.sh, add a local variable extra in do_transfer to
save the various extra warning logs, using += to append it. And add a
new variable tc_info to save various tc info, also using += to append it.
This can make the code more readable and prepare for the next commit.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-8-4f42c347b653@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
[ Conflicts in mptcp_connect.sh: this commit was supposed to be
  backported before commit 7a1b3490f47e ("mptcp: don't account accept()
  of non-MPC client as fallback to TCP"). The new condition added by
  this commit was then not expected, and was in fact at the wrong place
  in v6.6: in case of issue, the problem would not have been reported
  correctly. ]
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
 .../selftests/net/mptcp/mptcp_connect.sh      | 53 ++++++++++---------
 .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++------
 2 files changed, 43 insertions(+), 40 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index 7647c74adb26..d203d314b7b2 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -374,15 +374,15 @@ do_transfer()
 	TEST_COUNT=$((TEST_COUNT+1))
 
 	if [ "$rcvbuf" -gt 0 ]; then
-		extra_args="$extra_args -R $rcvbuf"
+		extra_args+=" -R $rcvbuf"
 	fi
 
 	if [ "$sndbuf" -gt 0 ]; then
-		extra_args="$extra_args -S $sndbuf"
+		extra_args+=" -S $sndbuf"
 	fi
 
 	if [ -n "$testmode" ]; then
-		extra_args="$extra_args -m $testmode"
+		extra_args+=" -m $testmode"
 	fi
 
 	if [ -n "$extra_args" ] && $options_log; then
@@ -503,6 +503,7 @@ do_transfer()
 	check_transfer $cin $sout "file received by server"
 	rets=$?
 
+	local extra=""
 	local stat_synrx_now_l
 	local stat_ackrx_now_l
 	local stat_cookietx_now
@@ -538,7 +539,7 @@ do_transfer()
 				"${stat_ackrx_now_l}" "${expect_ackrx}" 1>&2
 			rets=1
 		else
-			printf "[ Note ] fallback due to TCP OoO"
+			extra+=" [ Note ] fallback due to TCP OoO"
 		fi
 	fi
 
@@ -561,13 +562,6 @@ do_transfer()
 		fi
 	fi
 
-	if [ $retc -eq 0 ] && [ $rets -eq 0 ]; then
-		printf "[ OK ]"
-		mptcp_lib_result_pass "${TEST_GROUP}: ${result_msg}"
-	else
-		mptcp_lib_result_fail "${TEST_GROUP}: ${result_msg}"
-	fi
-
 	if [ ${stat_ooo_now} -eq 0 ] && [ ${stat_tcpfb_last_l} -ne ${stat_tcpfb_now_l} ]; then
 		mptcp_lib_pr_fail "unexpected fallback to TCP"
 		rets=1
@@ -575,30 +569,39 @@ do_transfer()
 
 	if [ $cookies -eq 2 ];then
 		if [ $stat_cookietx_last -ge $stat_cookietx_now ] ;then
-			printf " WARN: CookieSent: did not advance"
+			extra+=" WARN: CookieSent: did not advance"
 		fi
 		if [ $stat_cookierx_last -ge $stat_cookierx_now ] ;then
-			printf " WARN: CookieRecv: did not advance"
+			extra+=" WARN: CookieRecv: did not advance"
 		fi
 	else
 		if [ $stat_cookietx_last -ne $stat_cookietx_now ] ;then
-			printf " WARN: CookieSent: changed"
+			extra+=" WARN: CookieSent: changed"
 		fi
 		if [ $stat_cookierx_last -ne $stat_cookierx_now ] ;then
-			printf " WARN: CookieRecv: changed"
+			extra+=" WARN: CookieRecv: changed"
 		fi
 	fi
 
 	if [ ${stat_synrx_now_l} -gt ${expect_synrx} ]; then
-		printf " WARN: SYNRX: expect %d, got %d (probably retransmissions)" \
-			"${expect_synrx}" "${stat_synrx_now_l}"
+		extra+=" WARN: SYNRX: expect ${expect_synrx},"
+		extra+=" got ${stat_synrx_now_l} (probably retransmissions)"
 	fi
 	if [ ${stat_ackrx_now_l} -gt ${expect_ackrx} ]; then
-		printf " WARN: ACKRX: expect %d, got %d (probably retransmissions)" \
-			"${expect_ackrx}" "${stat_ackrx_now_l}"
+		extra+=" WARN: ACKRX: expect ${expect_ackrx},"
+		extra+=" got ${stat_ackrx_now_l} (probably retransmissions)"
+	fi
+
+	if [ $retc -eq 0 ] && [ $rets -eq 0 ]; then
+		printf "[ OK ]%s\n" "${extra}"
+		mptcp_lib_result_pass "${TEST_GROUP}: ${result_msg}"
+	else
+		if [ -n "${extra}" ]; then
+			printf "%s\n" "${extra:1}"
+		fi
+		mptcp_lib_result_fail "${TEST_GROUP}: ${result_msg}"
 	fi
 
-	echo
 	cat "$capout"
 	[ $retc -eq 0 ] && [ $rets -eq 0 ]
 }
@@ -924,8 +927,8 @@ mptcp_lib_result_code "${ret}" "ping tests"
 stop_if_error "Could not even run ping tests"
 
 [ -n "$tc_loss" ] && tc -net "$ns2" qdisc add dev ns2eth3 root netem loss random $tc_loss delay ${tc_delay}ms
-echo -n "INFO: Using loss of $tc_loss "
-test "$tc_delay" -gt 0 && echo -n "delay $tc_delay ms "
+tc_info="loss of $tc_loss "
+test "$tc_delay" -gt 0 && tc_info+="delay $tc_delay ms "
 
 reorder_delay=$((tc_delay / 4))
 
@@ -936,17 +939,17 @@ if [ -z "${tc_reorder}" ]; then
 
 	if [ $reorder_delay -gt 0 ] && [ $reorder1 -lt 100 ] && [ $reorder2 -gt 0 ]; then
 		tc_reorder="reorder ${reorder1}% ${reorder2}%"
-		echo -n "$tc_reorder with delay ${reorder_delay}ms "
+		tc_info+="$tc_reorder with delay ${reorder_delay}ms "
 	fi
 elif [ "$tc_reorder" = "0" ];then
 	tc_reorder=""
 elif [ "$reorder_delay" -gt 0 ];then
 	# reordering requires some delay
 	tc_reorder="reorder $tc_reorder"
-	echo -n "$tc_reorder with delay ${reorder_delay}ms "
+	tc_info+="$tc_reorder with delay ${reorder_delay}ms "
 fi
 
-echo "on ns3eth4"
+echo "INFO: Using ${tc_info}on ns3eth4"
 
 tc -net "$ns3" qdisc add dev ns3eth4 root netem delay ${reorder_delay}ms $tc_reorder
 
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 1e1c3d713360..371583009a66 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -822,18 +822,18 @@ pm_nl_check_endpoint()
 		line="${line% }"
 		# the dump order is: address id flags port dev
 		[ -n "$addr" ] && expected_line="$addr"
-		expected_line="$expected_line $id"
-		[ -n "$_flags" ] && expected_line="$expected_line ${_flags//","/" "}"
-		[ -n "$dev" ] && expected_line="$expected_line $dev"
-		[ -n "$port" ] && expected_line="$expected_line $port"
+		expected_line+=" $id"
+		[ -n "$_flags" ] && expected_line+=" ${_flags//","/" "}"
+		[ -n "$dev" ] && expected_line+=" $dev"
+		[ -n "$port" ] && expected_line+=" $port"
 	else
 		line=$(ip netns exec $ns ./pm_nl_ctl get $_id)
 		# the dump order is: id flags dev address port
 		expected_line="$id"
-		[ -n "$flags" ] && expected_line="$expected_line $flags"
-		[ -n "$dev" ] && expected_line="$expected_line $dev"
-		[ -n "$addr" ] && expected_line="$expected_line $addr"
-		[ -n "$_port" ] && expected_line="$expected_line $_port"
+		[ -n "$flags" ] && expected_line+=" $flags"
+		[ -n "$dev" ] && expected_line+=" $dev"
+		[ -n "$addr" ] && expected_line+=" $addr"
+		[ -n "$_port" ] && expected_line+=" $_port"
 	fi
 	if [ "$line" = "$expected_line" ]; then
 		print_ok
@@ -1256,7 +1256,7 @@ chk_csum_nr()
 	print_check "sum"
 	count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtDataCsumErr")
 	if [ "$count" != "$csum_ns1" ]; then
-		extra_msg="$extra_msg ns1=$count"
+		extra_msg+=" ns1=$count"
 	fi
 	if [ -z "$count" ]; then
 		print_skip
@@ -1269,7 +1269,7 @@ chk_csum_nr()
 	print_check "csum"
 	count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtDataCsumErr")
 	if [ "$count" != "$csum_ns2" ]; then
-		extra_msg="$extra_msg ns2=$count"
+		extra_msg+=" ns2=$count"
 	fi
 	if [ -z "$count" ]; then
 		print_skip
@@ -1313,7 +1313,7 @@ chk_fail_nr()
 	print_check "ftx"
 	count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPFailTx")
 	if [ "$count" != "$fail_tx" ]; then
-		extra_msg="$extra_msg,tx=$count"
+		extra_msg+=",tx=$count"
 	fi
 	if [ -z "$count" ]; then
 		print_skip
@@ -1327,7 +1327,7 @@ chk_fail_nr()
 	print_check "failrx"
 	count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPFailRx")
 	if [ "$count" != "$fail_rx" ]; then
-		extra_msg="$extra_msg,rx=$count"
+		extra_msg+=",rx=$count"
 	fi
 	if [ -z "$count" ]; then
 		print_skip
@@ -1362,7 +1362,7 @@ chk_fclose_nr()
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$fclose_tx" ]; then
-		extra_msg="$extra_msg,tx=$count"
+		extra_msg+=",tx=$count"
 		fail_test "got $count MP_FASTCLOSE[s] TX expected $fclose_tx"
 	else
 		print_ok
@@ -1373,7 +1373,7 @@ chk_fclose_nr()
 	if [ -z "$count" ]; then
 		print_skip
 	elif [ "$count" != "$fclose_rx" ]; then
-		extra_msg="$extra_msg,rx=$count"
+		extra_msg+=",rx=$count"
 		fail_test "got $count MP_FASTCLOSE[s] RX expected $fclose_rx"
 	else
 		print_ok
@@ -1742,7 +1742,7 @@ chk_rm_nr()
 		count=$((count + cnt))
 		if [ "$count" != "$rm_subflow_nr" ]; then
 			suffix="$count in [$rm_subflow_nr:$((rm_subflow_nr*2))]"
-			extra_msg="$extra_msg simult"
+			extra_msg+=" simult"
 		fi
 		if [ $count -ge "$rm_subflow_nr" ] && \
 		   [ "$count" -le "$((rm_subflow_nr *2 ))" ]; then
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 6.6.y] selftests: mptcp: use += operator to append strings
  2024-04-11 10:07 ` [PATCH 6.6.y] selftests: mptcp: use += operator to append strings Matthieu Baerts (NGI0)
@ 2024-04-15 10:44   ` Greg KH
  0 siblings, 0 replies; 15+ messages in thread
From: Greg KH @ 2024-04-15 10:44 UTC (permalink / raw
  To: Matthieu Baerts (NGI0)
  Cc: stable, MPTCP Upstream, Geliang Tang, Jakub Kicinski

On Thu, Apr 11, 2024 at 12:07:10PM +0200, Matthieu Baerts (NGI0) wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
> 
> commit e7c42bf4d320affe37337aa83ae0347832b3f568 upstream.
> 
> This patch uses addition assignment operator (+=) to append strings
> instead of duplicating the variable name in mptcp_connect.sh and
> mptcp_join.sh.
> 
> This can make the statements shorter.
> 
> Note: in mptcp_connect.sh, add a local variable extra in do_transfer to
> save the various extra warning logs, using += to append it. And add a
> new variable tc_info to save various tc info, also using += to append it.
> This can make the code more readable and prepare for the next commit.
> 
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> Link: https://lore.kernel.org/r/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-8-4f42c347b653@kernel.org
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> [ Conflicts in mptcp_connect.sh: this commit was supposed to be
>   backported before commit 7a1b3490f47e ("mptcp: don't account accept()
>   of non-MPC client as fallback to TCP"). The new condition added by
>   this commit was then not expected, and was in fact at the wrong place
>   in v6.6: in case of issue, the problem would not have been reported
>   correctly. ]
> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> ---
>  .../selftests/net/mptcp/mptcp_connect.sh      | 53 ++++++++++---------
>  .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++------
>  2 files changed, 43 insertions(+), 40 deletions(-)

Now queued up, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-04-15 10:44 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-05  6:29 FAILED: patch "[PATCH] mptcp: don't account accept() of non-MPC client as fallback" failed to apply to 6.6-stable tree gregkh
2024-04-05 15:36 ` [PATCH 6.6.y 0/5] Backport "mptcp: don't account accept() of non-MPC client as fallback to TCP" Matthieu Baerts (NGI0)
2024-04-05 15:36 ` [PATCH 6.6.y 1/5] selftests: mptcp: display simult in extra_msg Matthieu Baerts (NGI0)
2024-04-05 15:36 ` [PATCH 6.6.y 2/5] selftests: mptcp: connect: fix shellcheck warnings Matthieu Baerts (NGI0)
2024-04-05 15:36 ` [PATCH 6.6.y 3/5] selftests: mptcp: use += operator to append strings Matthieu Baerts (NGI0)
2024-04-08 11:31   ` Greg KH
2024-04-08 16:10     ` Matthieu Baerts
2024-04-09 12:16       ` Greg KH
2024-04-09 15:04         ` Matthieu Baerts
2024-04-11  7:32           ` Greg KH
2024-04-11 10:06             ` Matthieu Baerts
2024-04-05 15:36 ` [PATCH 6.6.y 4/5] mptcp: don't overwrite sock_ops in mptcp_is_tcpsk() Matthieu Baerts (NGI0)
2024-04-05 15:36 ` [PATCH 6.6.y 5/5] mptcp: don't account accept() of non-MPC client as fallback to TCP Matthieu Baerts (NGI0)
2024-04-11 10:07 ` [PATCH 6.6.y] selftests: mptcp: use += operator to append strings Matthieu Baerts (NGI0)
2024-04-15 10:44   ` Greg KH

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.