All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH mptcp-next v3 0/7] add fastclose testcases
@ 2022-02-15 11:12 Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 1/7] mptcp: add the mibs for MP_FASTCLOSE Geliang Tang
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-15 11:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

v3:
 - merge the squash-to patch ("Squash to "selftests: mptcp: add
fastclose testcases v2") into v3.
 - add a new patch to check fastclose in mptcp_connect.sh

base-commit: 9dff76d953f7a0fe2b27818f2aa93031c9a617cf

v2:
 - merge the squash-to patch ("Squash to "selftests: mptcp: add the
MP_RST mibs check") into v2.
 - update the commit logs.

This patchset is related to issue #48 and issue #197. The two MP_RST
patches are moved from the "add mp_fail testcases" series.

Geliang Tang (7):
  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: add fastclose testcases
  selftests: mptcp: fastclose check in mptcp_connect

 net/mptcp/mib.c                               |   4 +
 net/mptcp/mib.h                               |   4 +
 net/mptcp/options.c                           |   5 +
 .../selftests/net/mptcp/mptcp_connect.sh      |  37 +++++
 .../testing/selftests/net/mptcp/mptcp_join.sh | 134 ++++++++++++++++--
 5 files changed, 171 insertions(+), 13 deletions(-)

-- 
2.34.1


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

* [PATCH mptcp-next v3 1/7] mptcp: add the mibs for MP_FASTCLOSE
  2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
@ 2022-02-15 11:12 ` Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 2/7] selftests: mptcp: add the MP_FASTCLOSE mibs check Geliang Tang
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-15 11:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

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.

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] 12+ messages in thread

* [PATCH mptcp-next v3 2/7] selftests: mptcp: add the MP_FASTCLOSE mibs check
  2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 1/7] mptcp: add the mibs for MP_FASTCLOSE Geliang Tang
@ 2022-02-15 11:12 ` Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 3/7] mptcp: add the mibs for MP_RST Geliang Tang
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-15 11:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

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

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 b48b11714817..f71494b87d5e 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -834,6 +834,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] 12+ messages in thread

* [PATCH mptcp-next v3 3/7] mptcp: add the mibs for MP_RST
  2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 1/7] mptcp: add the mibs for MP_FASTCLOSE Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 2/7] selftests: mptcp: add the MP_FASTCLOSE mibs check Geliang Tang
@ 2022-02-15 11:12 ` Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 4/7] selftests: mptcp: add the MP_RST mibs check Geliang Tang
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-15 11:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

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.

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] 12+ messages in thread

* [PATCH mptcp-next v3 4/7] selftests: mptcp: add the MP_RST mibs check
  2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
                   ` (2 preceding siblings ...)
  2022-02-15 11:12 ` [PATCH mptcp-next v3 3/7] mptcp: add the mibs for MP_RST Geliang Tang
@ 2022-02-15 11:12 ` Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 5/7] selftests: mptcp: add extra_args in do_transfer Geliang Tang
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-15 11:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

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.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 50 +++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index f71494b87d5e..3252865352f3 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -802,6 +802,55 @@ 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
+
+	if [ -z $ns_invert ]; then
+		ns_tx=$ns1
+		ns_rx=$ns2
+	elif [ $ns_invert = "invert" ]; then
+		ns_tx=$ns2
+		ns_rx=$ns1
+	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
+		if [ -z $ns_invert ]; then
+			echo "[ ok ]"
+		elif [ $ns_invert = "invert" ]; then
+			echo -n "[ ok ]"
+		fi
+	fi
+
+	if [ ! -z $ns_invert ] && [ $ns_invert = "invert" ]; then
+		echo " - invert"
+	fi
+
+	[ "${dump_stats}" = 1 ] && dump_stats
+}
+
 chk_infi_nr()
 {
 	local mp_infi_nr_tx=$1
@@ -920,6 +969,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] 12+ messages in thread

* [PATCH mptcp-next v3 5/7] selftests: mptcp: add extra_args in do_transfer
  2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
                   ` (3 preceding siblings ...)
  2022-02-15 11:12 ` [PATCH mptcp-next v3 4/7] selftests: mptcp: add the MP_RST mibs check Geliang Tang
@ 2022-02-15 11:12 ` Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 6/7] selftests: mptcp: add fastclose testcases Geliang Tang
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-15 11:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

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.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 24 +++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 3252865352f3..ee747f4a4c7d 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
@@ -454,12 +453,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"
+		extra_args="-r 50"
 	elif [ $speed = "least" ]; then
-		mptcp_connect="./mptcp_connect -r 10"
+		extra_args="-r 10"
 	fi
 
 	local local_addr
@@ -472,13 +472,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=$!
 
@@ -487,15 +487,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=$!
 
-- 
2.34.1


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

* [PATCH mptcp-next v3 6/7] selftests: mptcp: add fastclose testcases
  2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
                   ` (4 preceding siblings ...)
  2022-02-15 11:12 ` [PATCH mptcp-next v3 5/7] selftests: mptcp: add extra_args in do_transfer Geliang Tang
@ 2022-02-15 11:12 ` Geliang Tang
  2022-02-15 11:12 ` [PATCH mptcp-next v3 7/7] selftests: mptcp: fastclose check in mptcp_connect Geliang Tang
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-15 11:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch added the self tests for MP_FASTCLOSE. Reused the argment
addr_nr_ns2 of do_transfer() to pass the extra argments '-I 2' or
'-I 3' 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.

The output looks like this:

001 fastclose test 1              syn[ ok ] - synack[ ok ] - ack[ ok ]
                                  sum[ ok ] - csum  [ ok ]
                                  ftx[ ok ] - frx   [ ok ]
                                  rtx[ ok ] - rstrx [ ok ]
                                  itx[ ok ] - irx   [ ok ]
                                  ctx[ ok ] - fclzrx[ ok ]
                                  rtx[ ok ] - rstrx [ ok ] - invert

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 28 ++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index ee747f4a4c7d..00a35601f319 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -462,6 +462,12 @@ do_transfer()
 		extra_args="-r 10"
 	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="::"
@@ -2285,6 +2291,21 @@ userspace_tests()
 	chk_rm_nr 0 0
 }
 
+fastclose_tests()
+{
+	reset
+	run_tests $ns1 $ns2 10.0.1.1 0 0 fastclose_2
+	chk_join_nr "fastclose test 1" 0 0 0
+	chk_fclose_nr 1 1
+	chk_rst_nr 1 1 invert
+
+	reset
+	run_tests $ns1 $ns2 10.0.1.1 0 0 fastclose_3 slow
+	chk_join_nr "fastclose test 2" 0 0 0
+	chk_fclose_nr 2 2
+	chk_rst_nr 2 2 invert
+}
+
 all_tests()
 {
 	subflows_tests
@@ -2303,6 +2324,7 @@ all_tests()
 	deny_join_id0_tests
 	fullmesh_tests
 	userspace_tests
+	fastclose_tests
 }
 
 # [$1: error message]
@@ -2330,6 +2352,7 @@ usage()
 	echo "  -d deny_join_id0_tests"
 	echo "  -m fullmesh_tests"
 	echo "  -u userspace_tests"
+	echo "  -z fastclose_tests"
 	echo "  -c capture pcap files"
 	echo "  -C enable data checksum"
 	echo "  -i use ip mptcp"
@@ -2361,7 +2384,7 @@ if [ $do_all_tests -eq 1 ]; then
 	exit $ret
 fi
 
-while getopts 'fesltra64bpkdmuchCSi' opt; do
+while getopts 'fesltra64bpkdmuchzCSi' opt; do
 	case $opt in
 		f)
 			subflows_tests
@@ -2411,6 +2434,9 @@ while getopts 'fesltra64bpkdmuchCSi' opt; do
 		u)
 			userspace_tests
 			;;
+		z)
+			fastclose_tests
+			;;
 		c)
 			;;
 		C)
-- 
2.34.1


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

* [PATCH mptcp-next v3 7/7] selftests: mptcp: fastclose check in mptcp_connect
  2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
                   ` (5 preceding siblings ...)
  2022-02-15 11:12 ` [PATCH mptcp-next v3 6/7] selftests: mptcp: add fastclose testcases Geliang Tang
@ 2022-02-15 11:12 ` Geliang Tang
  2022-02-16  1:17 ` [PATCH mptcp-next v3 0/7] add fastclose testcases Mat Martineau
  2022-02-19  0:02 ` Mat Martineau
  8 siblings, 0 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-15 11:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch added the MP_FASTCLOSE mibs and the MP_RST mibs check for
the disconnect tests in mptcp_connect.sh.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../selftests/net/mptcp/mptcp_connect.sh      | 37 +++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index 5b7a40d73253..b27e2c884523 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -434,6 +434,10 @@ do_transfer()
 	local stat_cookierx_last=$(get_mib_counter "${listener_ns}" "TcpExtSyncookiesRecv")
 	local stat_csum_err_s=$(get_mib_counter "${listener_ns}" "MPTcpExtDataCsumErr")
 	local stat_csum_err_c=$(get_mib_counter "${connector_ns}" "MPTcpExtDataCsumErr")
+	local stat_fclose_tx=$(get_mib_counter "${listener_ns}" "MPTcpExtMPFastcloseTx")
+	local stat_fclose_rx=$(get_mib_counter "${connector_ns}" "MPTcpExtMPFastcloseRx")
+	local stat_rst_tx=$(get_mib_counter "${listener_ns}" "MPTcpExtMPRstTx")
+	local stat_rst_rx=$(get_mib_counter "${connector_ns}" "MPTcpExtMPRstRx")
 
 	timeout ${timeout_test} \
 		ip netns exec ${listener_ns} \
@@ -543,6 +547,39 @@ do_transfer()
 		fi
 	fi
 
+	local disconnect=$(echo $extra_args | grep "\-I\ 3")
+	if [[ $disconnect != "" ]] && [ $cl_proto = "MPTCP" ] && [ $srv_proto = "MPTCP" ]; then
+		local fclose_tx=$(get_mib_counter "${listener_ns}" "MPTcpExtMPFastcloseTx")
+		local fclose_rx=$(get_mib_counter "${connector_ns}" "MPTcpExtMPFastcloseRx")
+
+		local fclose_tx_nr=$((fclose_tx - stat_fclose_tx))
+		if [ $fclose_tx_nr -ne 2 ]; then
+			printf "[ FAIL ]\nserver got $fclose_tx_nr mp_fastclose[s]"
+			rets=1
+		fi
+
+		local fclose_rx_nr=$((fclose_rx - stat_fclose_rx))
+		if [ $fclose_rx_nr -ne 2 ]; then
+			printf "[ FAIL ]\nclient got $fclose_rx_nr mp_fastclose[s]"
+			retc=1
+		fi
+
+		local rst_tx=$(get_mib_counter "${listener_ns}" "MPTcpExtMPRstTx")
+		local rst_rx=$(get_mib_counter "${connector_ns}" "MPTcpExtMPRstRx")
+
+		local rst_tx_nr=$((rst_tx - stat_rst_tx))
+		if [ $rst_tx_nr -ne 2 ]; then
+			printf "[ FAIL ]\nserver got $rst_tx_nr mp_rst[s]"
+			rets=1
+		fi
+
+		local rst_rx_nr=$((rst_rx - stat_rst_rx))
+		if [ $rst_rx_nr -ne 2 ]; then
+			printf "[ FAIL ]\nclient got $rst_rx_nr mp_rst[s]"
+			retc=1
+		fi
+	fi
+
 	if [ $retc -eq 0 ] && [ $rets -eq 0 ]; then
 		printf "[ OK ]"
 	fi
-- 
2.34.1


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

* Re: [PATCH mptcp-next v3 0/7] add fastclose testcases
  2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
                   ` (6 preceding siblings ...)
  2022-02-15 11:12 ` [PATCH mptcp-next v3 7/7] selftests: mptcp: fastclose check in mptcp_connect Geliang Tang
@ 2022-02-16  1:17 ` Mat Martineau
  2022-02-18  7:16   ` Geliang Tang
  2022-02-18  9:40   ` Geliang Tang
  2022-02-19  0:02 ` Mat Martineau
  8 siblings, 2 replies; 12+ messages in thread
From: Mat Martineau @ 2022-02-16  1:17 UTC (permalink / raw)
  To: Geliang Tang; +Cc: mptcp

[-- Attachment #1: Type: text/plain, Size: 2005 bytes --]

On Tue, 15 Feb 2022, Geliang Tang wrote:

> v3:
> - merge the squash-to patch ("Squash to "selftests: mptcp: add
> fastclose testcases v2") into v3.
> - add a new patch to check fastclose in mptcp_connect.sh
>
> base-commit: 9dff76d953f7a0fe2b27818f2aa93031c9a617cf
>
> v2:
> - merge the squash-to patch ("Squash to "selftests: mptcp: add the
> MP_RST mibs check") into v2.
> - update the commit logs.
>
> This patchset is related to issue #48 and issue #197. The two MP_RST
> patches are moved from the "add mp_fail testcases" series.
>

Hi Geliang -

The code changes and the squash-to patch look good in terms of code 
review. When I run the 'mptcp_join.sh -z' test I get intermittent failures 
with "fastclose test 2":

002 fastclose test 2                     syn[ ok ] - synack[ ok ] - ack[ ok ]
                                          ctx[ ok ] - fclzrx[fail] got 1 MP_FASTCLOSE[s] RX expected 2
                                          rtx[ ok ] - rstrx [fail] got 1 MP_RST[s] RX expected 2   invert

(removed MIB dump)

I was able to reproduce while capturing, and the capture in the failed 
test does have 2 MP_FASTCLOSE and 2 MP_RST. Maybe there's a timing issue 
reading the MIBs?

I attached the pcaps, one for passing and one for failing.

-Mat


> Geliang Tang (7):
>  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: add fastclose testcases
>  selftests: mptcp: fastclose check in mptcp_connect
>
> net/mptcp/mib.c                               |   4 +
> net/mptcp/mib.h                               |   4 +
> net/mptcp/options.c                           |   5 +
> .../selftests/net/mptcp/mptcp_connect.sh      |  37 +++++
> .../testing/selftests/net/mptcp/mptcp_join.sh | 134 ++++++++++++++++--
> 5 files changed, 171 insertions(+), 13 deletions(-)
>
> -- 
> 2.34.1

--
Mat Martineau
Intel

[-- Attachment #2: Type: application/octet-stream, Size: 13231 bytes --]

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

* Re: [PATCH mptcp-next v3 0/7] add fastclose testcases
  2022-02-16  1:17 ` [PATCH mptcp-next v3 0/7] add fastclose testcases Mat Martineau
@ 2022-02-18  7:16   ` Geliang Tang
  2022-02-18  9:40   ` Geliang Tang
  1 sibling, 0 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-18  7:16 UTC (permalink / raw)
  To: Mat Martineau; +Cc: mptcp

On Tue, Feb 15, 2022 at 05:17:16PM -0800, Mat Martineau wrote:
> On Tue, 15 Feb 2022, Geliang Tang wrote:
> 
> > v3:
> > - merge the squash-to patch ("Squash to "selftests: mptcp: add
> > fastclose testcases v2") into v3.
> > - add a new patch to check fastclose in mptcp_connect.sh
> > 
> > base-commit: 9dff76d953f7a0fe2b27818f2aa93031c9a617cf
> > 
> > v2:
> > - merge the squash-to patch ("Squash to "selftests: mptcp: add the
> > MP_RST mibs check") into v2.
> > - update the commit logs.
> > 
> > This patchset is related to issue #48 and issue #197. The two MP_RST
> > patches are moved from the "add mp_fail testcases" series.
> > 
> 
> Hi Geliang -
> 
> The code changes and the squash-to patch look good in terms of code review.
> When I run the 'mptcp_join.sh -z' test I get intermittent failures with
> "fastclose test 2":
> 
> 002 fastclose test 2                     syn[ ok ] - synack[ ok ] - ack[ ok ]
>                                          ctx[ ok ] - fclzrx[fail] got 1 MP_FASTCLOSE[s] RX expected 2
>                                          rtx[ ok ] - rstrx [fail] got 1 MP_RST[s] RX expected 2   invert
> 
> (removed MIB dump)
> 
> I was able to reproduce while capturing, and the capture in the failed test
> does have 2 MP_FASTCLOSE and 2 MP_RST. Maybe there's a timing issue reading
> the MIBs?
> 
> I attached the pcaps, one for passing and one for failing.

Sorry Mat, I didn't see this email until now.

This morning, I saw in the minutes of this week's meeting that the
fastclose test failed. So I tested it and got the failures. I found that
"fastclose test 1" will also fail, but the probability is less. I also
found that increasing the sizes of the test files can fix these failures.

I had sent a squash-to patch to the mail list a few hours ago:

https://patchwork.kernel.org/project/mptcp/patch/22588887e5e516015f7f7b9d09112efc679fecf7.1645159759.git.geliang.tang@suse.com/

In it, drop "fastclose test 2" and increase the test files size to 1024K.
With this patch, no failures occurred any more in my test.

Thanks,
-Geliang

> 
> -Mat
> 
> 
> > Geliang Tang (7):
> >  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: add fastclose testcases
> >  selftests: mptcp: fastclose check in mptcp_connect
> > 
> > net/mptcp/mib.c                               |   4 +
> > net/mptcp/mib.h                               |   4 +
> > net/mptcp/options.c                           |   5 +
> > .../selftests/net/mptcp/mptcp_connect.sh      |  37 +++++
> > .../testing/selftests/net/mptcp/mptcp_join.sh | 134 ++++++++++++++++--
> > 5 files changed, 171 insertions(+), 13 deletions(-)
> > 
> > -- 
> > 2.34.1
> 
> --
> Mat Martineau
> Intel



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

* Re: [PATCH mptcp-next v3 0/7] add fastclose testcases
  2022-02-16  1:17 ` [PATCH mptcp-next v3 0/7] add fastclose testcases Mat Martineau
  2022-02-18  7:16   ` Geliang Tang
@ 2022-02-18  9:40   ` Geliang Tang
  1 sibling, 0 replies; 12+ messages in thread
From: Geliang Tang @ 2022-02-18  9:40 UTC (permalink / raw)
  To: Mat Martineau; +Cc: mptcp

[-- Attachment #1: Type: text/plain, Size: 6205 bytes --]

On Tue, Feb 15, 2022 at 05:17:16PM -0800, Mat Martineau wrote:
> On Tue, 15 Feb 2022, Geliang Tang wrote:
> 
> > v3:
> > - merge the squash-to patch ("Squash to "selftests: mptcp: add
> > fastclose testcases v2") into v3.
> > - add a new patch to check fastclose in mptcp_connect.sh
> > 
> > base-commit: 9dff76d953f7a0fe2b27818f2aa93031c9a617cf
> > 
> > v2:
> > - merge the squash-to patch ("Squash to "selftests: mptcp: add the
> > MP_RST mibs check") into v2.
> > - update the commit logs.
> > 
> > This patchset is related to issue #48 and issue #197. The two MP_RST
> > patches are moved from the "add mp_fail testcases" series.
> > 
> 
> Hi Geliang -
> 
> The code changes and the squash-to patch look good in terms of code review.
> When I run the 'mptcp_join.sh -z' test I get intermittent failures with
> "fastclose test 2":
> 
> 002 fastclose test 2                     syn[ ok ] - synack[ ok ] - ack[ ok ]
>                                          ctx[ ok ] - fclzrx[fail] got 1 MP_FASTCLOSE[s] RX expected 2
>                                          rtx[ ok ] - rstrx [fail] got 1 MP_RST[s] RX expected 2   invert
> 
> (removed MIB dump)
> 
> I was able to reproduce while capturing, and the capture in the failed test
> does have 2 MP_FASTCLOSE and 2 MP_RST. Maybe there's a timing issue reading
> the MIBs?
> 
> I attached the pcaps, one for passing and one for failing.

Hi Mat,

I read the pcap file mp_join-02-ns1-fail.pcap. It seems all right. The 2
MP_FASTCLOSE (fast-close in it) are on the outgoing path, not the incoming
path. It seems like one MP_FASTCLOSE is lost since the peer is closed.

I added some debug code and ran the "fastclose test 1". I got this log:

214 [   89.363021] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=1 use_ack=1
215 [   89.363027] MPTCP: data_ack=1461774226565990555
216 [   89.363045] MPTCP: msk=00000000f4a5f8ae snd_data_fin_enable=0 pending=0 snd_nxt=1461774226565990555 write_seq=1461774226565990555
217 [   89.363069] MPTCP: msk=0000000056c1787c state=8 flags=0
218 [   89.363083] MPTCP: msk=0000000056c1787c empty=1
219 [   89.363092] MPTCP: msk=0000000056c1787c rx queue empty=1:1 copied=952
220 [   89.363101] MPTCP: msk=00000000f4a5f8ae state=5 flags=0
221 [   89.363134] MPTCP: sk=0000000056c1787c, how=2
222 [   89.363142] MPTCP: msk=0000000056c1787c snd_data_fin_enable=0 shutdown=3 state=9 pending=0
223 [   89.363150] MPTCP: msk=0000000056c1787c snd_data_fin_enable=1 pending=0 snd_nxt=7107993104720368768 write_seq=7107993104720368769
224 [   89.363160] MPTCP: Sending DATA_FIN on subflow 00000000739073ba
225 [   89.363180] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
226 [   89.363186] MPTCP: mptcp_parse_option subtype=2
227 [   89.363193] MPTCP: DSS
228 [   89.363196] MPTCP: data_fin=1 dsn64=1 use_map=1 ack64=1 use_ack=1
229 [   89.363203] MPTCP: data_ack=1461774226565990555
230 [   89.363207] MPTCP: data_seq=7107993104720368768 subflow_seq=0 data_len=1 csum=0:0
231 [   89.363225] MPTCP: mptcp_subflow_shutdown call mptcp_reset_timer
232 [   89.363230] MPTCP: mptcp_reset_timer msk=0000000056c1787c tout=0 timer_ival=0
233 [   89.363249] MPTCP: msk=00000000f4a5f8ae snd_data_fin_enable=0 pending=0 snd_nxt=1461774226565990555 write_seq=1461774226565990555
234 [   89.363271] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
235 [   89.363278] MPTCP: mptcp_parse_option subtype=2
236 [   89.363283] MPTCP: DSS
237 [   89.363288] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=1 use_ack=1
238 [   89.363296] MPTCP: data_ack=7107993104720368769
239 [   89.363332] MPTCP: msk=0000000056c1787c snd_data_fin_enable=0 pending=0 snd_nxt=7107993104720368769 write_seq=7107993104720368769
240 [   89.363334] MPTCP: msk=00000000f4a5f8ae state=7 flags=0
241 [   89.363355] MPTCP: msk=0000000056c1787c state=7 flags=0
242 [   89.363357] MPTCP: msk=00000000f4a5f8ae rx queue empty=1:1 copied=0
243 [   89.363371] MPTCP: msk=0000000056c1787c rx queue empty=1:1 copied=0
244 [   89.363373] MPTCP: mptcp_close msk=00000000f4a5f8ae state=7
245 [   89.363381] MPTCP: __mptcp_destroy_sock msk=00000000f4a5f8ae
246 [   89.363385] MPTCP: sk=0000000056c1787c, how=2
247 [   89.363415] MPTCP: FASTCLOSE key=3915243080113293332
248 [   89.363422] MPTCP: mptcp_write_options msk=0000000056c1787c write FASTCLOSE
249 [   89.363428] MPTCP: mptcp_write_options msk=0000000056c1787c write RST
250 [   89.363445] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
251 [   89.363452] MPTCP: msk=0000000056c1787c
252 [   89.363472] MPTCP: msk=00000000f4a5f8ae
253 [   89.363480] MPTCP: msk=00000000f4a5f8ae
254 [   89.363480] MPTCP: ssk=00000000739073ba, local_key=14043904268449196188, token=858690305, idsn=15279878249843479917
255 [   89.363501] MPTCP: msk=0000000088cbb197 state=10 flags=0
256 [   89.363528] MPTCP: subflow=000000001745e5dc
257 [   89.363540] MPTCP: subflow_req=000000008e77b85e, listener=000000001745e5dc
258 [   89.363548] MPTCP: mptcp_parse_option subtype=0

In this log, side A (msk=0000000056c1787c) sent DATA_FIN, side B
(msk=00000000f4a5f8ae) closed the msk. Then side A sent FASTCLOSE and RST,
side B didn't got them since msk was closed.

The full log is attatched.

It seems that the transmission process is over and there is no chance to
send FASTCLOSE. This may be the reason why increasing the test files sizes
can fix this issue.

Thanks,
-Geliang

> 
> -Mat
> 
> 
> > Geliang Tang (7):
> >  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: add fastclose testcases
> >  selftests: mptcp: fastclose check in mptcp_connect
> > 
> > net/mptcp/mib.c                               |   4 +
> > net/mptcp/mib.h                               |   4 +
> > net/mptcp/options.c                           |   5 +
> > .../selftests/net/mptcp/mptcp_connect.sh      |  37 +++++
> > .../testing/selftests/net/mptcp/mptcp_join.sh | 134 ++++++++++++++++--
> > 5 files changed, 171 insertions(+), 13 deletions(-)
> > 
> > -- 
> > 2.34.1
> 
> --
> Mat Martineau
> Intel



[-- Attachment #2: repeat-log-9321-98.dmesg --]
[-- Type: text/plain, Size: 24691 bytes --]

[   88.982651] MPTCP: msk=00000000d55b3f70
[   89.120551] IPv6: ADDRCONF(NETDEV_CHANGE): ns1eth1: link becomes ready
[   89.130229] IPv6: ADDRCONF(NETDEV_CHANGE): ns1eth2: link becomes ready
[   89.139917] IPv6: ADDRCONF(NETDEV_CHANGE): ns1eth3: link becomes ready
[   89.149511] IPv6: ADDRCONF(NETDEV_CHANGE): ns1eth4: link becomes ready
[   89.157548] MPTCP: __mptcp_init_sock msk=0000000088cbb197 timer_ival=200
[   89.157561] MPTCP: subflow=000000001745e5dc
[   89.157562] MPTCP: subflow=000000001745e5dc, family=2
[   89.157563] MPTCP: subflow=000000001745e5dc
[   89.157567] MPTCP: msk=0000000088cbb197
[   89.157570] MPTCP: msk=0000000088cbb197
[   89.157571] MPTCP: msk=0000000088cbb197
[   89.157572] MPTCP: msk=0000000088cbb197
[   89.157577] MPTCP: msk=0000000088cbb197
[   89.157578] MPTCP: msk=0000000088cbb197
[   89.157579] MPTCP: msk=0000000088cbb197
[   89.157580] MPTCP: mptcp_listen msk=0000000088cbb197
[   89.157583] MPTCP: msk=0000000088cbb197
[   89.157584] MPTCP: msk=0000000088cbb197
[   89.157585] MPTCP: msk=0000000088cbb197
[   89.157588] MPTCP: msk=0000000088cbb197 state=10 flags=0
[   89.161547] MPTCP: __mptcp_init_sock msk=0000000056c1787c timer_ival=200
[   89.161556] MPTCP: subflow=00000000eec4e902
[   89.161557] MPTCP: subflow=00000000eec4e902, family=2
[   89.161558] MPTCP: subflow=00000000eec4e902
[   89.161562] MPTCP: msk=0000000056c1787c
[   89.161565] MPTCP: msk=0000000056c1787c
[   89.161566] MPTCP: msk=0000000056c1787c
[   89.161570] MPTCP: ssk=00000000739073ba, local_key=2049035318763103480, token=3643451371, idsn=7107993104720367715
[   89.161611] MPTCP: subflow=000000001745e5dc
[   89.161614] MPTCP: subflow_req=00000000aebd1c1e, listener=000000001745e5dc
[   89.161615] MPTCP: mptcp_parse_option subtype=0
[   89.161617] MPTCP: MP_CAPABLE version=1, flags=1, optlen=4 sndr=18446625988191902912, rcvr=18446645706075802224 len=65535 csum=65535
[   89.161620] MPTCP: req=00000000aebd1c1e local_key=3915243080113293332, token=86110708, idsn=1461774226565989501
[   89.161623] MPTCP: subflow_req=00000000aebd1c1e, local_key=3915243080113293332
[   89.161632] MPTCP: subflow=00000000eec4e902 synack seq=6af39b7d
[   89.161633] MPTCP: mptcp_parse_option subtype=0
[   89.161633] MPTCP: MP_CAPABLE version=1, flags=1, optlen=12 sndr=3915243080113293332, rcvr=89153004 len=0 csum=0
[   89.161635] MPTCP: subflow=00000000eec4e902, remote_key=3915243080113293332
[   89.161636] MPTCP: msk=0000000056c1787c, token=3643451371
[   89.161638] MPTCP: msk=0000000056c1787c, token=3643451371 side=0
[   89.161642] MPTCP: subflow=00000000eec4e902, local_key=2049035318763103480, remote_key=3915243080113293332 map_len=0
[   89.161645] MPTCP: listener=000000001745e5dc, req=00000000aebd1c1e, conn=0000000088cbb197
[   89.161647] MPTCP: mptcp_parse_option subtype=0
[   89.161647] MPTCP: MP_CAPABLE version=1, flags=1, optlen=20 sndr=2049035318763103480, rcvr=3915243080113293332 len=38042 csum=65535
[   89.161650] MPTCP: __mptcp_init_sock msk=00000000f4a5f8ae timer_ival=200
[   89.161653] MPTCP: subflow=0000000076d765d6
[   89.161655] MPTCP: msk=00000000f4a5f8ae, token=86110708 side=1
[   89.161658] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
[   89.161659] MPTCP: mptcp_parse_option subtype=0
[   89.161660] MPTCP: MP_CAPABLE version=1, flags=1, optlen=20 sndr=2049035318763103480, rcvr=3915243080113293332 len=0 csum=0
[   89.161666] MPTCP: msk=0000000056c1787c
[   89.161668] MPTCP: msk=0000000056c1787c
[   89.161669] MPTCP: msk=0000000056c1787c
[   89.161681] MPTCP: msk=0000000056c1787c
[   89.161682] MPTCP: msk=0000000056c1787c
[   89.161683] MPTCP: msk=0000000056c1787c
[   89.161690] MPTCP: msk=0000000056c1787c state=1 flags=0
[   89.161699] MPTCP: msk=0000000056c1787c dfrag at seq=7107993104720367716 len=100 sent=0 new=1
[   89.161701] MPTCP: __mptcp_set_timeout msk=0000000056c1787c timer_ival=200 tout=0
[   89.161701] MPTCP: msk=0000000088cbb197 state=10 flags=0
[   89.161702] MPTCP: msk=0000000056c1787c ssk=00000000739073ba sending dfrag at seq=7107993104720367716 len=100 already sent=0
[   89.161706] MPTCP: data_seq=7107993104720367716 subflow_seq=1 data_len=100 dsn64=1
[   89.161708] MPTCP: subflow=00000000eec4e902, local_key=2049035318763103480, remote_key=3915243080113293332 map_len=100
[   89.161712] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
[   89.161713] MPTCP: mptcp_parse_option subtype=0
[   89.161713] MPTCP: mptcp_stream_accept msk=0000000088cbb197
[   89.161714] MPTCP: MP_CAPABLE version=1, flags=1, optlen=22 sndr=2049035318763103480, rcvr=3915243080113293332 len=100 csum=0
[   89.161714] MPTCP: msk=0000000088cbb197, listener=000000001745e5dc
[   89.161716] MPTCP: subflow_req=00000000aebd1c1e
[   89.161717] MPTCP: new map seq=7107993104720367716 subflow_seq=1 data_len=100 csum=0:0
[   89.161718] MPTCP: msk=0000000088cbb197, subflow is mptcp=1
[   89.161719] MPTCP: msk ack_seq=62a4aa11a8c89064 subflow ack_seq=62a4aa11a8c89064
[   89.161720] MPTCP: msk=00000000f4a5f8ae
[   89.161721] MPTCP: msk=00000000f4a5f8ae ssk=0000000007fddbb0
[   89.161723] MPTCP: Done with mapping: seq=1 data_len=100
[   89.161724] MPTCP: msk=00000000f4a5f8ae empty=1
[   89.161728] MPTCP: msk=00000000f4a5f8ae
[   89.161729] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.161730] MPTCP: mptcp_parse_option subtype=2
[   89.161730] MPTCP: msk=00000000f4a5f8ae
[   89.161731] MPTCP: DSS
[   89.161731] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=1 use_ack=1
[   89.161732] MPTCP: msk=00000000f4a5f8ae
[   89.161733] MPTCP: data_ack=7107993104720367816
[   89.161733] MPTCP: msk=0000000056c1787c
[   89.161735] MPTCP: mptcp_reset_timer msk=0000000056c1787c tout=200 timer_ival=200
[   89.161736] MPTCP: msk=0000000056c1787c snd_data_fin_enable=0 pending=0 snd_nxt=7107993104720367816 write_seq=7107993104720367816
[   89.161738] MPTCP: mptcp_stop_timer msk=0000000056c1787c timer_ival=0
[   89.161739] MPTCP: msk=00000000f4a5f8ae state=1 flags=0
[   89.161743] MPTCP: msk=00000000f4a5f8ae empty=1
[   89.161746] MPTCP: msk=00000000f4a5f8ae rx queue empty=1:1 copied=100
[   89.161765] MPTCP: msk=00000000f4a5f8ae dfrag at seq=1461774226565989502 len=100 sent=0 new=1
[   89.161767] MPTCP: __mptcp_set_timeout msk=00000000f4a5f8ae timer_ival=200 tout=0
[   89.161769] MPTCP: msk=00000000f4a5f8ae ssk=0000000007fddbb0 sending dfrag at seq=1461774226565989502 len=100 already sent=0
[   89.161772] MPTCP: data_seq=1461774226565989502 subflow_seq=1 data_len=100 dsn64=1
[   89.161778] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.161779] MPTCP: mptcp_parse_option subtype=2
[   89.161780] MPTCP: DSS
[   89.161781] MPTCP: data_fin=0 dsn64=1 use_map=1 ack64=1 use_ack=1
[   89.161782] MPTCP: data_ack=7107993104720367816
[   89.161782] MPTCP: data_seq=1461774226565989502 subflow_seq=1 data_len=100 csum=0:0
[   89.161784] MPTCP: new map seq=1461774226565989502 subflow_seq=1 data_len=100 csum=0:0
[   89.161785] MPTCP: msk ack_seq=144943ea0c49847e subflow ack_seq=144943ea0c49847e
[   89.161786] MPTCP: msk=0000000056c1787c ssk=00000000739073ba
[   89.161787] MPTCP: Done with mapping: seq=1 data_len=100
[   89.161788] MPTCP: msk=0000000056c1787c empty=1
[   89.161793] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
[   89.161794] MPTCP: mptcp_parse_option subtype=2
[   89.161795] MPTCP: DSS
[   89.161796] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=1 use_ack=1
[   89.161797] MPTCP: data_ack=1461774226565989602
[   89.161797] MPTCP: msk=00000000f4a5f8ae
[   89.161799] MPTCP: mptcp_reset_timer msk=00000000f4a5f8ae tout=200 timer_ival=200
[   89.161800] MPTCP: msk=00000000f4a5f8ae snd_data_fin_enable=0 pending=0 snd_nxt=1461774226565989602 write_seq=1461774226565989602
[   89.161801] MPTCP: mptcp_stop_timer msk=00000000f4a5f8ae timer_ival=0
[   89.362253] MPTCP: msk=00000000f4a5f8ae state=1 flags=0
[   89.362253] MPTCP: msk=0000000056c1787c state=1 flags=0
[   89.362285] MPTCP: msk=00000000f4a5f8ae dfrag at seq=1461774226565989602 len=422 sent=0 new=1
[   89.362295] MPTCP: __mptcp_set_timeout msk=00000000f4a5f8ae timer_ival=200 tout=0
[   89.362301] MPTCP: mptcp_set_timeout msk=00000000f4a5f8ae timer_ival=200 tout=0
[   89.362303] MPTCP: msk=0000000056c1787c empty=1
[   89.362350] MPTCP: msk=00000000f4a5f8ae ssk=0000000007fddbb0 sending dfrag at seq=1461774226565989602 len=422 already sent=0
[   89.362359] MPTCP: msk=0000000056c1787c rx queue empty=1:1 copied=100
[   89.362367] MPTCP: data_seq=1461774226565989602 subflow_seq=101 data_len=422 dsn64=1
[   89.362419] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.362425] MPTCP: mptcp_parse_option subtype=2
[   89.362430] MPTCP: DSS
[   89.362432] MPTCP: data_fin=0 dsn64=1 use_map=1 ack64=1 use_ack=1
[   89.362439] MPTCP: data_ack=7107993104720367816
[   89.362443] MPTCP: data_seq=1461774226565989602 subflow_seq=101 data_len=422 csum=0:0
[   89.362450] MPTCP: msk=0000000056c1787c dfrag at seq=7107993104720367816 len=952 sent=0 new=1
[   89.362455] MPTCP: new map seq=1461774226565989602 subflow_seq=101 data_len=422 csum=0:0
[   89.362462] MPTCP: msk ack_seq=144943ea0c4984e2 subflow ack_seq=144943ea0c4984e2
[   89.362461] MPTCP: __mptcp_set_timeout msk=0000000056c1787c timer_ival=200 tout=0
[   89.362470] MPTCP: msk=0000000056c1787c ssk=00000000739073ba
[   89.362469] MPTCP: mptcp_set_timeout msk=0000000056c1787c timer_ival=200 tout=0
[   89.362477] MPTCP: Done with mapping: seq=101 data_len=422
[   89.362482] MPTCP: msk=0000000056c1787c empty=1
[   89.362494] MPTCP: msk=0000000056c1787c ssk=00000000739073ba sending dfrag at seq=7107993104720367816 len=952 already sent=0
[   89.362511] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
[   89.362514] MPTCP: data_seq=7107993104720367816 subflow_seq=101 data_len=952 dsn64=1
[   89.362517] MPTCP: mptcp_parse_option subtype=2
[   89.362523] MPTCP: DSS
[   89.362527] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=1 use_ack=1
[   89.362532] MPTCP: data_ack=1461774226565990024
[   89.362539] MPTCP: mptcp_reset_timer msk=00000000f4a5f8ae tout=200 timer_ival=200
[   89.362545] MPTCP: msk=00000000f4a5f8ae snd_data_fin_enable=0 pending=0 snd_nxt=1461774226565990024 write_seq=1461774226565990024
[   89.362553] MPTCP: mptcp_stop_timer msk=00000000f4a5f8ae timer_ival=0
[   89.362552] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
[   89.362561] MPTCP: mptcp_parse_option subtype=2
[   89.362566] MPTCP: msk=00000000f4a5f8ae state=1 flags=0
[   89.362569] MPTCP: DSS
[   89.362574] MPTCP: data_fin=0 dsn64=1 use_map=1 ack64=1 use_ack=1
[   89.362577] MPTCP: msk=00000000f4a5f8ae dfrag at seq=1461774226565990024 len=530 sent=0 new=1
[   89.362583] MPTCP: data_ack=1461774226565990024
[   89.362584] MPTCP: __mptcp_set_timeout msk=00000000f4a5f8ae timer_ival=200 tout=0
[   89.362590] MPTCP: mptcp_set_timeout msk=00000000f4a5f8ae timer_ival=200 tout=0
[   89.362591] MPTCP: data_seq=7107993104720367816 subflow_seq=101 data_len=952 csum=0:0
[   89.362605] MPTCP: new map seq=7107993104720367816 subflow_seq=101 data_len=952 csum=0:0
[   89.362612] MPTCP: msk ack_seq=62a4aa11a8c890c8 subflow ack_seq=62a4aa11a8c890c8
[   89.362619] MPTCP: msk=00000000f4a5f8ae ssk=0000000007fddbb0
[   89.362628] MPTCP: Done with mapping: seq=101 data_len=952
[   89.362634] MPTCP: msk=00000000f4a5f8ae empty=1
[   89.362651] MPTCP: msk=00000000f4a5f8ae ssk=0000000007fddbb0 sending dfrag at seq=1461774226565990024 len=530 already sent=0
[   89.362660] MPTCP: data_seq=1461774226565990024 subflow_seq=523 data_len=530 dsn64=1
[   89.362670] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.362674] MPTCP: mptcp_reset_timer msk=00000000f4a5f8ae tout=200 timer_ival=200
[   89.362680] MPTCP: msk=00000000f4a5f8ae snd_data_fin_enable=0 pending=0 snd_nxt=1461774226565990554 write_seq=1461774226565990554
[   89.362682] MPTCP: mptcp_parse_option subtype=2
[   89.362688] MPTCP: DSS
[   89.362692] MPTCP: msk=00000000f4a5f8ae state=1 flags=0
[   89.362692] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=1 use_ack=1
[   89.362700] MPTCP: data_ack=7107993104720368768
[   89.362703] MPTCP: msk=00000000f4a5f8ae empty=1
[   89.362712] MPTCP: msk=00000000f4a5f8ae rx queue empty=1:1 copied=952
[   89.362712] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.362718] MPTCP: mptcp_parse_option subtype=2
[   89.362724] MPTCP: DSS
[   89.362726] MPTCP: data_fin=0 dsn64=1 use_map=1 ack64=1 use_ack=1
[   89.362733] MPTCP: data_ack=7107993104720368768
[   89.362738] MPTCP: data_seq=1461774226565990024 subflow_seq=523 data_len=530 csum=0:0
[   89.362750] MPTCP: new map seq=1461774226565990024 subflow_seq=523 data_len=530 csum=0:0
[   89.362759] MPTCP: msk ack_seq=144943ea0c498688 subflow ack_seq=144943ea0c498688
[   89.362762] MPTCP: sk=00000000f4a5f8ae, how=2
[   89.362767] MPTCP: msk=0000000056c1787c ssk=00000000739073ba
[   89.362768] MPTCP: msk=00000000f4a5f8ae snd_data_fin_enable=0 shutdown=2 state=4 pending=0
[   89.362774] MPTCP: msk=00000000f4a5f8ae snd_data_fin_enable=1 pending=0 snd_nxt=1461774226565990554 write_seq=1461774226565990555
[   89.362778] MPTCP: colesced seq 144943ea0c498688 into 144943ea0c4984e2 new len 952 new end seq 144943ea0c49889a
[   89.362781] MPTCP: Sending DATA_FIN on subflow 0000000007fddbb0
[   89.362790] MPTCP: Done with mapping: seq=523 data_len=530
[   89.362797] MPTCP: msk=0000000056c1787c empty=1
[   89.362799] MPTCP: msk=00000000f4a5f8ae state=4 flags=0
[   89.362826] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
[   89.362835] MPTCP: mptcp_parse_option subtype=2
[   89.362840] MPTCP: DSS
[   89.362843] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=1 use_ack=1
[   89.362850] MPTCP: data_ack=1461774226565990554
[   89.362857] MPTCP: __mptcp_clean_una call mptcp_reset_timer
[   89.362862] MPTCP: mptcp_reset_timer msk=00000000f4a5f8ae tout=200 timer_ival=200
[   89.362877] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.362883] MPTCP: mptcp_parse_option subtype=2
[   89.362888] MPTCP: DSS
[   89.362892] MPTCP: data_fin=1 dsn64=1 use_map=1 ack64=1 use_ack=1
[   89.362899] MPTCP: data_ack=7107993104720368768
[   89.362903] MPTCP: data_seq=1461774226565990554 subflow_seq=0 data_len=1 csum=0:0
[   89.362941] MPTCP: mptcp_reset_timer msk=0000000056c1787c tout=200 timer_ival=200
[   89.362950] MPTCP: msk=0000000056c1787c snd_data_fin_enable=0 pending=0 snd_nxt=7107993104720368768 write_seq=7107993104720368768
[   89.362962] MPTCP: mptcp_stop_timer msk=0000000056c1787c timer_ival=0
[   89.362978] MPTCP: msk=0000000056c1787c snd_data_fin_enable=0 pending=0 snd_nxt=7107993104720368768 write_seq=7107993104720368768
[   89.363006] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
[   89.363012] MPTCP: mptcp_parse_option subtype=2
[   89.363017] MPTCP: DSS
[   89.363021] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=1 use_ack=1
[   89.363027] MPTCP: data_ack=1461774226565990555
[   89.363045] MPTCP: msk=00000000f4a5f8ae snd_data_fin_enable=0 pending=0 snd_nxt=1461774226565990555 write_seq=1461774226565990555
[   89.363069] MPTCP: msk=0000000056c1787c state=8 flags=0
[   89.363083] MPTCP: msk=0000000056c1787c empty=1
[   89.363092] MPTCP: msk=0000000056c1787c rx queue empty=1:1 copied=952
[   89.363101] MPTCP: msk=00000000f4a5f8ae state=5 flags=0
[   89.363134] MPTCP: sk=0000000056c1787c, how=2
[   89.363142] MPTCP: msk=0000000056c1787c snd_data_fin_enable=0 shutdown=3 state=9 pending=0
[   89.363150] MPTCP: msk=0000000056c1787c snd_data_fin_enable=1 pending=0 snd_nxt=7107993104720368768 write_seq=7107993104720368769
[   89.363160] MPTCP: Sending DATA_FIN on subflow 00000000739073ba
[   89.363180] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
[   89.363186] MPTCP: mptcp_parse_option subtype=2
[   89.363193] MPTCP: DSS
[   89.363196] MPTCP: data_fin=1 dsn64=1 use_map=1 ack64=1 use_ack=1
[   89.363203] MPTCP: data_ack=1461774226565990555
[   89.363207] MPTCP: data_seq=7107993104720368768 subflow_seq=0 data_len=1 csum=0:0
[   89.363225] MPTCP: mptcp_subflow_shutdown call mptcp_reset_timer
[   89.363230] MPTCP: mptcp_reset_timer msk=0000000056c1787c tout=0 timer_ival=0
[   89.363249] MPTCP: msk=00000000f4a5f8ae snd_data_fin_enable=0 pending=0 snd_nxt=1461774226565990555 write_seq=1461774226565990555
[   89.363271] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.363278] MPTCP: mptcp_parse_option subtype=2
[   89.363283] MPTCP: DSS
[   89.363288] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=1 use_ack=1
[   89.363296] MPTCP: data_ack=7107993104720368769
[   89.363332] MPTCP: msk=0000000056c1787c snd_data_fin_enable=0 pending=0 snd_nxt=7107993104720368769 write_seq=7107993104720368769
[   89.363334] MPTCP: msk=00000000f4a5f8ae state=7 flags=0
[   89.363355] MPTCP: msk=0000000056c1787c state=7 flags=0
[   89.363357] MPTCP: msk=00000000f4a5f8ae rx queue empty=1:1 copied=0
[   89.363371] MPTCP: msk=0000000056c1787c rx queue empty=1:1 copied=0
[   89.363373] MPTCP: mptcp_close msk=00000000f4a5f8ae state=7
[   89.363381] MPTCP: __mptcp_destroy_sock msk=00000000f4a5f8ae
[   89.363385] MPTCP: sk=0000000056c1787c, how=2
[   89.363415] MPTCP: FASTCLOSE key=3915243080113293332
[   89.363422] MPTCP: mptcp_write_options msk=0000000056c1787c write FASTCLOSE
[   89.363428] MPTCP: mptcp_write_options msk=0000000056c1787c write RST
[   89.363445] MPTCP: mptcp_incoming_options msk=00000000f4a5f8ae call mptcp_get_options
[   89.363452] MPTCP: msk=0000000056c1787c
[   89.363472] MPTCP: msk=00000000f4a5f8ae
[   89.363480] MPTCP: msk=00000000f4a5f8ae
[   89.363480] MPTCP: ssk=00000000739073ba, local_key=14043904268449196188, token=858690305, idsn=15279878249843479917
[   89.363501] MPTCP: msk=0000000088cbb197 state=10 flags=0
[   89.363528] MPTCP: subflow=000000001745e5dc
[   89.363540] MPTCP: subflow_req=000000008e77b85e, listener=000000001745e5dc
[   89.363548] MPTCP: mptcp_parse_option subtype=0
[   89.363554] MPTCP: MP_CAPABLE version=1, flags=1, optlen=4 sndr=18446625988191902912, rcvr=18446645706075802224 len=65535 csum=65535
[   89.363572] MPTCP: req=000000008e77b85e local_key=4646237471059683850, token=2450339804, idsn=15893755681837120179
[   89.363591] MPTCP: subflow_req=000000008e77b85e, local_key=4646237471059683850
[   89.363620] MPTCP: subflow=00000000eec4e902 synack seq=cb6c4dab
[   89.363627] MPTCP: mptcp_parse_option subtype=0
[   89.363632] MPTCP: MP_CAPABLE version=1, flags=1, optlen=12 sndr=4646237471059683850, rcvr=89354934 len=0 csum=0
[   89.363642] MPTCP: subflow=00000000eec4e902, remote_key=4646237471059683850
[   89.363648] MPTCP: msk=0000000056c1787c, token=858690305
[   89.363657] MPTCP: msk=0000000056c1787c, token=858690305 side=0
[   89.363673] MPTCP: subflow=00000000eec4e902, local_key=14043904268449196188, remote_key=4646237471059683850 map_len=0
[   89.363695] MPTCP: listener=000000001745e5dc, req=000000008e77b85e, conn=0000000088cbb197
[   89.363704] MPTCP: mptcp_parse_option subtype=0
[   89.363709] MPTCP: MP_CAPABLE version=1, flags=1, optlen=20 sndr=14043904268449196188, rcvr=4646237471059683850 len=38042 csum=65535
[   89.363725] MPTCP: __mptcp_init_sock msk=000000007d71e874 timer_ival=200
[   89.363741] MPTCP: subflow=00000000d1e2661a
[   89.363753] MPTCP: msk=000000007d71e874, token=2450339804 side=1
[   89.363770] MPTCP: mptcp_incoming_options msk=000000007d71e874 call mptcp_get_options
[   89.363777] MPTCP: mptcp_parse_option subtype=0
[   89.363782] MPTCP: MP_CAPABLE version=1, flags=1, optlen=20 sndr=14043904268449196188, rcvr=4646237471059683850 len=0 csum=0
[   89.363831] MPTCP: msk=0000000056c1787c
[   89.363842] MPTCP: msk=0000000056c1787c
[   89.363848] MPTCP: msk=0000000056c1787c
[   89.363850] MPTCP: msk=0000000088cbb197 state=10 flags=0
[   89.363861] MPTCP: msk=0000000056c1787c state=1 flags=0
[   89.363876] MPTCP: sk=0000000056c1787c, how=2
[   89.363882] MPTCP: mptcp_stream_accept msk=0000000088cbb197
[   89.363882] MPTCP: msk=0000000056c1787c snd_data_fin_enable=0 shutdown=2 state=4 pending=0
[   89.363890] MPTCP: msk=0000000088cbb197, listener=000000001745e5dc
[   89.363892] MPTCP: msk=0000000056c1787c snd_data_fin_enable=1 pending=0 snd_nxt=15279878249843479918 write_seq=15279878249843479919
[   89.363898] MPTCP: subflow_req=000000008e77b85e
[   89.363903] MPTCP: Sending DATA_FIN on subflow 00000000739073ba
[   89.363904] MPTCP: msk=0000000088cbb197, subflow is mptcp=1
[   89.363912] MPTCP: msk=000000007d71e874
[   89.363926] MPTCP: msk=000000007d71e874
[   89.363926] MPTCP: mptcp_incoming_options msk=000000007d71e874 call mptcp_get_options
[   89.363932] MPTCP: msk=000000007d71e874
[   89.363934] MPTCP: mptcp_parse_option subtype=2
[   89.363938] MPTCP: msk=000000007d71e874
[   89.363939] MPTCP: DSS
[   89.363943] MPTCP: data_fin=1 dsn64=1 use_map=1 ack64=0 use_ack=1
[   89.363950] MPTCP: msk=000000007d71e874 state=1 flags=0
[   89.363951] MPTCP: data_ack=2059369140
[   89.363956] MPTCP: data_seq=15279878249843479918 subflow_seq=0 data_len=1 csum=0:0
[   89.363964] MPTCP: sk=000000007d71e874, how=2
[   89.363964] MPTCP: msk=000000007d71e874
[   89.363969] MPTCP: msk=000000007d71e874 snd_data_fin_enable=0 shutdown=2 state=4 pending=0
[   89.363976] MPTCP: msk=000000007d71e874 snd_data_fin_enable=1 pending=0 snd_nxt=15893755681837120180 write_seq=15893755681837120181
[   89.363981] MPTCP: mptcp_subflow_shutdown call mptcp_reset_timer
[   89.363985] MPTCP: mptcp_reset_timer msk=0000000056c1787c tout=0 timer_ival=0
[   89.363986] MPTCP: Sending DATA_FIN on subflow 000000002623eb0f
[   89.364008] MPTCP: msk=0000000056c1787c state=4 flags=0
[   89.364019] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.364026] MPTCP: mptcp_parse_option subtype=2
[   89.364030] MPTCP: DSS
[   89.364032] MPTCP: data_fin=1 dsn64=1 use_map=1 ack64=0 use_ack=1
[   89.364037] MPTCP: data_ack=3710080366
[   89.364040] MPTCP: data_seq=15893755681837120180 subflow_seq=0 data_len=1 csum=0:0
[   89.364045] MPTCP: msk=0000000056c1787c
[   89.364060] MPTCP: mptcp_subflow_shutdown call mptcp_reset_timer
[   89.364064] MPTCP: mptcp_reset_timer msk=000000007d71e874 tout=200 timer_ival=200
[   89.364083] MPTCP: msk=0000000056c1787c snd_data_fin_enable=1 pending=0 snd_nxt=15279878249843479919 write_seq=15279878249843479919
[   89.364097] MPTCP: mptcp_incoming_options msk=000000007d71e874 call mptcp_get_options
[   89.364101] MPTCP: mptcp_parse_option subtype=2
[   89.364104] MPTCP: DSS
[   89.364106] MPTCP: data_fin=1 dsn64=1 use_map=1 ack64=0 use_ack=1
[   89.364111] MPTCP: data_ack=2059369141
[   89.364113] MPTCP: data_seq=15279878249843479918 subflow_seq=0 data_len=1 csum=0:0
[   89.364126] MPTCP: msk=000000007d71e874 snd_data_fin_enable=0 pending=0 snd_nxt=15893755681837120181 write_seq=15893755681837120181
[   89.364142] MPTCP: msk=000000007d71e874 state=7 flags=0
[   89.364166] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.364172] MPTCP: mptcp_parse_option subtype=2
[   89.364176] MPTCP: DSS
[   89.364179] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=0 use_ack=1
[   89.364183] MPTCP: data_ack=3710080367
[   89.364198] MPTCP: msk=0000000056c1787c state=11 flags=0
[   89.364206] MPTCP: msk=0000000056c1787c snd_data_fin_enable=0 pending=0 snd_nxt=15279878249843479919 write_seq=15279878249843479919
[   89.364208] MPTCP: msk=000000007d71e874 rx queue empty=1:1 copied=0
[   89.364222] MPTCP: mptcp_close msk=000000007d71e874 state=7
[   89.364227] MPTCP: __mptcp_destroy_sock msk=000000007d71e874
[   89.364228] MPTCP: msk=0000000056c1787c rx queue empty=1:1 copied=0
[   89.364242] MPTCP: mptcp_close msk=0000000056c1787c state=7
[   89.364244] MPTCP: mptcp_incoming_options msk=0000000056c1787c call mptcp_get_options
[   89.364249] MPTCP: mptcp_parse_option subtype=2
[   89.364249] MPTCP: __mptcp_destroy_sock msk=0000000056c1787c
[   89.364253] MPTCP: DSS
[   89.364256] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=0 use_ack=1
[   89.364260] MPTCP: data_ack=3710080367
[   89.364273] MPTCP: msk=000000007d71e874
[   89.364328] MPTCP: mptcp_incoming_options msk=000000007d71e874 call mptcp_get_options
[   89.364337] MPTCP: mptcp_parse_option subtype=2
[   89.364343] MPTCP: DSS
[   89.364347] MPTCP: data_fin=0 dsn64=0 use_map=0 ack64=0 use_ack=1
[   89.364355] MPTCP: data_ack=2059369141
[   89.364380] MPTCP: msk=000000007d71e874
[   89.364434] MPTCP: msk=0000000056c1787c
[   89.364649] MPTCP: mptcp_close msk=0000000088cbb197 state=7
[   89.364658] MPTCP: __mptcp_destroy_sock msk=0000000088cbb197

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

* Re: [PATCH mptcp-next v3 0/7] add fastclose testcases
  2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
                   ` (7 preceding siblings ...)
  2022-02-16  1:17 ` [PATCH mptcp-next v3 0/7] add fastclose testcases Mat Martineau
@ 2022-02-19  0:02 ` Mat Martineau
  8 siblings, 0 replies; 12+ messages in thread
From: Mat Martineau @ 2022-02-19  0:02 UTC (permalink / raw)
  To: Geliang Tang; +Cc: mptcp

On Tue, 15 Feb 2022, Geliang Tang wrote:

> v3:
> - merge the squash-to patch ("Squash to "selftests: mptcp: add
> fastclose testcases v2") into v3.
> - add a new patch to check fastclose in mptcp_connect.sh
>
> base-commit: 9dff76d953f7a0fe2b27818f2aa93031c9a617cf

With the two squash-to patches:

https://patchwork.kernel.org/project/mptcp/patch/22588887e5e516015f7f7b9d09112efc679fecf7.1645159759.git.geliang.tang@suse.com/
https://patchwork.kernel.org/project/mptcp/patch/0ecb29a09e1b2768ef1166a33dc089e1fa3ae339.1645180743.git.geliang.tang@suse.com/

v3 looks good for the export branch:

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>

>
> v2:
> - merge the squash-to patch ("Squash to "selftests: mptcp: add the
> MP_RST mibs check") into v2.
> - update the commit logs.
>
> This patchset is related to issue #48 and issue #197. The two MP_RST
> patches are moved from the "add mp_fail testcases" series.
>
> Geliang Tang (7):
>  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: add fastclose testcases
>  selftests: mptcp: fastclose check in mptcp_connect
>
> net/mptcp/mib.c                               |   4 +
> net/mptcp/mib.h                               |   4 +
> net/mptcp/options.c                           |   5 +
> .../selftests/net/mptcp/mptcp_connect.sh      |  37 +++++
> .../testing/selftests/net/mptcp/mptcp_join.sh | 134 ++++++++++++++++--
> 5 files changed, 171 insertions(+), 13 deletions(-)
>
> -- 
> 2.34.1
>
>
>

--
Mat Martineau
Intel

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

end of thread, other threads:[~2022-02-19  0:02 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-15 11:12 [PATCH mptcp-next v3 0/7] add fastclose testcases Geliang Tang
2022-02-15 11:12 ` [PATCH mptcp-next v3 1/7] mptcp: add the mibs for MP_FASTCLOSE Geliang Tang
2022-02-15 11:12 ` [PATCH mptcp-next v3 2/7] selftests: mptcp: add the MP_FASTCLOSE mibs check Geliang Tang
2022-02-15 11:12 ` [PATCH mptcp-next v3 3/7] mptcp: add the mibs for MP_RST Geliang Tang
2022-02-15 11:12 ` [PATCH mptcp-next v3 4/7] selftests: mptcp: add the MP_RST mibs check Geliang Tang
2022-02-15 11:12 ` [PATCH mptcp-next v3 5/7] selftests: mptcp: add extra_args in do_transfer Geliang Tang
2022-02-15 11:12 ` [PATCH mptcp-next v3 6/7] selftests: mptcp: add fastclose testcases Geliang Tang
2022-02-15 11:12 ` [PATCH mptcp-next v3 7/7] selftests: mptcp: fastclose check in mptcp_connect Geliang Tang
2022-02-16  1:17 ` [PATCH mptcp-next v3 0/7] add fastclose testcases Mat Martineau
2022-02-18  7:16   ` Geliang Tang
2022-02-18  9:40   ` Geliang Tang
2022-02-19  0:02 ` Mat Martineau

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.