All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases
@ 2022-02-20  2:59 Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 01/12] mptcp: add the mibs for MP_FASTCLOSE Geliang Tang
                   ` (12 more replies)
  0 siblings, 13 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

v2:
 - keep the order of the applied patches. Drop the revert patches in v1.

v1:
Resend all my queued patches in the patchwork. The sequence of 4 applied
patches is adjusted and rebased. No code modified.

Geliang Tang (12):
  mptcp: add the mibs for MP_FASTCLOSE
  selftests: mptcp: add the MP_FASTCLOSE mibs check
  mptcp: add the mibs for MP_RST
  selftests: mptcp: add the MP_RST mibs check
  selftests: mptcp: add extra_args in do_transfer
  selftests: mptcp: reuse linkfail to make given size files
  selftests: mptcp: add fastclose testcase
  Squash to "mptcp: infinite mapping receiving"
  Squash to "selftests: mptcp: add infinite map mibs check"
  selftests: mptcp: add more arguments for chk_join_nr
  selftests: mptcp: add the MP_FAIL testcases
  selftests: mptcp: update output info of chk_rm_nr

 net/mptcp/mib.c                               |   4 +
 net/mptcp/mib.h                               |   4 +
 net/mptcp/options.c                           |   5 +
 net/mptcp/subflow.c                           |   1 +
 tools/testing/selftests/net/mptcp/config      |   8 +
 .../testing/selftests/net/mptcp/mptcp_join.sh | 336 +++++++++++++++---
 6 files changed, 307 insertions(+), 51 deletions(-)

-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 01/12] mptcp: add the mibs for MP_FASTCLOSE
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 02/12] selftests: mptcp: add the MP_FASTCLOSE mibs check Geliang Tang
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

This patch added two more mibs for MP_FASTCLOSE, MPTCP_MIB_MPFASTCLOSETX
for the MP_FASTCLOSE sending and MPTCP_MIB_MPFASTCLOSERX for receiving.

Also added a debug log for MP_FASTCLOSE receiving, printed out the recv_key
of MP_FASTCLOSE in mptcp_parse_option to show that MP_RST is received.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/mib.c     | 2 ++
 net/mptcp/mib.h     | 2 ++
 net/mptcp/options.c | 3 +++
 3 files changed, 7 insertions(+)

diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c
index 7cef7409e300..684643f8af53 100644
--- a/net/mptcp/mib.c
+++ b/net/mptcp/mib.c
@@ -49,6 +49,8 @@ static const struct snmp_mib mptcp_snmp_list[] = {
 	SNMP_MIB_ITEM("MPPrioRx", MPTCP_MIB_MPPRIORX),
 	SNMP_MIB_ITEM("MPFailTx", MPTCP_MIB_MPFAILTX),
 	SNMP_MIB_ITEM("MPFailRx", MPTCP_MIB_MPFAILRX),
+	SNMP_MIB_ITEM("MPFastcloseTx", MPTCP_MIB_MPFASTCLOSETX),
+	SNMP_MIB_ITEM("MPFastcloseRx", MPTCP_MIB_MPFASTCLOSERX),
 	SNMP_MIB_ITEM("RcvPruned", MPTCP_MIB_RCVPRUNED),
 	SNMP_MIB_ITEM("SubflowStale", MPTCP_MIB_SUBFLOWSTALE),
 	SNMP_MIB_ITEM("SubflowRecover", MPTCP_MIB_SUBFLOWRECOVER),
diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h
index 785cf751e5c0..93dd5176fd5e 100644
--- a/net/mptcp/mib.h
+++ b/net/mptcp/mib.h
@@ -42,6 +42,8 @@ enum linux_mptcp_mib_field {
 	MPTCP_MIB_MPPRIORX,		/* Received a MP_PRIO */
 	MPTCP_MIB_MPFAILTX,		/* Transmit a MP_FAIL */
 	MPTCP_MIB_MPFAILRX,		/* Received a MP_FAIL */
+	MPTCP_MIB_MPFASTCLOSETX,	/* Transmit a MP_FASTCLOSE */
+	MPTCP_MIB_MPFASTCLOSERX,	/* Received a MP_FASTCLOSE */
 	MPTCP_MIB_RCVPRUNED,		/* Incoming packet dropped due to memory limit */
 	MPTCP_MIB_SUBFLOWSTALE,		/* Subflows entered 'stale' status */
 	MPTCP_MIB_SUBFLOWRECOVER,	/* Subflows returned to active status after being stale */
diff --git a/net/mptcp/options.c b/net/mptcp/options.c
index 0401b22128c4..e775d75807fd 100644
--- a/net/mptcp/options.c
+++ b/net/mptcp/options.c
@@ -323,6 +323,7 @@ static void mptcp_parse_option(const struct sk_buff *skb,
 		mp_opt->rcvr_key = get_unaligned_be64(ptr);
 		ptr += 8;
 		mp_opt->suboptions |= OPTION_MPTCP_FASTCLOSE;
+		pr_debug("MP_FASTCLOSE: recv_key=%llu", mp_opt->rcvr_key);
 		break;
 
 	case MPTCPOPT_RST:
@@ -832,6 +833,7 @@ bool mptcp_established_options(struct sock *sk, struct sk_buff *skb,
 		    mptcp_established_options_mp_fail(sk, &opt_size, remaining, opts)) {
 			*size += opt_size;
 			remaining -= opt_size;
+			MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPFASTCLOSETX);
 		}
 		/* MP_RST can be used with MP_FASTCLOSE and MP_FAIL if there is room */
 		if (mptcp_established_options_rst(sk, skb, &opt_size, remaining, opts)) {
@@ -1124,6 +1126,7 @@ bool mptcp_incoming_options(struct sock *sk, struct sk_buff *skb)
 		    msk->local_key == mp_opt.rcvr_key) {
 			WRITE_ONCE(msk->rcv_fastclose, true);
 			mptcp_schedule_work((struct sock *)msk);
+			MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPFASTCLOSERX);
 		}
 
 		if ((mp_opt.suboptions & OPTION_MPTCP_ADD_ADDR) &&
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 02/12] selftests: mptcp: add the MP_FASTCLOSE mibs check
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 01/12] mptcp: add the mibs for MP_FASTCLOSE Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 03/12] mptcp: add the mibs for MP_RST Geliang Tang
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

This patch added a new function chk_fclose_nr() to check the numbers
of the MP_FASTCLOSE sending and receiving mibs.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 8e6a5292175a..8f81ec0b7552 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -904,6 +904,38 @@ chk_infi_nr()
 	[ "${dump_stats}" = 1 ] && dump_stats
 }
 
+chk_fclose_nr()
+{
+	local fclose_tx=$1
+	local fclose_rx=$2
+	local count
+	local dump_stats
+
+	printf "%-${nr_blank}s %s" " " "ctx"
+	count=`ip netns exec $ns2 nstat -as | grep MPTcpExtMPFastcloseTx | awk '{print $2}'`
+	[ -z "$count" ] && count=0
+	if [ "$count" != "$fclose_tx" ]; then
+		echo "[fail] got $count MP_FASTCLOSE[s] TX expected $fclose_tx"
+		ret=1
+		dump_stats=1
+	else
+		echo -n "[ ok ]"
+	fi
+
+	echo -n " - fclzrx"
+	count=`ip netns exec $ns1 nstat -as | grep MPTcpExtMPFastcloseRx | awk '{print $2}'`
+	[ -z "$count" ] && count=0
+	if [ "$count" != "$fclose_rx" ]; then
+		echo "[fail] got $count MP_FASTCLOSE[s] RX expected $fclose_rx"
+		ret=1
+		dump_stats=1
+	else
+		echo "[ ok ]"
+	fi
+
+	[ "${dump_stats}" = 1 ] && dump_stats
+}
+
 chk_join_nr()
 {
 	local msg="$1"
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 03/12] mptcp: add the mibs for MP_RST
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 01/12] mptcp: add the mibs for MP_FASTCLOSE Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 02/12] selftests: mptcp: add the MP_FASTCLOSE mibs check Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 04/12] selftests: mptcp: add the MP_RST mibs check Geliang Tang
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

This patch added two more mibs for MP_RST, MPTCP_MIB_MPRSTTX for
the MP_RST sending and MPTCP_MIB_MPRSTRX for the MP_RST receiving.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/mib.c     | 2 ++
 net/mptcp/mib.h     | 2 ++
 net/mptcp/options.c | 2 ++
 3 files changed, 6 insertions(+)

diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c
index 684643f8af53..d93a8c9996fd 100644
--- a/net/mptcp/mib.c
+++ b/net/mptcp/mib.c
@@ -51,6 +51,8 @@ static const struct snmp_mib mptcp_snmp_list[] = {
 	SNMP_MIB_ITEM("MPFailRx", MPTCP_MIB_MPFAILRX),
 	SNMP_MIB_ITEM("MPFastcloseTx", MPTCP_MIB_MPFASTCLOSETX),
 	SNMP_MIB_ITEM("MPFastcloseRx", MPTCP_MIB_MPFASTCLOSERX),
+	SNMP_MIB_ITEM("MPRstTx", MPTCP_MIB_MPRSTTX),
+	SNMP_MIB_ITEM("MPRstRx", MPTCP_MIB_MPRSTRX),
 	SNMP_MIB_ITEM("RcvPruned", MPTCP_MIB_RCVPRUNED),
 	SNMP_MIB_ITEM("SubflowStale", MPTCP_MIB_SUBFLOWSTALE),
 	SNMP_MIB_ITEM("SubflowRecover", MPTCP_MIB_SUBFLOWRECOVER),
diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h
index 93dd5176fd5e..529d07af9e14 100644
--- a/net/mptcp/mib.h
+++ b/net/mptcp/mib.h
@@ -44,6 +44,8 @@ enum linux_mptcp_mib_field {
 	MPTCP_MIB_MPFAILRX,		/* Received a MP_FAIL */
 	MPTCP_MIB_MPFASTCLOSETX,	/* Transmit a MP_FASTCLOSE */
 	MPTCP_MIB_MPFASTCLOSERX,	/* Received a MP_FASTCLOSE */
+	MPTCP_MIB_MPRSTTX,		/* Transmit a MP_RST */
+	MPTCP_MIB_MPRSTRX,		/* Received a MP_RST */
 	MPTCP_MIB_RCVPRUNED,		/* Incoming packet dropped due to memory limit */
 	MPTCP_MIB_SUBFLOWSTALE,		/* Subflows entered 'stale' status */
 	MPTCP_MIB_SUBFLOWRECOVER,	/* Subflows returned to active status after being stale */
diff --git a/net/mptcp/options.c b/net/mptcp/options.c
index e775d75807fd..88f4ebbd6515 100644
--- a/net/mptcp/options.c
+++ b/net/mptcp/options.c
@@ -839,6 +839,7 @@ bool mptcp_established_options(struct sock *sk, struct sk_buff *skb,
 		if (mptcp_established_options_rst(sk, skb, &opt_size, remaining, opts)) {
 			*size += opt_size;
 			remaining -= opt_size;
+			MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPRSTTX);
 		}
 		return true;
 	}
@@ -1161,6 +1162,7 @@ bool mptcp_incoming_options(struct sock *sk, struct sk_buff *skb)
 			subflow->reset_seen = 1;
 			subflow->reset_reason = mp_opt.reset_reason;
 			subflow->reset_transient = mp_opt.reset_transient;
+			MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_MPRSTRX);
 		}
 
 		if (!(mp_opt.suboptions & OPTION_MPTCP_DSS))
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 04/12] selftests: mptcp: add the MP_RST mibs check
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (2 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 03/12] mptcp: add the mibs for MP_RST Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 05/12] selftests: mptcp: add extra_args in do_transfer Geliang Tang
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

This patch added a new function chk_rst_nr() to check the numbers
of the MP_RST sending and receiving mibs.

Showed in the output whether the inverted namespaces check order is used.
Since if we pass -Cz to mptcp_join.sh, the MP_RST information is showed
twice.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 45 +++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 8f81ec0b7552..ed4b35652ab5 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -872,6 +872,50 @@ chk_fail_nr()
 	[ "${dump_stats}" = 1 ] && dump_stats
 }
 
+chk_rst_nr()
+{
+	local rst_tx=$1
+	local rst_rx=$2
+	local ns_invert=${3:-""}
+	local count
+	local dump_stats
+	local ns_tx=$ns1
+	local ns_rx=$ns2
+	local extra_msg=""
+
+	if [[ $ns_invert = "invert" ]]; then
+		ns_tx=$ns2
+		ns_rx=$ns1
+		extra_msg="   invert"
+	fi
+
+	printf "%-${nr_blank}s %s" " " "rtx"
+	count=`ip netns exec $ns_tx nstat -as | grep MPTcpExtMPRstTx | awk '{print $2}'`
+	[ -z "$count" ] && count=0
+	if [ "$count" != "$rst_tx" ]; then
+		echo "[fail] got $count MP_RST[s] TX expected $rst_tx"
+		ret=1
+		dump_stats=1
+	else
+		echo -n "[ ok ]"
+	fi
+
+	echo -n " - rstrx "
+	count=`ip netns exec $ns_rx nstat -as | grep MPTcpExtMPRstRx | awk '{print $2}'`
+	[ -z "$count" ] && count=0
+	if [ "$count" != "$rst_rx" ]; then
+		echo "[fail] got $count MP_RST[s] RX expected $rst_rx"
+		ret=1
+		dump_stats=1
+	else
+		echo -n "[ ok ]"
+	fi
+
+	[ "${dump_stats}" = 1 ] && dump_stats
+
+	echo "$extra_msg"
+}
+
 chk_infi_nr()
 {
 	local mp_infi_nr_tx=$1
@@ -990,6 +1034,7 @@ chk_join_nr()
 	if [ $checksum -eq 1 ]; then
 		chk_csum_nr
 		chk_fail_nr 0 0
+		chk_rst_nr 0 0
 		chk_infi_nr 0 0
 	fi
 }
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 05/12] selftests: mptcp: add extra_args in do_transfer
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (3 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 04/12] selftests: mptcp: add the MP_RST mibs check Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 06/12] selftests: mptcp: reuse linkfail to make given size files Geliang Tang
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

Instead of using a global variable mptcp_connect, this patch added
a new local variable extra_args in do_transfer() to store the extra
argments passing to the mptcp_connect commands.

This patch also renamed the speed level 'least' to 'speed_*'. This
more flexible way can avoid the need to add new speed levels in the
future.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 30 +++++++++----------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index ed4b35652ab5..c06e9e9a0a3f 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -12,7 +12,6 @@ cout=""
 ksft_skip=4
 timeout_poll=30
 timeout_test=$((timeout_poll * 2 + 1))
-mptcp_connect=""
 capture=0
 checksum=0
 ip_mptcp=0
@@ -524,12 +523,13 @@ do_transfer()
 	NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
 		nstat -n
 
+	local extra_args
 	if [ $speed = "fast" ]; then
-		mptcp_connect="./mptcp_connect -j"
+		extra_args="-j"
 	elif [ $speed = "slow" ]; then
-		mptcp_connect="./mptcp_connect -r 50"
-	elif [ $speed = "least" ]; then
-		mptcp_connect="./mptcp_connect -r 10"
+		extra_args="-r 50"
+	elif [[ $speed = "speed_"* ]]; then
+		extra_args="-r ${speed:6}"
 	fi
 
 	local local_addr
@@ -542,13 +542,13 @@ do_transfer()
 	if [ "$test_link_fail" -eq 2 ];then
 		timeout ${timeout_test} \
 			ip netns exec ${listener_ns} \
-				$mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
-					${local_addr} < "$sinfail" > "$sout" &
+				./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
+					$extra_args ${local_addr} < "$sinfail" > "$sout" &
 	else
 		timeout ${timeout_test} \
 			ip netns exec ${listener_ns} \
-				$mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
-					${local_addr} < "$sin" > "$sout" &
+				./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
+					$extra_args ${local_addr} < "$sin" > "$sout" &
 	fi
 	spid=$!
 
@@ -557,15 +557,15 @@ do_transfer()
 	if [ "$test_link_fail" -eq 0 ];then
 		timeout ${timeout_test} \
 			ip netns exec ${connector_ns} \
-				$mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
-					$connect_addr < "$cin" > "$cout" &
+				./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
+					$extra_args $connect_addr < "$cin" > "$cout" &
 	else
 		( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" ) | \
 			tee "$cinsent" | \
 			timeout ${timeout_test} \
 				ip netns exec ${connector_ns} \
-					$mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
-						$connect_addr > "$cout" &
+					./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
+						$extra_args $connect_addr > "$cout" &
 	fi
 	cpid=$!
 
@@ -1620,7 +1620,7 @@ add_addr_timeout_tests()
 	pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
 	pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
 	pm_nl_set_limits $ns2 2 2
-	run_tests $ns1 $ns2 10.0.1.1 0 0 0 least
+	run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10
 	chk_join_nr "signal addresses, ADD_ADDR timeout" 2 2 2
 	chk_add_nr 8 0
 
@@ -1630,7 +1630,7 @@ add_addr_timeout_tests()
 	pm_nl_add_endpoint $ns1 10.0.12.1 flags signal
 	pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
 	pm_nl_set_limits $ns2 2 2
-	run_tests $ns1 $ns2 10.0.1.1 0 0 0 least
+	run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10
 	chk_join_nr "invalid address, ADD_ADDR timeout" 1 1 1
 	chk_add_nr 8 0
 }
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 06/12] selftests: mptcp: reuse linkfail to make given size files
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (4 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 05/12] selftests: mptcp: add extra_args in do_transfer Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 07/12] selftests: mptcp: add fastclose testcase Geliang Tang
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

This patch reused the test_linkfail values above 2 to make test files with
the given sizes (KB) for both the client side and the server side. It's
useful for the test cases using different file sizes.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 32 ++++++++++++++++---
 1 file changed, 27 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index c06e9e9a0a3f..9d2076021df2 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -539,7 +539,7 @@ do_transfer()
 		local_addr="0.0.0.0"
 	fi
 
-	if [ "$test_link_fail" -eq 2 ];then
+	if [ "$test_link_fail" -gt 1 ];then
 		timeout ${timeout_test} \
 			ip netns exec ${listener_ns} \
 				./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
@@ -559,13 +559,19 @@ do_transfer()
 			ip netns exec ${connector_ns} \
 				./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
 					$extra_args $connect_addr < "$cin" > "$cout" &
-	else
+	elif [ "$test_link_fail" -eq 1 ] || [ "$test_link_fail" -eq 2 ];then
 		( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" ) | \
 			tee "$cinsent" | \
 			timeout ${timeout_test} \
 				ip netns exec ${connector_ns} \
 					./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
 						$extra_args $connect_addr > "$cout" &
+	else
+		cat "$cinfail" | tee "$cinsent" | \
+			timeout ${timeout_test} \
+				ip netns exec ${connector_ns} \
+					./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
+						$extra_args $connect_addr > "$cout" &
 	fi
 	cpid=$!
 
@@ -725,7 +731,7 @@ do_transfer()
 		return 1
 	fi
 
-	if [ "$test_link_fail" -eq 2 ];then
+	if [ "$test_link_fail" -gt 1 ];then
 		check_transfer $sinfail $cout "file received by client"
 	else
 		check_transfer $sin $cout "file received by client"
@@ -770,9 +776,18 @@ run_tests()
 	speed="${7:-fast}"
 	sflags="${8:-""}"
 
+	# The values above 2 are reused to make test files
+	# with the given sizes (KB)
+	if [ "$test_linkfail" -gt 2 ]; then
+		size=$test_linkfail
+
+		if [ -z "$cinfail" ]; then
+			cinfail=$(mktemp)
+		fi
+		make_file "$cinfail" "client" $size
 	# create the input file for the failure test when
 	# the first failure test run
-	if [ "$test_linkfail" -ne 0 -a -z "$cinfail" ]; then
+	elif [ "$test_linkfail" -ne 0 -a -z "$cinfail" ]; then
 		# the client file must be considerably larger
 		# of the maximum expected cwin value, or the
 		# link utilization will be not predicable
@@ -785,7 +800,14 @@ run_tests()
 		make_file "$cinfail" "client" $size
 	fi
 
-	if [ "$test_linkfail" -eq 2 -a -z "$sinfail" ]; then
+	if [ "$test_linkfail" -gt 2 ]; then
+		size=$test_linkfail
+
+		if [ -z "$sinfail" ]; then
+			sinfail=$(mktemp)
+		fi
+		make_file "$sinfail" "server" $size
+	elif [ "$test_linkfail" -eq 2 -a -z "$sinfail" ]; then
 		size=$((RANDOM%16))
 		size=$((size+1))
 		size=$((size*2048))
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 07/12] selftests: mptcp: add fastclose testcase
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (5 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 06/12] selftests: mptcp: reuse linkfail to make given size files Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 08/12] Squash to "mptcp: infinite mapping receiving" Geliang Tang
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

This patch added the self test for MP_FASTCLOSE. Reused the argment
addr_nr_ns2 of do_transfer() to pass the extra argments '-I 2' to
mptcp_connect commands. Then mptcp_connect disconnected the
connections to trigger the MP_FASTCLOSE sending and receiving. Used
chk_fclose_nr to check the MP_FASTCLOSE mibs and used chk_rst_nr to
check the MP_RST mibs. This test used the test_linkfail value to make
1024KB test files.

The output looks like this:

Created /tmp/tmp.XB8sfv1hJ0 (size 1024 KB) containing data sent by client
Created /tmp/tmp.RtTDbzqrXI (size 1024 KB) containing data sent by server
001 fastclose test                syn[ ok ] - synack[ ok ] - ack[ ok ]
                                  ctx[ ok ] - fclzrx[ ok ]
                                  rtx[ ok ] - rstrx [ ok ]   invert

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 22 ++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 9d2076021df2..1b8b531c8a87 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -532,6 +532,12 @@ do_transfer()
 		extra_args="-r ${speed:6}"
 	fi
 
+	if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then
+		# disconnect
+		extra_args="$extra_args -I ${addr_nr_ns2:10}"
+		addr_nr_ns2=0
+	fi
+
 	local local_addr
 	if is_v6 "${connect_addr}"; then
 		local_addr="::"
@@ -2409,6 +2415,15 @@ implicit_tests()
 	wait
 }
 
+fastclose_tests()
+{
+	reset
+	run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_2
+	chk_join_nr "fastclose test" 0 0 0
+	chk_fclose_nr 1 1
+	chk_rst_nr 1 1 invert
+}
+
 all_tests()
 {
 	subflows_tests
@@ -2428,6 +2443,7 @@ all_tests()
 	fullmesh_tests
 	userspace_tests
 	implicit_tests
+	fastclose_tests
 }
 
 # [$1: error message]
@@ -2456,6 +2472,7 @@ usage()
 	echo "  -m fullmesh_tests"
 	echo "  -u userspace_tests"
 	echo "  -I implicit_tests"
+	echo "  -z fastclose_tests"
 	echo "  -c capture pcap files"
 	echo "  -C enable data checksum"
 	echo "  -i use ip mptcp"
@@ -2487,7 +2504,7 @@ if [ $do_all_tests -eq 1 ]; then
 	exit $ret
 fi
 
-while getopts 'fesltra64bpkdmuchCSiI' opt; do
+while getopts 'fesltra64bpkdmuchzCSiI' opt; do
 	case $opt in
 		f)
 			subflows_tests
@@ -2537,6 +2554,9 @@ while getopts 'fesltra64bpkdmuchCSiI' opt; do
 		u)
 			userspace_tests
 			;;
+		z)
+			fastclose_tests
+			;;
 		c)
 			;;
 		C)
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 08/12] Squash to "mptcp: infinite mapping receiving"
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (6 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 07/12] selftests: mptcp: add fastclose testcase Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 09/12] Squash to "selftests: mptcp: add infinite map mibs check" Geliang Tang
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

Print out the infinite map received info.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/subflow.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index c05c19f92532..30ffb00661bb 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -1006,6 +1006,7 @@ static enum mapping_status get_mapping_status(struct sock *ssk,
 
 	data_len = mpext->data_len;
 	if (data_len == 0) {
+		pr_debug("infinite mapping received");
 		MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_INFINITEMAPRX);
 		subflow->map_data_len = 0;
 		return MAPPING_INVALID;
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 09/12] Squash to "selftests: mptcp: add infinite map mibs check"
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (7 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 08/12] Squash to "mptcp: infinite mapping receiving" Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 10/12] selftests: mptcp: add more arguments for chk_join_nr Geliang Tang
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

Rename mp_infi_nr_tx, mp_infi_nr_rx and irx.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 1b8b531c8a87..dfb87794056f 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -946,27 +946,27 @@ chk_rst_nr()
 
 chk_infi_nr()
 {
-	local mp_infi_nr_tx=$1
-	local mp_infi_nr_rx=$2
+	local infi_tx=$1
+	local infi_rx=$2
 	local count
 	local dump_stats
 
 	printf "%-${nr_blank}s %s" " " "itx"
 	count=`ip netns exec $ns2 nstat -as | grep InfiniteMapTx | awk '{print $2}'`
 	[ -z "$count" ] && count=0
-	if [ "$count" != "$mp_infi_nr_tx" ]; then
-		echo "[fail] got $count infinite map[s] TX expected $mp_infi_nr_tx"
+	if [ "$count" != "$infi_tx" ]; then
+		echo "[fail] got $count infinite map[s] TX expected $infi_tx"
 		ret=1
 		dump_stats=1
 	else
 		echo -n "[ ok ]"
 	fi
 
-	echo -n " - irx   "
+	echo -n " - infirx"
 	count=`ip netns exec $ns1 nstat -as | grep InfiniteMapRx | awk '{print $2}'`
 	[ -z "$count" ] && count=0
-	if [ "$count" != "$mp_infi_nr_rx" ]; then
-		echo "[fail] got $count infinite map[s] RX expected $mp_infi_nr_rx"
+	if [ "$count" != "$infi_rx" ]; then
+		echo "[fail] got $count infinite map[s] RX expected $infi_rx"
 		ret=1
 		dump_stats=1
 	else
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 10/12] selftests: mptcp: add more arguments for chk_join_nr
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (8 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 09/12] Squash to "selftests: mptcp: add infinite map mibs check" Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 11/12] selftests: mptcp: add the MP_FAIL testcases Geliang Tang
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

This patch added five more arguments for chk_join_nr(). The default
values of them are all zero.

The first two, csum_ns1 and csum_ns1, are passed to chk_csum_nr(), to
check the mib counters of the checksum errors in ns1 and ns2. A '+'
can be added into this two arguments to represent that multiple
checksum errors are allowed when doing this check. For example,

        chk_csum_nr "" +2 +2

indicates that two or more checksum errors are allowed in both ns1 and
ns2.

The remaining three, fail_nr, rst_nr and infi_nr, are passed to
chk_fail_nr(), chk_rst_nr() and chk_infi_nr() respectively, to check
the sending and receiving mib counters of MP_FAIL, MP_RST and the
infinite map.

Also did some cleanups in chk_fail_nr(), renamed two local variables
and updated the output message.

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 50 +++++++++++++------
 1 file changed, 35 insertions(+), 15 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index dfb87794056f..f33822b28058 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -837,8 +837,21 @@ dump_stats()
 chk_csum_nr()
 {
 	local msg=${1:-""}
+	local csum_ns1=${2:-0}
+	local csum_ns2=${3:-0}
 	local count
 	local dump_stats
+	local allow_multi_errors_ns1=0
+	local allow_multi_errors_ns2=0
+
+	if [[ "${csum_ns1}" = "+"* ]]; then
+		allow_multi_errors_ns1=1
+		csum_ns1=${csum_ns1:1}
+	fi
+	if [[ "${csum_ns2}" = "+"* ]]; then
+		allow_multi_errors_ns2=1
+		csum_ns2=${csum_ns2:1}
+	fi
 
 	if [ ! -z "$msg" ]; then
 		printf "%03u" "$TEST_COUNT"
@@ -848,8 +861,9 @@ chk_csum_nr()
 	printf " %-36s %s" "$msg" "sum"
 	count=`ip netns exec $ns1 nstat -as | grep MPTcpExtDataCsumErr | awk '{print $2}'`
 	[ -z "$count" ] && count=0
-	if [ "$count" != 0 ]; then
-		echo "[fail] got $count data checksum error[s] expected 0"
+	if [ "$count" != $csum_ns1 -a $allow_multi_errors_ns1 -eq 0 ] ||
+	   [ "$count" -lt $csum_ns1 -a $allow_multi_errors_ns1 -eq 1 ]; then
+		echo "[fail] got $count data checksum error[s] expected $csum_ns1"
 		ret=1
 		dump_stats=1
 	else
@@ -858,8 +872,9 @@ chk_csum_nr()
 	echo -n " - csum  "
 	count=`ip netns exec $ns2 nstat -as | grep MPTcpExtDataCsumErr | awk '{print $2}'`
 	[ -z "$count" ] && count=0
-	if [ "$count" != 0 ]; then
-		echo "[fail] got $count data checksum error[s] expected 0"
+	if [ "$count" != $csum_ns2 -a $allow_multi_errors_ns2 -eq 0 ] ||
+	   [ "$count" -lt $csum_ns2 -a $allow_multi_errors_ns2 -eq 1 ]; then
+		echo "[fail] got $count data checksum error[s] expected $csum_ns2"
 		ret=1
 		dump_stats=1
 	else
@@ -870,27 +885,27 @@ chk_csum_nr()
 
 chk_fail_nr()
 {
-	local mp_fail_nr_tx=$1
-	local mp_fail_nr_rx=$2
+	local fail_tx=$1
+	local fail_rx=$2
 	local count
 	local dump_stats
 
 	printf "%-${nr_blank}s %s" " " "ftx"
 	count=`ip netns exec $ns1 nstat -as | grep MPTcpExtMPFailTx | awk '{print $2}'`
 	[ -z "$count" ] && count=0
-	if [ "$count" != "$mp_fail_nr_tx" ]; then
-		echo "[fail] got $count MP_FAIL[s] TX expected $mp_fail_nr_tx"
+	if [ "$count" != "$fail_tx" ]; then
+		echo "[fail] got $count MP_FAIL[s] TX expected $fail_tx"
 		ret=1
 		dump_stats=1
 	else
 		echo -n "[ ok ]"
 	fi
 
-	echo -n " - frx   "
+	echo -n " - failrx"
 	count=`ip netns exec $ns2 nstat -as | grep MPTcpExtMPFailRx | awk '{print $2}'`
 	[ -z "$count" ] && count=0
-	if [ "$count" != "$mp_fail_nr_rx" ]; then
-		echo "[fail] got $count MP_FAIL[s] RX expected $mp_fail_nr_rx"
+	if [ "$count" != "$fail_rx" ]; then
+		echo "[fail] got $count MP_FAIL[s] RX expected $fail_rx"
 		ret=1
 		dump_stats=1
 	else
@@ -1014,6 +1029,11 @@ chk_join_nr()
 	local syn_nr=$2
 	local syn_ack_nr=$3
 	local ack_nr=$4
+	local csum_ns1=${5:-0}
+	local csum_ns2=${6:-0}
+	local fail_nr=${7:-0}
+	local rst_nr=${8:-0}
+	local infi_nr=${9:-0}
 	local count
 	local dump_stats
 	local with_cookie
@@ -1060,10 +1080,10 @@ chk_join_nr()
 	fi
 	[ "${dump_stats}" = 1 ] && dump_stats
 	if [ $checksum -eq 1 ]; then
-		chk_csum_nr
-		chk_fail_nr 0 0
-		chk_rst_nr 0 0
-		chk_infi_nr 0 0
+		chk_csum_nr "" $csum_ns1 $csum_ns2
+		chk_fail_nr $fail_nr $fail_nr
+		chk_rst_nr $rst_nr $rst_nr
+		chk_infi_nr $infi_nr $infi_nr
 	fi
 }
 
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 11/12] selftests: mptcp: add the MP_FAIL testcases
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (9 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 10/12] selftests: mptcp: add more arguments for chk_join_nr Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 12/12] selftests: mptcp: update output info of chk_rm_nr Geliang Tang
  2022-02-23 21:01 ` [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Matthieu Baerts
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Davide Caratti, Matthieu Baerts, Mat Martineau

Added the test cases for MP_FAIL, the multiple subflows test for the
MP_RST case and the single subflow one for the infinite mapping case.
The former used the test_linkfail value to make 1024KB test files,
and the latter 128KB.

Added a new function reset_with_fail(), in it use 'iptables' and 'tc
action pedit' rules to produce the bit flips to trigger the checksum
failures. Added a new function pedit_action_pkts() to get the numbers
of the packets edited by the tc pedit actions.

Added a new global variable validate_checksum to enable checksums for
the MP_FAIL tests without passing the '-C' argument.

Also added the needed kernel configures in the selftests config file.

Suggested-by: Davide Caratti <dcaratti@redhat.com>
Co-developed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 tools/testing/selftests/net/mptcp/config      |  8 ++
 .../testing/selftests/net/mptcp/mptcp_join.sh | 98 ++++++++++++++++++-
 2 files changed, 104 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/config b/tools/testing/selftests/net/mptcp/config
index d36b7da5082a..38021a0dd527 100644
--- a/tools/testing/selftests/net/mptcp/config
+++ b/tools/testing/selftests/net/mptcp/config
@@ -12,6 +12,9 @@ CONFIG_NF_TABLES=m
 CONFIG_NFT_COMPAT=m
 CONFIG_NETFILTER_XTABLES=m
 CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
 CONFIG_NF_TABLES_INET=y
 CONFIG_NFT_TPROXY=m
 CONFIG_NFT_SOCKET=m
@@ -19,3 +22,8 @@ CONFIG_IP_ADVANCED_ROUTER=y
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_NF_TARGET_REJECT=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_SCH_INGRESS=m
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index f33822b28058..6fb883971d46 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -16,6 +16,7 @@ capture=0
 checksum=0
 ip_mptcp=0
 check_invert=0
+validate_checksum=0
 do_all_tests=1
 init=0
 
@@ -62,6 +63,7 @@ init_partial()
 	done
 
 	check_invert=0
+	validate_checksum=$checksum
 
 	#  ns1              ns2
 	# ns1eth1    ns2eth1
@@ -207,6 +209,58 @@ reset_with_allow_join_id0()
 	ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns2_enable
 }
 
+# Modify TCP payload without corrupting the TCP packet
+#
+# This rule inverts a 8-bit word at byte offset 148 for the 2nd TCP ACK packets
+# carrying enough data.
+# Once it is done, the TCP Checksum field is updated so the packet is still
+# considered as valid at the TCP level.
+# Because the MPTCP checksum, covering the TCP options and data, has not been
+# updated, the modification will be detected and an MP_FAIL will be emitted:
+# what we want to validate here without corrupting "random" MPTCP options.
+#
+# To avoid having tc producing this pr_info() message for each TCP ACK packets
+# not carrying enough data:
+#
+#     tc action pedit offset 162 out of bounds
+#
+# Netfilter is used to mark packets with enough data.
+reset_with_fail()
+{
+	reset
+
+	ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=1
+	ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=1
+
+	check_invert=1
+	validate_checksum=1
+	local i="$1"
+	local ip="${2:-4}"
+	local tables
+
+	tables="iptables"
+	if [ $ip -eq 6 ]; then
+		tables="ip6tables"
+	fi
+
+	ip netns exec $ns2 $tables \
+		-t mangle \
+		-A OUTPUT \
+		-o ns2eth$i \
+		-p tcp \
+		-m length --length 150:9999 \
+		-m statistic --mode nth --packet 1 --every 99999 \
+		-j MARK --set-mark 42 || exit 1
+
+	tc -n $ns2 qdisc add dev ns2eth$i clsact || exit 1
+	tc -n $ns2 filter add dev ns2eth$i egress \
+		protocol ip prio 1000 \
+		handle 42 fw \
+		action pedit munge offset 148 u8 invert \
+		pipe csum tcp \
+		index 100 || exit 1
+}
+
 print_file_err()
 {
 	ls -l "$1" 1>&2
@@ -1079,7 +1133,7 @@ chk_join_nr()
 		echo "[ ok ]"
 	fi
 	[ "${dump_stats}" = 1 ] && dump_stats
-	if [ $checksum -eq 1 ]; then
+	if [ $validate_checksum -eq 1 ]; then
 		chk_csum_nr "" $csum_ns1 $csum_ns2
 		chk_fail_nr $fail_nr $fail_nr
 		chk_rst_nr $rst_nr $rst_nr
@@ -2444,6 +2498,41 @@ fastclose_tests()
 	chk_rst_nr 1 1 invert
 }
 
+pedit_action_pkts()
+{
+	tc -n $ns2 -j -s action show action pedit index 100 | \
+		sed 's/.*"packets":\([0-9]\+\),.*/\1/'
+}
+
+fail_tests()
+{
+	# multiple subflows
+	reset_with_fail 2
+	tc -n $ns2 qdisc add dev ns2eth1 root netem rate 20mbit delay 1
+	pm_nl_set_limits $ns1 0 1
+	pm_nl_set_limits $ns2 0 1
+	pm_nl_add_endpoint $ns2 10.0.2.2 dev ns2eth2 flags subflow
+	run_tests $ns1 $ns2 10.0.1.1 1024
+	chk_join_nr "MP_FAIL MP_RST: $(pedit_action_pkts) corrupted pkts" 1 1 1 \
+									  +1 +0 \
+									  1 \
+									  1
+
+	# single subflow
+	reset_with_fail 1
+	run_tests $ns1 $ns2 10.0.1.1 128
+									# syn_nr syn_ack_nr ack_nr
+									# csum_ns1 csum_ns2
+									# fail_nr
+									# rst_nr
+									# infi_nr
+	chk_join_nr "Infinite map: $(pedit_action_pkts) corrupted pkts" 0 0 0 \
+									+1 +0 \
+									1 \
+									0 \
+									1
+}
+
 all_tests()
 {
 	subflows_tests
@@ -2464,6 +2553,7 @@ all_tests()
 	userspace_tests
 	implicit_tests
 	fastclose_tests
+	fail_tests
 }
 
 # [$1: error message]
@@ -2493,6 +2583,7 @@ usage()
 	echo "  -u userspace_tests"
 	echo "  -I implicit_tests"
 	echo "  -z fastclose_tests"
+	echo "  -F fail_tests"
 	echo "  -c capture pcap files"
 	echo "  -C enable data checksum"
 	echo "  -i use ip mptcp"
@@ -2524,7 +2615,7 @@ if [ $do_all_tests -eq 1 ]; then
 	exit $ret
 fi
 
-while getopts 'fesltra64bpkdmuchzCSiI' opt; do
+while getopts 'fesltra64bpkdmuchzCSFiI' opt; do
 	case $opt in
 		f)
 			subflows_tests
@@ -2577,6 +2668,9 @@ while getopts 'fesltra64bpkdmuchzCSiI' opt; do
 		z)
 			fastclose_tests
 			;;
+		F)
+			fail_tests
+			;;
 		c)
 			;;
 		C)
-- 
2.34.1


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

* [PATCH RESEND mptcp-next v2 12/12] selftests: mptcp: update output info of chk_rm_nr
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (10 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 11/12] selftests: mptcp: add the MP_FAIL testcases Geliang Tang
@ 2022-02-20  2:59 ` Geliang Tang
  2022-02-23 21:01 ` [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Matthieu Baerts
  12 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-20  2:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang, Mat Martineau

This patch updated the output info of chk_rm_nr. Renamed 'sf' to 'rmsf',
which means 'remove subflow'. Added the display of whether the inverted
namespaces has been used to check the mib counters.

The new output looks like this:

 002 remove multiple subflows          syn[ ok ] - synack[ ok ] - ack[ ok ]
                                       rm [ ok ] - rmsf  [ ok ]
 003 remove single address             syn[ ok ] - synack[ ok ] - ack[ ok ]
                                       add[ ok ] - echo  [ ok ]
                                       rm [ ok ] - rmsf  [ ok ]   invert

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 6fb883971d46..3655911667e0 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -1312,15 +1312,14 @@ chk_rm_nr()
 	local invert=${3:-""}
 	local count
 	local dump_stats
-	local addr_ns
-	local subflow_ns
+	local addr_ns=$ns1
+	local subflow_ns=$ns2
+	local extra_msg=""
 
-	if [ -z $invert ]; then
-		addr_ns=$ns1
-		subflow_ns=$ns2
-	elif [ $invert = "invert" ]; then
+	if [[ $invert = "invert" ]]; then
 		addr_ns=$ns2
 		subflow_ns=$ns1
+		extra_msg="   invert"
 	fi
 
 	printf "%-${nr_blank}s %s" " " "rm "
@@ -1334,7 +1333,7 @@ chk_rm_nr()
 		echo -n "[ ok ]"
 	fi
 
-	echo -n " - sf    "
+	echo -n " - rmsf  "
 	count=`ip netns exec $subflow_ns nstat -as | grep MPTcpExtRmSubflow | awk '{print $2}'`
 	[ -z "$count" ] && count=0
 	if [ "$count" != "$rm_subflow_nr" ]; then
@@ -1342,10 +1341,12 @@ chk_rm_nr()
 		ret=1
 		dump_stats=1
 	else
-		echo "[ ok ]"
+		echo -n "[ ok ]"
 	fi
 
 	[ "${dump_stats}" = 1 ] && dump_stats
+
+	echo "$extra_msg"
 }
 
 chk_prio_nr()
-- 
2.34.1


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

* Re: [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases
  2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
                   ` (11 preceding siblings ...)
  2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 12/12] selftests: mptcp: update output info of chk_rm_nr Geliang Tang
@ 2022-02-23 21:01 ` Matthieu Baerts
  2022-02-23 22:56   ` Geliang Tang
  12 siblings, 1 reply; 17+ messages in thread
From: Matthieu Baerts @ 2022-02-23 21:01 UTC (permalink / raw)
  To: Geliang Tang, mptcp

Hi Geliang, Mat,

On 20/02/2022 03:59, Geliang Tang wrote:
> v2:
>  - keep the order of the applied patches. Drop the revert patches in v1.
> 
> v1:
> Resend all my queued patches in the patchwork. The sequence of 4 applied
> patches is adjusted and rebased. No code modified.
> 
> Geliang Tang (12):
>   mptcp: add the mibs for MP_FASTCLOSE
>   selftests: mptcp: add the MP_FASTCLOSE mibs check
>   mptcp: add the mibs for MP_RST
>   selftests: mptcp: add the MP_RST mibs check
>   selftests: mptcp: add extra_args in do_transfer
>   selftests: mptcp: reuse linkfail to make given size files
>   selftests: mptcp: add fastclose testcase
>   Squash to "mptcp: infinite mapping receiving"
>   Squash to "selftests: mptcp: add infinite map mibs check"
>   selftests: mptcp: add more arguments for chk_join_nr
>   selftests: mptcp: add the MP_FAIL testcases
>   selftests: mptcp: update output info of chk_rm_nr

Thank you for this patches and the reviews!

Now applied in our tree (feat. for net-next):

* Before the "infinite mapping support" series:

- ca9cbbff446b: mptcp: add the mibs for MP_FASTCLOSE
- e9d3d6700269: selftests: mptcp: add the MP_FASTCLOSE mibs check
- 7b6ed57c70dc: mptcp: add the mibs for MP_RST
- b1dd7c48a10f: selftests: mptcp: add the MP_RST mibs check
- 481e87d3e23b: selftests: mptcp: add extra_args in do_transfer
- 6609f1c808dd: selftests: mptcp: reuse linkfail to make given size files
- 28ac700c6369: selftests: mptcp: add fastclose testcase
- bd4f93690fa6: conflict in t/selftests-mptcp-add-infinite-map-mibs-check
- 4e668db2d842: conflict in
t/selftests-mptcp-Add-tests-for-userspace-PM-type
- 519eb3313dc7: conflict in
t/selftests-mptcp-adjust-output-alignment-for-more-tests
- 5b26053898fa: conflict in
t/selftests-mptcp-add-implicit-endpoint-test-case
- Results: d7649a6f4e25..dd86303a6117

* In the "infinite mapping support" series:

- a901b62afb52: "squashed" patch 08/12 in "mptcp: infinite mapping
receiving"
- ed1ec3a2223c: "squashed" (with conflicts) patch 09/12 in "selftests:
mptcp: add infinite map mibs check"
- Results: dd86303a6117..2198a66cca7d

* After the "infinite mapping support" series:

- 0954244ea41e: selftests: mptcp: add more arguments for chk_join_nr
- 0c0217635548: selftests: mptcp: add the MP_FAIL testcases
- f2b1c0bab9a7: selftests: mptcp: update output info of chk_rm_nr
- 66fe2565137c: conflict in
t/selftests-mptcp-Add-tests-for-userspace-PM-type
- 725730b4cb61: conflict in t/mptcp-more-careful-RM_ADDR-generation
- ea63fb2b5f25: conflict in
t/selftests-mptcp-add-implicit-endpoint-test-case
- Results: 2198a66cca7d..5d3058e05cc9

* Extra fix:

- 649d88fdc3c5: tg: fix wrong conflict resolution
- 4ec880a22963: conflict in
t/selftests-mptcp-add-more-arguments-for-chk_join_nr
- Results: 5d3058e05cc9..067a741aa5fb

Hopefully everything has been applied as expected! Do not hesitate to
double-check!


Builds and tests are now in progress:

https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20220223T205717
https://github.com/multipath-tcp/mptcp_net-next/actions/workflows/build-validation.yml?query=branch:export


Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net

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

* Re: [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases
  2022-02-23 21:01 ` [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Matthieu Baerts
@ 2022-02-23 22:56   ` Geliang Tang
  2022-02-24 13:36     ` Matthieu Baerts
  0 siblings, 1 reply; 17+ messages in thread
From: Geliang Tang @ 2022-02-23 22:56 UTC (permalink / raw)
  To: Matthieu Baerts, Mat Martineau; +Cc: mptcp

On Wed, Feb 23, 2022 at 10:01:27PM +0100, Matthieu Baerts wrote:
> Hi Geliang, Mat,
> 
> On 20/02/2022 03:59, Geliang Tang wrote:
> > v2:
> >  - keep the order of the applied patches. Drop the revert patches in v1.
> > 
> > v1:
> > Resend all my queued patches in the patchwork. The sequence of 4 applied
> > patches is adjusted and rebased. No code modified.
> > 
> > Geliang Tang (12):
> >   mptcp: add the mibs for MP_FASTCLOSE
> >   selftests: mptcp: add the MP_FASTCLOSE mibs check
> >   mptcp: add the mibs for MP_RST
> >   selftests: mptcp: add the MP_RST mibs check
> >   selftests: mptcp: add extra_args in do_transfer
> >   selftests: mptcp: reuse linkfail to make given size files
> >   selftests: mptcp: add fastclose testcase
> >   Squash to "mptcp: infinite mapping receiving"
> >   Squash to "selftests: mptcp: add infinite map mibs check"
> >   selftests: mptcp: add more arguments for chk_join_nr
> >   selftests: mptcp: add the MP_FAIL testcases
> >   selftests: mptcp: update output info of chk_rm_nr
> 
> Thank you for this patches and the reviews!
> 
> Now applied in our tree (feat. for net-next):
> 
> * Before the "infinite mapping support" series:
> 
> - ca9cbbff446b: mptcp: add the mibs for MP_FASTCLOSE
> - e9d3d6700269: selftests: mptcp: add the MP_FASTCLOSE mibs check
> - 7b6ed57c70dc: mptcp: add the mibs for MP_RST
> - b1dd7c48a10f: selftests: mptcp: add the MP_RST mibs check
> - 481e87d3e23b: selftests: mptcp: add extra_args in do_transfer
> - 6609f1c808dd: selftests: mptcp: reuse linkfail to make given size files
> - 28ac700c6369: selftests: mptcp: add fastclose testcase
> - bd4f93690fa6: conflict in t/selftests-mptcp-add-infinite-map-mibs-check
> - 4e668db2d842: conflict in
> t/selftests-mptcp-Add-tests-for-userspace-PM-type
> - 519eb3313dc7: conflict in
> t/selftests-mptcp-adjust-output-alignment-for-more-tests
> - 5b26053898fa: conflict in
> t/selftests-mptcp-add-implicit-endpoint-test-case
> - Results: d7649a6f4e25..dd86303a6117
> 
> * In the "infinite mapping support" series:
> 
> - a901b62afb52: "squashed" patch 08/12 in "mptcp: infinite mapping
> receiving"
> - ed1ec3a2223c: "squashed" (with conflicts) patch 09/12 in "selftests:
> mptcp: add infinite map mibs check"
> - Results: dd86303a6117..2198a66cca7d
> 
> * After the "infinite mapping support" series:
> 
> - 0954244ea41e: selftests: mptcp: add more arguments for chk_join_nr
> - 0c0217635548: selftests: mptcp: add the MP_FAIL testcases
> - f2b1c0bab9a7: selftests: mptcp: update output info of chk_rm_nr
> - 66fe2565137c: conflict in
> t/selftests-mptcp-Add-tests-for-userspace-PM-type
> - 725730b4cb61: conflict in t/mptcp-more-careful-RM_ADDR-generation
> - ea63fb2b5f25: conflict in
> t/selftests-mptcp-add-implicit-endpoint-test-case
> - Results: 2198a66cca7d..5d3058e05cc9
> 
> * Extra fix:
> 
> - 649d88fdc3c5: tg: fix wrong conflict resolution
> - 4ec880a22963: conflict in
> t/selftests-mptcp-add-more-arguments-for-chk_join_nr
> - Results: 5d3058e05cc9..067a741aa5fb
> 
> Hopefully everything has been applied as expected! Do not hesitate to
> double-check!


Hi Matt,

Thank you so much for applying all these patches. I have two extra
requests about the order of these patches here.

1. Move the commit "selftests: mptcp: adjust output alignment for more
tests" before "mptcp: add the mibs for MP_FASTCLOSE". Otherwise, it'll
break the output alignment. Since 'nr_blank' is defined in the former,
and used in the fastclose series.

2. Move the commit "selftests: mptcp: add infinite map mibs check" before
"selftests: mptcp: add invert check in check_transfer". Since the former
is more related to the previous commit "mptcp: add mib for infinite map
sending" than the latter.

No conflicts occurred. And the order of them all is like this:

pick 257287531bbc selftests: mptcp: adjust output alignment for more tests
pick e27d928aa4ec mptcp: add the mibs for MP_FASTCLOSE
pick ea66162e3f4f selftests: mptcp: add the MP_FASTCLOSE mibs check
pick f7e2120cec1b mptcp: add the mibs for MP_RST
pick babc72fe71a7 selftests: mptcp: add the MP_RST mibs check
pick 426f25b59edc selftests: mptcp: add extra_args in do_transfer
pick 8a48a2ceaa22 selftests: mptcp: reuse linkfail to make given size files
pick fc578f540a07 selftests: mptcp: add fastclose testcase
pick e02ad48fb24a mptcp: don't send RST for single subflow
pick f6e7701ed3f0 mptcp: add the fallback check
pick 2ec8e7687a0a mptcp: track and update contiguous data status
pick d2599198de2a mptcp: infinite mapping sending
pick ba54e60a32f6 mptcp: infinite mapping receiving
pick 8c2c5497dbf1 mptcp: add mib for infinite map sending
pick 01d891dec821 selftests: mptcp: add infinite map mibs check
pick 1cfaf9761bef selftests: mptcp: add invert check in check_transfer
pick c9217d510f58 selftests: mptcp: add more arguments for chk_join_nr
pick 99eb057ec657 selftests: mptcp: add the MP_FAIL testcases
pick abe3bb655cff selftests: mptcp: update output info of chk_rm_nr
pick 87210766b6ff mptcp: dump infinite_map field in mptcp_dump_mpext
pick 9363e0880eed mptcp: add tracepoint in mptcp_sendmsg_frag

Thanks,
-Geliang

> 
> 
> Builds and tests are now in progress:
> 
> https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20220223T205717
> https://github.com/multipath-tcp/mptcp_net-next/actions/workflows/build-validation.yml?query=branch:export
> 
> 
> Cheers,
> Matt
> -- 
> Tessares | Belgium | Hybrid Access Solutions
> www.tessares.net
> 


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

* Re: [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases
  2022-02-23 22:56   ` Geliang Tang
@ 2022-02-24 13:36     ` Matthieu Baerts
  2022-02-24 14:58       ` Geliang Tang
  0 siblings, 1 reply; 17+ messages in thread
From: Matthieu Baerts @ 2022-02-24 13:36 UTC (permalink / raw)
  To: Geliang Tang, Mat Martineau; +Cc: mptcp

Hi Geliang,

On 23/02/2022 23:56, Geliang Tang wrote:
> Hi Matt,
> 
> Thank you so much for applying all these patches. I have two extra
> requests about the order of these patches here.
> 
> 1. Move the commit "selftests: mptcp: adjust output alignment for more
> tests" before "mptcp: add the mibs for MP_FASTCLOSE". Otherwise, it'll
> break the output alignment. Since 'nr_blank' is defined in the former,
> and used in the fastclose series.

Good point. With TopGit, it is not as easy as moving commits with a 'git
rebase -i', just easier to have something wrong when doing these
manipulation. But that's not impossible and at the end, I'm used to.

- bd41af654d7f: selftests: mptcp: adjust output alignment for more tests
- Results: 4bbd9add0797..369cbca2200f → empty: good!

> 2. Move the commit "selftests: mptcp: add infinite map mibs check" before
> "selftests: mptcp: add invert check in check_transfer". Since the former
> is more related to the previous commit "mptcp: add mib for infinite map
> sending" than the latter.

- 259143ec3e7f: selftests: mptcp: add infinite map mibs check
- Results: 369cbca2200f..287a6bb7ec08 → empty: good!

> No conflicts occurred. And the order of them all is like this:

Same, no conflicts. Should be better now!

Builds and tests are now in progress:

https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20220224T133344
https://github.com/multipath-tcp/mptcp_net-next/actions/workflows/build-validation.yml?query=branch:export

Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net

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

* Re: [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases
  2022-02-24 13:36     ` Matthieu Baerts
@ 2022-02-24 14:58       ` Geliang Tang
  0 siblings, 0 replies; 17+ messages in thread
From: Geliang Tang @ 2022-02-24 14:58 UTC (permalink / raw)
  To: Matthieu Baerts; +Cc: Geliang Tang, Mat Martineau, MPTCP Upstream

Matthieu Baerts <matthieu.baerts@tessares.net> 于2022年2月24日周四 21:36写道:
>
> Hi Geliang,
>
> On 23/02/2022 23:56, Geliang Tang wrote:
> > Hi Matt,
> >
> > Thank you so much for applying all these patches. I have two extra
> > requests about the order of these patches here.
> >
> > 1. Move the commit "selftests: mptcp: adjust output alignment for more
> > tests" before "mptcp: add the mibs for MP_FASTCLOSE". Otherwise, it'll
> > break the output alignment. Since 'nr_blank' is defined in the former,
> > and used in the fastclose series.
>
> Good point. With TopGit, it is not as easy as moving commits with a 'git
> rebase -i', just easier to have something wrong when doing these
> manipulation. But that's not impossible and at the end, I'm used to.
>
> - bd41af654d7f: selftests: mptcp: adjust output alignment for more tests
> - Results: 4bbd9add0797..369cbca2200f → empty: good!
>
> > 2. Move the commit "selftests: mptcp: add infinite map mibs check" before
> > "selftests: mptcp: add invert check in check_transfer". Since the former
> > is more related to the previous commit "mptcp: add mib for infinite map
> > sending" than the latter.
>
> - 259143ec3e7f: selftests: mptcp: add infinite map mibs check
> - Results: 369cbca2200f..287a6bb7ec08 → empty: good!
>
> > No conflicts occurred. And the order of them all is like this:
>
> Same, no conflicts. Should be better now!

Great! Thanks.

>
> Builds and tests are now in progress:
>
> https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20220224T133344
> https://github.com/multipath-tcp/mptcp_net-next/actions/workflows/build-validation.yml?query=branch:export
>
> Cheers,
> Matt
> --
> Tessares | Belgium | Hybrid Access Solutions
> www.tessares.net
>

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

end of thread, other threads:[~2022-02-24 14:57 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-20  2:59 [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 01/12] mptcp: add the mibs for MP_FASTCLOSE Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 02/12] selftests: mptcp: add the MP_FASTCLOSE mibs check Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 03/12] mptcp: add the mibs for MP_RST Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 04/12] selftests: mptcp: add the MP_RST mibs check Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 05/12] selftests: mptcp: add extra_args in do_transfer Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 06/12] selftests: mptcp: reuse linkfail to make given size files Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 07/12] selftests: mptcp: add fastclose testcase Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 08/12] Squash to "mptcp: infinite mapping receiving" Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 09/12] Squash to "selftests: mptcp: add infinite map mibs check" Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 10/12] selftests: mptcp: add more arguments for chk_join_nr Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 11/12] selftests: mptcp: add the MP_FAIL testcases Geliang Tang
2022-02-20  2:59 ` [PATCH RESEND mptcp-next v2 12/12] selftests: mptcp: update output info of chk_rm_nr Geliang Tang
2022-02-23 21:01 ` [PATCH RESEND mptcp-next v2 00/12] fclose and mp_fail testcases Matthieu Baerts
2022-02-23 22:56   ` Geliang Tang
2022-02-24 13:36     ` Matthieu Baerts
2022-02-24 14:58       ` Geliang Tang

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.