mptcp.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH mptcp-next v10 0/5] BPF redundant scheduler
@ 2022-06-30  8:50 Geliang Tang
  2022-06-30  8:50 ` [PATCH mptcp-next v10 1/5] Squash to "mptcp: add get_subflow wrappers" Geliang Tang
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Geliang Tang @ 2022-06-30  8:50 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

v10:
 - send multiple dfrags in __mptcp_push_pending().

v9:
 - drop the extra *err paramenter of mptcp_sched_get_send() as Florian
   suggested.

v8:
 - update __mptcp_push_pending(), send the same data on each subflow.
 - update __mptcp_retrans, track the max sent data.
 = add a new patch.

v7:
 - drop redundant flag in v6
 - drop __mptcp_subflows_push_pending in v6
 - update redundant subflows support in __mptcp_push_pending
 - update redundant subflows support in __mptcp_retrans

v6:
 - Add redundant flag for struct mptcp_sched_ops.
 - add a dedicated function __mptcp_subflows_push_pending() to deal with
   redundat subflows push pending.

v5:
 - address to Paolo's comment, keep the optimization to
mptcp_subflow_get_send() for the non eBPF case.
 - merge mptcp_sched_get_send() and __mptcp_sched_get_send() in v4 into one.
 - depends on "cleanups for bpf sched selftests".

v4:
 - small cleanups in patch 1, 2.
 - add TODO in patch 3.
 - rebase patch 5 on 'cleanups for bpf sched selftests'.

v3:
 - use new API.
 - fix the link failure tests issue mentioned in ("https://patchwork.kernel.org/project/mptcp/cover/cover.1653033459.git.geliang.tang@suse.com/").

v2:
 - add MPTCP_SUBFLOWS_MAX limit to avoid infinite loops when the
   scheduler always sets call_again to true.
 - track the largest copied amount.
 - deal with __mptcp_subflow_push_pending() and the retransmit loop.
 - depends on "BPF round-robin scheduler" v14.

v1:

Implements the redundant BPF MPTCP scheduler, which sends all packets
redundantly on all available subflows.

Geliang Tang (5):
  Squash to "mptcp: add get_subflow wrappers"
  mptcp: redundant subflows push pending
  mptcp: redundant subflows retrans support
  selftests/bpf: Add bpf_red scheduler
  selftests/bpf: Add bpf_red test

 net/mptcp/protocol.c                          | 158 +++++++++++-------
 net/mptcp/protocol.h                          |  12 +-
 net/mptcp/sched.c                             |  56 ++++---
 .../testing/selftests/bpf/prog_tests/mptcp.c  |  34 ++++
 .../selftests/bpf/progs/mptcp_bpf_red.c       |  36 ++++
 5 files changed, 208 insertions(+), 88 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c

-- 
2.35.3


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

* [PATCH mptcp-next v10 1/5] Squash to "mptcp: add get_subflow wrappers"
  2022-06-30  8:50 [PATCH mptcp-next v10 0/5] BPF redundant scheduler Geliang Tang
@ 2022-06-30  8:50 ` Geliang Tang
  2022-06-30  8:50 ` [PATCH mptcp-next v10 2/5] mptcp: redundant subflows push pending Geliang Tang
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Geliang Tang @ 2022-06-30  8:50 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

Please update the commit log:

'''
This patch defines two new wrappers mptcp_sched_get_send() and
mptcp_sched_get_retrans(), invoke get_subflow() of msk->sched in them.
Use them instead of using mptcp_subflow_get_send() or
mptcp_subflow_get_retrans() directly.

Set the subflow pointers array in struct mptcp_sched_data before invoking
get_subflow(), then it can be used in get_subflow() in the BPF contexts.

Check the subflow scheduled flags to test which subflow or subflows are
picked by the scheduler.

Move sock_owned_by_me() and the fallback check code from
mptcp_subflow_get_send/retrans() into the wrappers.

Redundant subflows are not supported in __mptcp_subflow_push_pending()
yet. This patch adds a placeholder in mptcp_sched_get_send() to pick the
first subflow for the redundant subflows case.
'''

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/protocol.c |  4 ++--
 net/mptcp/protocol.h |  2 +-
 net/mptcp/sched.c    | 56 +++++++++++++++++++++++++-------------------
 3 files changed, 35 insertions(+), 27 deletions(-)

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index b1fae2f747c9..6e44786e01fd 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1532,7 +1532,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned int flags)
 			int ret = 0;
 
 			prev_ssk = ssk;
-			ssk = mptcp_sched_get_send(msk);
+			ssk = mptcp_subflow_get_send(msk);
 
 			/* First check. If the ssk has changed since
 			 * the last round, release prev_ssk
@@ -2408,7 +2408,7 @@ static void __mptcp_retrans(struct sock *sk)
 	mptcp_clean_una_wakeup(sk);
 
 	/* first check ssk: need to kick "stale" logic */
-	ssk = mptcp_sched_get_retrans(msk);
+	ssk = mptcp_subflow_get_retrans(msk);
 	dfrag = mptcp_rtx_head(sk);
 	if (!dfrag) {
 		if (mptcp_data_fin_enabled(msk)) {
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index 95c9ace1437b..af414cd8b7cd 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -636,7 +636,7 @@ void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow,
 struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk);
 struct sock *mptcp_subflow_get_retrans(struct mptcp_sock *msk);
 struct sock *mptcp_sched_get_send(struct mptcp_sock *msk);
-struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk);
+int mptcp_sched_get_retrans(struct mptcp_sock *msk);
 
 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *subflow)
 {
diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c
index 8858e1fc8b74..85c1fe85399d 100644
--- a/net/mptcp/sched.c
+++ b/net/mptcp/sched.c
@@ -114,34 +114,46 @@ static int mptcp_sched_data_init(struct mptcp_sock *msk, bool reinject,
 	for (; i < MPTCP_SUBFLOWS_MAX; i++)
 		data->contexts[i] = NULL;
 
+	msk->snd_burst = 0;
+
 	return 0;
 }
 
 struct sock *mptcp_sched_get_send(struct mptcp_sock *msk)
 {
+	struct mptcp_subflow_context *subflow;
 	struct mptcp_sched_data data;
 	struct sock *ssk = NULL;
-	int i;
 
 	sock_owned_by_me((struct sock *)msk);
 
 	/* the following check is moved out of mptcp_subflow_get_send */
 	if (__mptcp_check_fallback(msk)) {
-		if (!msk->first)
-			return NULL;
-		return sk_stream_memory_free(msk->first) ? msk->first : NULL;
+		if (msk->first && sk_stream_memory_free(msk->first)) {
+			mptcp_subflow_set_scheduled(mptcp_subflow_ctx(msk->first), true);
+			return msk->first;
+		}
+		return NULL;
 	}
 
-	if (!msk->sched)
-		return mptcp_subflow_get_send(msk);
+	if (!msk->sched) {
+		ssk = mptcp_subflow_get_send(msk);
+		if (ssk)
+			mptcp_subflow_set_scheduled(mptcp_subflow_ctx(ssk), true);
+		return ssk;
+	}
 
 	mptcp_sched_data_init(msk, false, &data);
 	msk->sched->get_subflow(msk, &data);
 
-	for (i = 0; i < MPTCP_SUBFLOWS_MAX; i++) {
-		if (data.contexts[i] && READ_ONCE(data.contexts[i]->scheduled)) {
-			ssk = data.contexts[i]->tcp_sock;
-			msk->last_snd = ssk;
+	mptcp_for_each_subflow(msk, subflow) {
+		if (READ_ONCE(subflow->scheduled)) {
+			/* TODO: Redundant subflows are not supported in
+			 * __mptcp_subflow_push_pending() yet. Here's a
+			 * placeholder to pick the first subflow for the
+			 * redundant subflows case.
+			 */
+			ssk = subflow->tcp_sock;
 			break;
 		}
 	}
@@ -149,31 +161,27 @@ struct sock *mptcp_sched_get_send(struct mptcp_sock *msk)
 	return ssk;
 }
 
-struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk)
+int mptcp_sched_get_retrans(struct mptcp_sock *msk)
 {
 	struct mptcp_sched_data data;
 	struct sock *ssk = NULL;
-	int i;
 
 	sock_owned_by_me((const struct sock *)msk);
 
 	/* the following check is moved out of mptcp_subflow_get_retrans */
 	if (__mptcp_check_fallback(msk))
-		return NULL;
+		return -EINVAL;
 
-	if (!msk->sched)
-		return mptcp_subflow_get_retrans(msk);
+	if (!msk->sched) {
+		ssk = mptcp_subflow_get_retrans(msk);
+		if (!ssk)
+			return -EINVAL;
+		mptcp_subflow_set_scheduled(mptcp_subflow_ctx(ssk), true);
+		return 0;
+	}
 
 	mptcp_sched_data_init(msk, true, &data);
 	msk->sched->get_subflow(msk, &data);
 
-	for (i = 0; i < MPTCP_SUBFLOWS_MAX; i++) {
-		if (data.contexts[i] && READ_ONCE(data.contexts[i]->scheduled)) {
-			ssk = data.contexts[i]->tcp_sock;
-			msk->last_snd = ssk;
-			break;
-		}
-	}
-
-	return ssk;
+	return 0;
 }
-- 
2.35.3


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

* [PATCH mptcp-next v10 2/5] mptcp: redundant subflows push pending
  2022-06-30  8:50 [PATCH mptcp-next v10 0/5] BPF redundant scheduler Geliang Tang
  2022-06-30  8:50 ` [PATCH mptcp-next v10 1/5] Squash to "mptcp: add get_subflow wrappers" Geliang Tang
@ 2022-06-30  8:50 ` Geliang Tang
  2022-07-01 21:01   ` Mat Martineau
  2022-06-30  8:50 ` [PATCH mptcp-next v10 3/5] mptcp: redundant subflows retrans support Geliang Tang
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Geliang Tang @ 2022-06-30  8:50 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds the redundant subflows support for __mptcp_push_pending().
Use mptcp_sched_get_send() wrapper instead of mptcp_subflow_get_send()
in it.

Check the subflow scheduled flags to test which subflow or subflows are
picked by the scheduler, use them to send data.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/protocol.c | 96 ++++++++++++++++++++++++++------------------
 net/mptcp/protocol.h | 10 +++++
 2 files changed, 66 insertions(+), 40 deletions(-)

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 6e44786e01fd..f97e6c318c0b 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1516,57 +1516,73 @@ void mptcp_check_and_set_pending(struct sock *sk)
 
 void __mptcp_push_pending(struct sock *sk, unsigned int flags)
 {
-	struct sock *prev_ssk = NULL, *ssk = NULL;
 	struct mptcp_sock *msk = mptcp_sk(sk);
-	struct mptcp_sendmsg_info info = {
-				.flags = flags,
-	};
-	struct mptcp_data_frag *dfrag;
+	struct mptcp_subflow_context *subflow;
 	int len, copied = 0;
 
-	while ((dfrag = mptcp_send_head(sk))) {
-		info.sent = dfrag->already_sent;
-		info.limit = dfrag->data_len;
-		len = dfrag->data_len - dfrag->already_sent;
-		while (len > 0) {
-			int ret = 0;
+	if (!mptcp_sched_get_send(msk))
+		goto out;
 
-			prev_ssk = ssk;
-			ssk = mptcp_subflow_get_send(msk);
+	mptcp_for_each_subflow(msk, subflow) {
+		if (READ_ONCE(subflow->scheduled)) {
+			struct sock *prev_ssk = NULL, *ssk = NULL;
+			struct mptcp_sendmsg_info info = {
+				.flags = flags,
+			};
+			struct mptcp_data_frag *dfrag;
 
-			/* First check. If the ssk has changed since
-			 * the last round, release prev_ssk
-			 */
-			if (ssk != prev_ssk && prev_ssk)
-				mptcp_push_release(prev_ssk, &info);
-			if (!ssk)
+			dfrag = mptcp_send_head(sk);
+			if (!dfrag)
 				goto out;
 
-			/* Need to lock the new subflow only if different
-			 * from the previous one, otherwise we are still
-			 * helding the relevant lock
-			 */
-			if (ssk != prev_ssk)
-				lock_sock(ssk);
-
-			ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info);
-			if (ret <= 0) {
+			do {
+				info.sent = dfrag->already_sent;
+				info.limit = dfrag->data_len;
+				len = dfrag->data_len - dfrag->already_sent;
+				while (len > 0) {
+					int ret = 0;
+
+					prev_ssk = ssk;
+					ssk = mptcp_subflow_tcp_sock(subflow);
+
+					/* First check. If the ssk has changed since
+					 * the last round, release prev_ssk
+					 */
+					if (ssk != prev_ssk && prev_ssk)
+						mptcp_push_release(prev_ssk, &info);
+					if (!ssk)
+						goto out;
+
+					/* Need to lock the new subflow only if different
+					 * from the previous one, otherwise we are still
+					 * helding the relevant lock
+					 */
+					if (ssk != prev_ssk)
+						lock_sock(ssk);
+
+					ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info);
+					if (ret <= 0) {
+						mptcp_push_release(ssk, &info);
+						goto out;
+					}
+
+					info.sent += ret;
+					copied += ret;
+					len -= ret;
+
+					mptcp_update_post_push(msk, dfrag, ret);
+				}
+			} while ((dfrag = mptcp_next_frag(sk, dfrag)));
+
+			/* at this point we held the socket lock for the last subflow we used */
+			if (ssk) {
 				mptcp_push_release(ssk, &info);
-				goto out;
+				msk->last_snd = ssk;
+				mptcp_subflow_set_scheduled(subflow, false);
 			}
-
-			info.sent += ret;
-			copied += ret;
-			len -= ret;
-
-			mptcp_update_post_push(msk, dfrag, ret);
 		}
-		WRITE_ONCE(msk->first_pending, mptcp_send_next(sk));
 	}
-
-	/* at this point we held the socket lock for the last subflow we used */
-	if (ssk)
-		mptcp_push_release(ssk, &info);
+	WRITE_ONCE(msk->first_pending, NULL);
 
 out:
 	/* ensure the rtx timer is running */
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index af414cd8b7cd..09a9797d2dfb 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -355,6 +355,16 @@ static inline struct mptcp_data_frag *mptcp_send_next(struct sock *sk)
 						     list_next_entry(cur, list);
 }
 
+static inline struct mptcp_data_frag *mptcp_next_frag(struct sock *sk,
+						      struct mptcp_data_frag *cur)
+{
+	if (!cur)
+		return NULL;
+
+	return list_is_last(&cur->list, &mptcp_sk(sk)->rtx_queue) ? NULL :
+						     list_next_entry(cur, list);
+}
+
 static inline struct mptcp_data_frag *mptcp_pending_tail(const struct sock *sk)
 {
 	struct mptcp_sock *msk = mptcp_sk(sk);
-- 
2.35.3


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

* [PATCH mptcp-next v10 3/5] mptcp: redundant subflows retrans support
  2022-06-30  8:50 [PATCH mptcp-next v10 0/5] BPF redundant scheduler Geliang Tang
  2022-06-30  8:50 ` [PATCH mptcp-next v10 1/5] Squash to "mptcp: add get_subflow wrappers" Geliang Tang
  2022-06-30  8:50 ` [PATCH mptcp-next v10 2/5] mptcp: redundant subflows push pending Geliang Tang
@ 2022-06-30  8:50 ` Geliang Tang
  2022-06-30  8:50 ` [PATCH mptcp-next v10 4/5] selftests/bpf: Add bpf_red scheduler Geliang Tang
  2022-06-30  8:50 ` [PATCH mptcp-next v10 5/5] selftests/bpf: Add bpf_red test Geliang Tang
  4 siblings, 0 replies; 11+ messages in thread
From: Geliang Tang @ 2022-06-30  8:50 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds the redundant subflows support for __mptcp_retrans(). In
it, use sched_get_retrans() wrapper instead of mptcp_subflow_get_retrans().

Iterate each subflow of msk, check the scheduled flag to test if it is
picked by the scheduler. If so, use it to send data.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/protocol.c | 62 ++++++++++++++++++++++++++++----------------
 1 file changed, 39 insertions(+), 23 deletions(-)

diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index f97e6c318c0b..3046b01c140c 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -2415,16 +2415,17 @@ static void mptcp_check_fastclose(struct mptcp_sock *msk)
 static void __mptcp_retrans(struct sock *sk)
 {
 	struct mptcp_sock *msk = mptcp_sk(sk);
+	struct mptcp_subflow_context *subflow;
 	struct mptcp_sendmsg_info info = {};
 	struct mptcp_data_frag *dfrag;
-	size_t copied = 0;
 	struct sock *ssk;
-	int ret;
+	int ret, err;
+	u16 len = 0;
 
 	mptcp_clean_una_wakeup(sk);
 
 	/* first check ssk: need to kick "stale" logic */
-	ssk = mptcp_subflow_get_retrans(msk);
+	err = mptcp_sched_get_retrans(msk);
 	dfrag = mptcp_rtx_head(sk);
 	if (!dfrag) {
 		if (mptcp_data_fin_enabled(msk)) {
@@ -2443,31 +2444,46 @@ static void __mptcp_retrans(struct sock *sk)
 		goto reset_timer;
 	}
 
-	if (!ssk)
+	if (err)
 		goto reset_timer;
 
-	lock_sock(ssk);
+	mptcp_for_each_subflow(msk, subflow) {
+		if (READ_ONCE(subflow->scheduled)) {
+			u16 copied = 0;
+
+			ssk = mptcp_subflow_tcp_sock(subflow);
+			if (!ssk)
+				goto reset_timer;
+
+			lock_sock(ssk);
+
+			/* limit retransmission to the bytes already sent on some subflows */
+			info.sent = 0;
+			info.limit = READ_ONCE(msk->csum_enabled) ? dfrag->data_len :
+								    dfrag->already_sent;
+			while (info.sent < info.limit) {
+				ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info);
+				if (ret <= 0)
+					break;
+
+				MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS);
+				copied += ret;
+				info.sent += ret;
+			}
+			if (copied) {
+				len = max(copied, len);
+				tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle,
+					 info.size_goal);
+				WRITE_ONCE(msk->allow_infinite_fallback, false);
+			}
 
-	/* limit retransmission to the bytes already sent on some subflows */
-	info.sent = 0;
-	info.limit = READ_ONCE(msk->csum_enabled) ? dfrag->data_len : dfrag->already_sent;
-	while (info.sent < info.limit) {
-		ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info);
-		if (ret <= 0)
-			break;
+			release_sock(ssk);
 
-		MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS);
-		copied += ret;
-		info.sent += ret;
-	}
-	if (copied) {
-		dfrag->already_sent = max(dfrag->already_sent, info.sent);
-		tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle,
-			 info.size_goal);
-		WRITE_ONCE(msk->allow_infinite_fallback, false);
+			msk->last_snd = ssk;
+			mptcp_subflow_set_scheduled(subflow, false);
+		}
 	}
-
-	release_sock(ssk);
+	dfrag->already_sent = max(dfrag->already_sent, len);
 
 reset_timer:
 	mptcp_check_and_set_pending(sk);
-- 
2.35.3


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

* [PATCH mptcp-next v10 4/5] selftests/bpf: Add bpf_red scheduler
  2022-06-30  8:50 [PATCH mptcp-next v10 0/5] BPF redundant scheduler Geliang Tang
                   ` (2 preceding siblings ...)
  2022-06-30  8:50 ` [PATCH mptcp-next v10 3/5] mptcp: redundant subflows retrans support Geliang Tang
@ 2022-06-30  8:50 ` Geliang Tang
  2022-06-30  8:50 ` [PATCH mptcp-next v10 5/5] selftests/bpf: Add bpf_red test Geliang Tang
  4 siblings, 0 replies; 11+ messages in thread
From: Geliang Tang @ 2022-06-30  8:50 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch implements the redundant BPF MPTCP scheduler, named bpf_red,
which sends all packets redundantly on all available subflows.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../selftests/bpf/progs/mptcp_bpf_red.c       | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c

diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c
new file mode 100644
index 000000000000..58f90473e495
--- /dev/null
+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2022, SUSE. */
+
+#include <linux/bpf.h>
+#include "bpf_tcp_helpers.h"
+
+char _license[] SEC("license") = "GPL";
+
+SEC("struct_ops/mptcp_sched_red_init")
+void BPF_PROG(mptcp_sched_red_init, const struct mptcp_sock *msk)
+{
+}
+
+SEC("struct_ops/mptcp_sched_red_release")
+void BPF_PROG(mptcp_sched_red_release, const struct mptcp_sock *msk)
+{
+}
+
+void BPF_STRUCT_OPS(bpf_red_get_subflow, const struct mptcp_sock *msk,
+		    struct mptcp_sched_data *data)
+{
+	for (int i = 0; i < MPTCP_SUBFLOWS_MAX; i++) {
+		if (!data->contexts[i])
+			break;
+
+		mptcp_subflow_set_scheduled(data->contexts[i], true);
+	}
+}
+
+SEC(".struct_ops")
+struct mptcp_sched_ops red = {
+	.init		= (void *)mptcp_sched_red_init,
+	.release	= (void *)mptcp_sched_red_release,
+	.get_subflow	= (void *)bpf_red_get_subflow,
+	.name		= "bpf_red",
+};
-- 
2.35.3


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

* [PATCH mptcp-next v10 5/5] selftests/bpf: Add bpf_red test
  2022-06-30  8:50 [PATCH mptcp-next v10 0/5] BPF redundant scheduler Geliang Tang
                   ` (3 preceding siblings ...)
  2022-06-30  8:50 ` [PATCH mptcp-next v10 4/5] selftests/bpf: Add bpf_red scheduler Geliang Tang
@ 2022-06-30  8:50 ` Geliang Tang
  2022-06-30 10:32   ` selftests/bpf: Add bpf_red test: Tests Results MPTCP CI
  4 siblings, 1 reply; 11+ messages in thread
From: Geliang Tang @ 2022-06-30  8:50 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch adds the redundant BPF MPTCP scheduler test: test_red(). Use
sysctl to set net.mptcp.scheduler to use this sched. Add two veth net
devices to simulate the multiple addresses case. Use 'ip mptcp endpoint'
command to add the new endpoint ADDR_2 to PM netlink. Send data and check
bytes_sent of 'ss' output after it to make sure the data has been
redundantly sent on both net devices.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/bpf/prog_tests/mptcp.c  | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index 647d313475bc..8426a5aba721 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -9,6 +9,7 @@
 #include "mptcp_bpf_first.skel.h"
 #include "mptcp_bpf_bkup.skel.h"
 #include "mptcp_bpf_rr.skel.h"
+#include "mptcp_bpf_red.skel.h"
 
 #ifndef TCP_CA_NAME_MAX
 #define TCP_CA_NAME_MAX	16
@@ -381,6 +382,37 @@ static void test_rr(void)
 	mptcp_bpf_rr__destroy(rr_skel);
 }
 
+static void test_red(void)
+{
+	struct mptcp_bpf_red *red_skel;
+	int server_fd, client_fd;
+	struct bpf_link *link;
+
+	red_skel = mptcp_bpf_red__open_and_load();
+	if (!ASSERT_OK_PTR(red_skel, "bpf_red__open_and_load"))
+		return;
+
+	link = bpf_map__attach_struct_ops(red_skel->maps.red);
+	if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) {
+		mptcp_bpf_red__destroy(red_skel);
+		return;
+	}
+
+	sched_init("subflow", "bpf_red");
+	server_fd = start_mptcp_server(AF_INET, ADDR_1, 0, 0);
+	client_fd = connect_to_fd(server_fd, 0);
+
+	send_data(server_fd, client_fd);
+	ASSERT_OK(has_bytes_sent(ADDR_1), "has_bytes_sent addr 1");
+	ASSERT_OK(has_bytes_sent(ADDR_2), "has_bytes_sent addr 2");
+
+	close(client_fd);
+	close(server_fd);
+	sched_cleanup();
+	bpf_link__destroy(link);
+	mptcp_bpf_red__destroy(red_skel);
+}
+
 void test_mptcp(void)
 {
 	if (test__start_subtest("base"))
@@ -391,4 +423,6 @@ void test_mptcp(void)
 		test_bkup();
 	if (test__start_subtest("rr"))
 		test_rr();
+	if (test__start_subtest("red"))
+		test_red();
 }
-- 
2.35.3


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

* Re: selftests/bpf: Add bpf_red test: Tests Results
  2022-06-30  8:50 ` [PATCH mptcp-next v10 5/5] selftests/bpf: Add bpf_red test Geliang Tang
@ 2022-06-30 10:32   ` MPTCP CI
  2022-06-30 12:34     ` Geliang Tang
  0 siblings, 1 reply; 11+ messages in thread
From: MPTCP CI @ 2022-06-30 10:32 UTC (permalink / raw)
  To: Geliang Tang; +Cc: mptcp

Hi Geliang,

Thank you for your modifications, that's great!

Our CI did some validations and here is its report:

- KVM Validation: normal:
  - Unstable: 1 failed test(s): selftest_simult_flows - Critical: 2 Call Trace(s) ❌:
  - Task: https://cirrus-ci.com/task/5934869556494336
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/5934869556494336/summary/summary.txt

- KVM Validation: debug:
  - Unstable: 1 failed test(s): selftest_mptcp_join - Critical: 2 Call Trace(s) ❌:
  - Task: https://cirrus-ci.com/task/5371919603073024
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/5371919603073024/summary/summary.txt

Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/012eddf81089


If there are some issues, you can reproduce them using the same environment as
the one used by the CI thanks to a docker image, e.g.:

    $ cd [kernel source code]
    $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
        --pull always mptcp/mptcp-upstream-virtme-docker:latest \
        auto-debug

For more details:

    https://github.com/multipath-tcp/mptcp-upstream-virtme-docker


Please note that despite all the efforts that have been already done to have a
stable tests suite when executed on a public CI like here, it is possible some
reported issues are not due to your modifications. Still, do not hesitate to
help us improve that ;-)

Cheers,
MPTCP GH Action bot
Bot operated by Matthieu Baerts (Tessares)

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

* Re: selftests/bpf: Add bpf_red test: Tests Results
  2022-06-30 10:32   ` selftests/bpf: Add bpf_red test: Tests Results MPTCP CI
@ 2022-06-30 12:34     ` Geliang Tang
  2022-07-01 19:16       ` Mat Martineau
  0 siblings, 1 reply; 11+ messages in thread
From: Geliang Tang @ 2022-06-30 12:34 UTC (permalink / raw)
  To: mptcp

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

On Thu, Jun 30, 2022 at 10:32:37AM +0000, MPTCP CI wrote:
> Hi Geliang,
> 
> Thank you for your modifications, that's great!
> 
> Our CI did some validations and here is its report:
> 
> - KVM Validation: normal:
>   - Unstable: 1 failed test(s): selftest_simult_flows - Critical: 2 Call Trace(s) ❌:
>   - Task: https://cirrus-ci.com/task/5934869556494336
>   - Summary: https://api.cirrus-ci.com/v1/artifact/task/5934869556494336/summary/summary.txt
> 
> - KVM Validation: debug:
>   - Unstable: 1 failed test(s): selftest_mptcp_join - Critical: 2 Call Trace(s) ❌:
>   - Task: https://cirrus-ci.com/task/5371919603073024
>   - Summary: https://api.cirrus-ci.com/v1/artifact/task/5371919603073024/summary/summary.txt
> 
> Initiator: Patchew Applier
> Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/012eddf81089
> 
> 
> If there are some issues, you can reproduce them using the same environment as
> the one used by the CI thanks to a docker image, e.g.:
> 
>     $ cd [kernel source code]
>     $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
>         --pull always mptcp/mptcp-upstream-virtme-docker:latest \
>         auto-debug
> 
> For more details:
> 
>     https://github.com/multipath-tcp/mptcp-upstream-virtme-docker
> 
> 
> Please note that despite all the efforts that have been already done to have a
> stable tests suite when executed on a public CI like here, it is possible some
> reported issues are not due to your modifications. Still, do not hesitate to
> help us improve that ;-)
> 
> Cheers,
> MPTCP GH Action bot
> Bot operated by Matthieu Baerts (Tessares)

Hi Matt,

I can't reproduce all the CI failures. All tests (mptcp_connect.sh,
mptcp_join.sh and bpf mptcp selftests) passed on my side.

All the test logs are attached.

Thanks,
-Geliang

[-- Attachment #2: v10-bpf-mptcp.log --]
[-- Type: text/plain, Size: 119962 bytes --]

repeat-log-14946

1

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

2

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

3

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

4

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

5

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

6

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

7

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

8

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

9

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

10

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

11

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

12

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

13

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

14

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

15

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

16

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

17

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

18

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

19

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

20

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

21

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

22

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

23

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

24

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

25

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

26

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

27

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

28

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

29

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

30

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

31

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

32

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

33

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

34

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

35

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

36

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

37

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

38

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

39

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

40

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

41

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

42

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

43

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

44

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

45

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

46

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

47

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

48

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

49

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

50

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

51

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

52

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

53

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

54

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

55

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

56

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

57

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

58

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

59

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

60

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

61

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

62

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

63

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

64

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

65

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

66

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

67

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

68

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

69

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

70

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

71

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

72

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

73

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

74

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

75

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

76

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

77

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

78

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

79

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

80

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

81

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

82

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

83

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

84

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

85

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

86

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

87

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

88

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

89

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

90

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

91

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

92

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

93

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

94

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

95

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

96

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

97

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

98

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

99

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

100

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

101

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

102

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

103

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

104

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

105

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

106

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

107

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

108

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

109

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

110

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

111

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

112

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

113

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

114

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

115

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

116

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

117

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

118

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

119

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

120

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

121

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

122

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

123

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

124

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

125

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

126

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

127

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

128

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

129

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

130

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

131

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

132

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

133

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

134

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

135

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

136

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

137

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

138

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

139

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

140

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

141

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

142

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

143

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

144

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

145

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

146

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

147

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

148

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

149

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

150

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

151

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

152

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

153

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

154

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

155

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

156

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

157

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

158

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

159

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

160

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

161

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

162

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

163

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

164

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

165

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

166

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

167

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

168

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

169

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

170

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

171

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

172

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

173

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

174

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

175

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

176

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

177

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

178

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

179

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

180

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

181

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

182

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

183

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

184

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

185

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

186

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

187

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

188

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

189

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

190

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

191

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

192

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

193

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

194

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

195

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

196

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

197

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

198

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

199

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

200

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

201

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

202

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

203

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

204

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

205

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

206

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

207

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

208

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

209

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

210

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

211

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

212

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

213

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

214

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

215

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

216

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

217

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

218

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

219

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

220

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

221

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

222

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

223

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

224

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

225

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

226

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

227

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

228

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

229

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

230

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

231

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

232

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

233

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

234

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

235

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

236

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

237

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

238

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

239

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

240

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

241

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

242

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

243

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

244

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

245

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

246

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

247

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

248

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

249

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

250

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

251

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

252

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

253

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

254

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

255

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

256

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

257

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

258

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

259

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

260

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

261

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

262

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

263

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

264

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

265

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

266

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

267

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

268

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

269

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

270

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

271

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

272

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

273

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

274

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

275

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

276

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

277

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

278

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

279

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

280

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

281

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

282

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

283

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

284

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

285

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

286

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

287

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

288

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

289

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

290

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

291

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

292

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

293

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

294

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

295

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

296

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

297

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

298

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

299

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

300

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

301

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

302

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

303

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

304

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

305

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

306

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

307

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

308

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

309

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

310

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

311

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

312

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

313

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

314

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

315

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

316

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

317

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

318

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

319

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

320

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

321

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

322

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

323

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

324

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

325

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

326

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

327

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

328

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

329

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

330

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

331

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

332

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

333

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

334

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

335

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

336

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

337

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

338

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

339

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

340

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

341

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

342

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

343

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

344

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

345

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

346

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

347

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

348

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

349

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

350

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

351

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

352

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

353

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

354

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

355

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

356

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

357

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

358

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

359

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

360

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

361

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

362

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

363

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

364

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

365

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

366

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

367

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

368

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

369

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

370

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

371

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

372

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

373

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

374

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

375

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

376

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

377

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

378

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

379

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

380

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

381

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

382

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

383

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

384

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

385

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

386

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

387

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

388

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

389

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

390

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

391

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

392

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

393

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

394

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

395

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

396

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

397

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

398

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

399

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

400

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

401

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

402

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

403

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

404

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

405

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

406

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

407

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

408

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

409

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

410

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

411

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

412

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

413

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

414

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

415

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

416

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

417

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

418

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

419

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

420

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

421

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

422

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

423

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

424

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

425

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

426

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

427

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

428

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

429

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

430

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

431

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

432

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

433

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

434

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

435

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

436

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

437

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

438

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

439

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

440

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

441

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

442

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

443

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

444

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

445

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

446

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

447

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

448

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

449

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

450

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

451

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

452

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

453

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

454

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

455

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

456

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

457

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

458

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

459

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

460

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

461

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

462

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

463

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

464

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

465

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

466

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

467

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

468

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

469

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

470

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

471

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

472

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

473

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

474

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

475

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

476

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

477

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

478

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

479

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

480

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

481

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

482

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

483

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

484

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

485

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

486

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

487

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

488

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

489

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

490

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

491

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

492

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

493

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

494

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

495

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

496

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

497

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

498

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

499

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

500

#108/1   mptcp/base:OK
#108/2   mptcp/first:OK
#108/3   mptcp/bkup:OK
#108/4   mptcp/rr:OK
#108/5   mptcp/red:OK
#108/6   mptcp/pm:OK
#108     mptcp:OK
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED

0 / 500 tests failed

repeat-log-14946
test fail:
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
Summary: 1/6 PASSED, 0 SKIPPED, 0 FAILED
0

[-- Attachment #3: v10-mptcp_connect.log --]
[-- Type: text/plain, Size: 5127 bytes --]

INFO: set ns3-62bd897e-c3sH4M dev ns3eth2: ethtool -K  gso off gro off
INFO: set ns4-62bd897e-c3sH4M dev ns4eth3: ethtool -K tso off gso off
Created /tmp/tmp.wlBe9oDXFo (size 2957340	/tmp/tmp.wlBe9oDXFo) containing data sent by client
Created /tmp/tmp.Qt4MBidI7V (size 3046428	/tmp/tmp.Qt4MBidI7V) containing data sent by server
New MPTCP socket can be blocked via sysctl		[ OK ]
INFO: validating network environment with pings
INFO: Using loss of 0.89% delay 3 ms on ns3eth4
ns1 MPTCP -> ns1 (10.0.1.1:10000      ) MPTCP	(duration   112ms) [ OK ]
ns1 MPTCP -> ns1 (10.0.1.1:10001      ) TCP  	(duration    25ms) [ OK ]
ns1 TCP   -> ns1 (10.0.1.1:10002      ) MPTCP	(duration    13ms) [ OK ]
ns1 MPTCP -> ns1 (dead:beef:1::1:10003) MPTCP	(duration    85ms) [ OK ]
ns1 MPTCP -> ns1 (dead:beef:1::1:10004) TCP  	(duration    25ms) [ OK ]
ns1 TCP   -> ns1 (dead:beef:1::1:10005) MPTCP	(duration    16ms) [ OK ]
ns1 MPTCP -> ns2 (10.0.1.2:10006      ) MPTCP	(duration   104ms) [ OK ]
ns1 MPTCP -> ns2 (dead:beef:1::2:10007) MPTCP	(duration    65ms) [ OK ]
ns1 MPTCP -> ns2 (10.0.2.1:10008      ) MPTCP	(duration    55ms) [ OK ]
ns1 MPTCP -> ns2 (dead:beef:2::1:10009) MPTCP	(duration    62ms) [ OK ]
ns1 MPTCP -> ns3 (10.0.2.2:10010      ) MPTCP	(duration   147ms) [ OK ]
ns1 MPTCP -> ns3 (dead:beef:2::2:10011) MPTCP	(duration    59ms) [ OK ]
ns1 MPTCP -> ns3 (10.0.3.2:10012      ) MPTCP	(duration    76ms) [ OK ]
ns1 MPTCP -> ns3 (dead:beef:3::2:10013) MPTCP	(duration    95ms) [ OK ]
ns1 MPTCP -> ns4 (10.0.3.1:10014      ) MPTCP	(duration   425ms) [ OK ]
ns1 MPTCP -> ns4 (dead:beef:3::1:10015) MPTCP	(duration    98ms) [ OK ]
ns2 MPTCP -> ns1 (10.0.1.1:10016      ) MPTCP	(duration    54ms) [ OK ]
ns2 MPTCP -> ns1 (dead:beef:1::1:10017) MPTCP	(duration    68ms) [ OK ]
ns2 MPTCP -> ns3 (10.0.2.2:10018      ) MPTCP	(duration    56ms) [ OK ]
ns2 MPTCP -> ns3 (dead:beef:2::2:10019) MPTCP	(duration    77ms) [ OK ]
ns2 MPTCP -> ns3 (10.0.3.2:10020      ) MPTCP	(duration    69ms) [ OK ]
ns2 MPTCP -> ns3 (dead:beef:3::2:10021) MPTCP	(duration    57ms) [ OK ]
ns2 MPTCP -> ns4 (10.0.3.1:10022      ) MPTCP	(duration    87ms) [ OK ]
ns2 MPTCP -> ns4 (dead:beef:3::1:10023) MPTCP	(duration    88ms) [ OK ]
ns3 MPTCP -> ns1 (10.0.1.1:10024      ) MPTCP	(duration   102ms) [ OK ]
ns3 MPTCP -> ns1 (dead:beef:1::1:10025) MPTCP	(duration    91ms) [ OK ]
ns3 MPTCP -> ns2 (10.0.1.2:10026      ) MPTCP	(duration    95ms) [ OK ]
ns3 MPTCP -> ns2 (dead:beef:1::2:10027) MPTCP	(duration    61ms) [ OK ]
ns3 MPTCP -> ns2 (10.0.2.1:10028      ) MPTCP	(duration   105ms) [ OK ]
ns3 MPTCP -> ns2 (dead:beef:2::1:10029) MPTCP	(duration   170ms) [ OK ]
ns3 MPTCP -> ns4 (10.0.3.1:10030      ) MPTCP	(duration   113ms) [ OK ]
ns3 MPTCP -> ns4 (dead:beef:3::1:10031) MPTCP	(duration   103ms) [ OK ]
ns4 MPTCP -> ns1 (10.0.1.1:10032      ) MPTCP	(duration    93ms) [ OK ]
ns4 MPTCP -> ns1 (dead:beef:1::1:10033) MPTCP	(duration   316ms) [ OK ]
ns4 MPTCP -> ns2 (10.0.1.2:10034      ) MPTCP	(duration   118ms) [ OK ]
ns4 MPTCP -> ns2 (dead:beef:1::2:10035) MPTCP	(duration   140ms) [ OK ]
ns4 MPTCP -> ns2 (10.0.2.1:10036      ) MPTCP	(duration   107ms) [ OK ]
ns4 MPTCP -> ns2 (dead:beef:2::1:10037) MPTCP	(duration    85ms) [ OK ]
ns4 MPTCP -> ns3 (10.0.2.2:10038      ) MPTCP	(duration    69ms) [ OK ]
ns4 MPTCP -> ns3 (dead:beef:2::2:10039) MPTCP	(duration    69ms) [ OK ]
ns4 MPTCP -> ns3 (10.0.3.2:10040      ) MPTCP	(duration    87ms) [ OK ]
ns4 MPTCP -> ns3 (dead:beef:3::2:10041) MPTCP	(duration   111ms) [ OK ]
INFO: with peek mode: saveWithPeek
ns1 MPTCP -> ns1 (10.0.1.1:10042      ) MPTCP	(duration    84ms) [ OK ]
ns1 MPTCP -> ns1 (10.0.1.1:10043      ) TCP  	(duration    30ms) [ OK ]
ns1 TCP   -> ns1 (10.0.1.1:10044      ) MPTCP	(duration    17ms) [ OK ]
ns1 MPTCP -> ns1 (dead:beef:1::1:10045) MPTCP	(duration    81ms) [ OK ]
ns1 MPTCP -> ns1 (dead:beef:1::1:10046) TCP  	(duration    27ms) [ OK ]
ns1 TCP   -> ns1 (dead:beef:1::1:10047) MPTCP	(duration    13ms) [ OK ]
INFO: with peek mode: saveAfterPeek
ns1 MPTCP -> ns1 (10.0.1.1:10048      ) MPTCP	(duration    80ms) [ OK ]
ns1 MPTCP -> ns1 (10.0.1.1:10049      ) TCP  	(duration    32ms) [ OK ]
ns1 TCP   -> ns1 (10.0.1.1:10050      ) MPTCP	(duration    14ms) [ OK ]
ns1 MPTCP -> ns1 (dead:beef:1::1:10051) MPTCP	(duration    84ms) [ OK ]
ns1 MPTCP -> ns1 (dead:beef:1::1:10052) TCP  	(duration    26ms) [ OK ]
ns1 TCP   -> ns1 (dead:beef:1::1:10053) MPTCP	(duration    12ms) [ OK ]
INFO: test tproxy ipv4
ns1 MPTCP -> ns2 (10.0.3.1:20000      ) MPTCP	(duration    70ms) [ OK ]
PASS: tproxy ipv4
INFO: test tproxy ipv6
ns1 MPTCP -> ns2 (dead:beef:3::1:20000) MPTCP	(duration    85ms) [ OK ]
PASS: tproxy ipv6
INFO: disconnect
ns1 MPTCP -> ns1 (10.0.1.1:20001      ) MPTCP	(duration   258ms) [ OK ]
ns1 MPTCP -> ns1 (10.0.1.1:20002      ) TCP  	(duration    69ms) [ OK ]
ns1 TCP   -> ns1 (10.0.1.1:20003      ) MPTCP	(duration    28ms) [ OK ]
ns1 MPTCP -> ns1 (dead:beef:1::1:20004) MPTCP	(duration   238ms) [ OK ]
ns1 MPTCP -> ns1 (dead:beef:1::1:20005) TCP  	(duration    74ms) [ OK ]
ns1 TCP   -> ns1 (dead:beef:1::1:20006) MPTCP	(duration    28ms) [ OK ]
Time: 14 seconds

[-- Attachment #4: v10-mptcp_join.log --]
[-- Type: text/plain, Size: 18294 bytes --]

Created /tmp/tmp.VWcVs1rxSR (size 1 KB) containing data sent by client
Created /tmp/tmp.tgMn0I4iCT (size 1 KB) containing data sent by server
001 no JOIN                              syn[ ok ] - synack[ ok ] - ack[ ok ]
002 single subflow, limited by client    syn[ ok ] - synack[ ok ] - ack[ ok ]
003 single subflow, limited by server    syn[ ok ] - synack[ ok ] - ack[ ok ]
004 single subflow                       syn[ ok ] - synack[ ok ] - ack[ ok ]
005 multiple subflows                    syn[ ok ] - synack[ ok ] - ack[ ok ]
006 multiple subflows, limited by server syn[ ok ] - synack[ ok ] - ack[ ok ]
007 single subflow, dev                  syn[ ok ] - synack[ ok ] - ack[ ok ]
008 no MPC reuse with single endpoint    syn[ ok ] - synack[ ok ] - ack[ ok ]
009 multi subflows, with failing subflow syn[ ok ] - synack[ ok ] - ack[ ok ]
010 multi subflows, with subflow timeout syn[ ok ] - synack[ ok ] - ack[ ok ]
011 multi subflows, fair usage on close  syn[ ok ] - synack[ ok ] - ack[ ok ]
012 unused signal address                syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
013 signal address                       syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
014 subflow and signal                   syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
015 multiple subflows and signal         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
016 signal addresses                     syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
017 signal invalid addresses             syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
018 signal addresses race test           syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
Created /tmp/tmp.PGjlLu8MP7 (size 21704 KB) containing data sent by client
019 multiple flows, signal, link failure syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         stale             [ ok ]
Created /tmp/tmp.EgiiPVQHVE (size 2048 KB) containing data sent by server
020 multi flows, signal, bidi, link fail syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         stale             [ ok ]
021 backup subflow unused, link failure  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         link usage        [ ok ]
022 backup flow used, multi links fail   syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         stale             [ ok ]
                                         link usage        [ ok ]
023 backup flow used, bidi, link failure syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         stale             [ ok ]
                                         link usage        [ ok ]
024 signal address, ADD_ADDR timeout     syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
025 signal address, ADD_ADDR6 timeout    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
026 signal addresses, ADD_ADDR timeout   syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
027 invalid address, ADD_ADDR timeout    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
028 remove single subflow                syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
029 remove multiple subflows             syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
030 remove single address                syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]   invert
031 remove subflow and signal            syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
032 remove subflows and signal           syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
033 remove addresses                     syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]   invert
034 remove invalid addresses             syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]   invert
035 flush subflows and signal            syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ] 
036 flush subflows                       syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         rm [ ok ] - rmsf  [ ok ] 
037 flush addresses                      syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ] 
038 flush invalid addresses              syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]   invert
039 remove id 0 subflow                  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
040 remove id 0 address                  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]   invert
041 add single subflow                   syn[ ok ] - synack[ ok ] - ack[ ok ]
042 add signal address                   syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
043 add multiple subflows                syn[ ok ] - synack[ ok ] - ack[ ok ]
044 add multiple subflows IPv6           syn[ ok ] - synack[ ok ] - ack[ ok ]
045 add multiple addresses IPv6          syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
046 single subflow IPv6                  syn[ ok ] - synack[ ok ] - ack[ ok ]
047 unused signal address IPv6           syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
048 single address IPv6                  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
049 remove single address IPv6           syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]   invert
050 remove subflow and signal IPv6       syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
051 single subflow IPv4-mapped           syn[ ok ] - synack[ ok ] - ack[ ok ]
052 signal address IPv4-mapped           syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
053 single subflow v4-map-v6             syn[ ok ] - synack[ ok ] - ack[ ok ]
054 signal address v4-map-v6             syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
055 single subflow v6-map-v4             syn[ ok ] - synack[ ok ] - ack[ ok ]
056 signal address v6-map-v4             syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
057 no JOIN with diff families v4-v6     syn[ ok ] - synack[ ok ] - ack[ ok ]
058 no JOIN with diff families v4-v6-2   syn[ ok ] - synack[ ok ] - ack[ ok ]
059 no JOIN with diff families v6-v4     syn[ ok ] - synack[ ok ] - ack[ ok ]
060 single subflow, backup               syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         ptx[ ok ] - prx   [ ok ]
061 single address, backup               syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         ptx[ ok ] - prx   [ ok ]
062 single address with port, backup     syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         ptx[ ok ] - prx   [ ok ]
063 signal address with port             syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ] - pt [ ok ]
                                         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         syn[ ok ] - ack   [ ok ]
064 subflow and signal with port         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ] - pt [ ok ]
                                         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         syn[ ok ] - ack   [ ok ]
065 remove single address with port      syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ] - pt [ ok ]
                                         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         syn[ ok ] - ack   [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]   invert
066 remove subflow and signal with port  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ] - pt [ ok ]
                                         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         syn[ ok ] - ack   [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
067 flush subflows and signal with port  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ] 
068 multiple addresses with port         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ] - pt [ ok ]
                                         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         syn[ ok ] - ack   [ ok ]
069 multiple addresses with ports        syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ] - pt [ ok ]
                                         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         syn[ ok ] - ack   [ ok ]
070 single subflow with syn cookies      syn[ ok ] - synack[ ok ] - ack[ ok ]
071 multiple subflows with syn cookies   syn[ ok ] - synack[ ok ] - ack[ ok ]
072 subflows limited by server w cookies syn[ ok ] - synack[ ok ] - ack[ ok ]
073 signal address with syn cookies      syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
074 subflow and signal w cookies         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
075 subflows and signal w. cookies       syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
076 checksum test 0 0                    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         sum[ ok ] - csum  [ ok ]
                                         ftx[ ok ] - failrx[ ok ]
                                         rtx[ ok ] - rstrx [ ok ]
                                         itx[ ok ] - infirx[ ok ]
077 checksum test 1 1                    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         sum[ ok ] - csum  [ ok ]
                                         ftx[ ok ] - failrx[ ok ]
                                         rtx[ ok ] - rstrx [ ok ]
                                         itx[ ok ] - infirx[ ok ]
078 checksum test 0 1                    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         sum[ ok ] - csum  [ ok ]
                                         ftx[ ok ] - failrx[ ok ]
                                         rtx[ ok ] - rstrx [ ok ]
                                         itx[ ok ] - infirx[ ok ]
079 checksum test 1 0                    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         sum[ ok ] - csum  [ ok ]
                                         ftx[ ok ] - failrx[ ok ]
                                         rtx[ ok ] - rstrx [ ok ]
                                         itx[ ok ] - infirx[ ok ]
080 single subflow allow join id0 ns1    syn[ ok ] - synack[ ok ] - ack[ ok ]
081 single subflow allow join id0 ns2    syn[ ok ] - synack[ ok ] - ack[ ok ]
082 signal address allow join id0 ns1    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
083 signal address allow join id0 ns2    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
084 subflow and address allow join id0 1 syn[ ok ] - synack[ ok ] - ack[ ok ]
085 subflow and address allow join id0 2 syn[ ok ] - synack[ ok ] - ack[ ok ]
086 fullmesh test 2x1                    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
087 fullmesh test 1x1                    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
088 fullmesh test 1x2                    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
089 fullmesh test 1x2, limited           syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
090 set fullmesh flag test               syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
091 set nofullmesh flag test             syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
092 set backup,fullmesh flags test       syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         ptx[ ok ] - prx   [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
093 set nobackup,nofullmesh flags test   syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         ptx[ ok ] - prx   [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
Created /tmp/tmp.PGjlLu8MP7 (size 1024 KB) containing data sent by client
Created /tmp/tmp.EgiiPVQHVE (size 1024 KB) containing data sent by server
094 fastclose test                       syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         ctx[ ok ] - fclzrx[ ok ]
                                         rtx[ ok ] - rstrx [ ok ]   invert
Created /tmp/tmp.PGjlLu8MP7 (size 128 KB) containing data sent by client
Created /tmp/tmp.EgiiPVQHVE (size 128 KB) containing data sent by server
file received by server has inverted byte at 169
095 Infinite map: 5 corrupted pkts       syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         sum[ ok ] - csum  [ ok ]
                                         ftx[ ok ] - failrx[ ok ]
                                         rtx[ ok ] - rstrx [ ok ]
                                         itx[ ok ] - infirx[ ok ]
                                         ftx[ ok ] - failrx[ ok ] invert
Created /tmp/tmp.PGjlLu8MP7 (size 1024 KB) containing data sent by client
Created /tmp/tmp.EgiiPVQHVE (size 1024 KB) containing data sent by server
096 MP_FAIL MP_RST: 1 corrupted pkts     syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         sum[ ok ] - csum  [ ok ]
                                         ftx[ ok ] - failrx[ ok ]
                                         rtx[ ok ] - rstrx [ ok ]
                                         itx[ ok ] - infirx[ ok ]
097 userspace pm type prevents add_addr  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
098 userspace pm no echo w/o daemon      syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
099 userspace pm type rejects join       syn[ ok ] - synack[ ok ] - ack[ ok ]
100 userspace pm type does not send join syn[ ok ] - synack[ ok ] - ack[ ok ]
101 userspace pm type prevents mp_prio   syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         ptx[ ok ] - prx   [ ok ]
102 userspace pm type prevents rm_addr   syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
103 userspace pm add & remove address    syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         add[ ok ] - echo  [ ok ]
                                         rm [ ok ] - rmsf  [ ok ]   invert
104 userspace pm create destroy subflow  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                         rm [ ok ] - rmsf  [ ok ]
105 implicit EP                          creation[ ok ]
                                         ID change is prevented[ ok ]
                                         modif is allowed[ ok ]
Created /tmp/tmp.PGjlLu8MP7 (size 4 KB) containing data sent by client
Created /tmp/tmp.EgiiPVQHVE (size 4 KB) containing data sent by server
106 delete and re-add                    after delete[ ok ]
                                         after re-add[ ok ]

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

* Re: selftests/bpf: Add bpf_red test: Tests Results
  2022-06-30 12:34     ` Geliang Tang
@ 2022-07-01 19:16       ` Mat Martineau
  2022-07-01 21:05         ` Mat Martineau
  0 siblings, 1 reply; 11+ messages in thread
From: Mat Martineau @ 2022-07-01 19:16 UTC (permalink / raw)
  To: Geliang Tang; +Cc: mptcp

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

On Thu, 30 Jun 2022, Geliang Tang wrote:

> On Thu, Jun 30, 2022 at 10:32:37AM +0000, MPTCP CI wrote:
>> Hi Geliang,
>>
>> Thank you for your modifications, that's great!
>>
>> Our CI did some validations and here is its report:
>>
>> - KVM Validation: normal:
>>   - Unstable: 1 failed test(s): selftest_simult_flows - Critical: 2 Call Trace(s) ❌:
>>   - Task: https://cirrus-ci.com/task/5934869556494336
>>   - Summary: https://api.cirrus-ci.com/v1/artifact/task/5934869556494336/summary/summary.txt
>>
>> - KVM Validation: debug:
>>   - Unstable: 1 failed test(s): selftest_mptcp_join - Critical: 2 Call Trace(s) ❌:
>>   - Task: https://cirrus-ci.com/task/5371919603073024
>>   - Summary: https://api.cirrus-ci.com/v1/artifact/task/5371919603073024/summary/summary.txt
>>
>> Initiator: Patchew Applier
>> Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/012eddf81089
>>
>>
>> If there are some issues, you can reproduce them using the same environment as
>> the one used by the CI thanks to a docker image, e.g.:
>>
>>     $ cd [kernel source code]
>>     $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
>>         --pull always mptcp/mptcp-upstream-virtme-docker:latest \
>>         auto-debug
>>
>> For more details:
>>
>>     https://github.com/multipath-tcp/mptcp-upstream-virtme-docker
>>
>>
>> Please note that despite all the efforts that have been already done to have a
>> stable tests suite when executed on a public CI like here, it is possible some
>> reported issues are not due to your modifications. Still, do not hesitate to
>> help us improve that ;-)
>>
>> Cheers,
>> MPTCP GH Action bot
>> Bot operated by Matthieu Baerts (Tessares)
>
> Hi Matt,
>
> I can't reproduce all the CI failures. All tests (mptcp_connect.sh,
> mptcp_join.sh and bpf mptcp selftests) passed on my side.
>
> All the test logs are attached.

I checked out the tag that the CI built from 
(patchew/cover.1656578856.git.geliang.tang@suse.com), and it looks like 
the CI hit this:

if (WARN_ON_ONCE(!msk->recovery))

at line 999 of protocol.c, so this is an unexpected instance where dfrag 
== msk->first_pending and msk->recovery is not set. My guess is that 
msk->first_pending is not getting updated before returning from 
__mptcp_push_pending() in some rare case. I'll look for this when 
reviewing patch 2.



--
Mat Martineau
Intel

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

* Re: [PATCH mptcp-next v10 2/5] mptcp: redundant subflows push pending
  2022-06-30  8:50 ` [PATCH mptcp-next v10 2/5] mptcp: redundant subflows push pending Geliang Tang
@ 2022-07-01 21:01   ` Mat Martineau
  0 siblings, 0 replies; 11+ messages in thread
From: Mat Martineau @ 2022-07-01 21:01 UTC (permalink / raw)
  To: Geliang Tang; +Cc: mptcp

On Thu, 30 Jun 2022, Geliang Tang wrote:

> This patch adds the redundant subflows support for __mptcp_push_pending().
> Use mptcp_sched_get_send() wrapper instead of mptcp_subflow_get_send()
> in it.
>
> Check the subflow scheduled flags to test which subflow or subflows are
> picked by the scheduler, use them to send data.
>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> net/mptcp/protocol.c | 96 ++++++++++++++++++++++++++------------------
> net/mptcp/protocol.h | 10 +++++
> 2 files changed, 66 insertions(+), 40 deletions(-)
>
> diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
> index 6e44786e01fd..f97e6c318c0b 100644
> --- a/net/mptcp/protocol.c
> +++ b/net/mptcp/protocol.c
> @@ -1516,57 +1516,73 @@ void mptcp_check_and_set_pending(struct sock *sk)
>
> void __mptcp_push_pending(struct sock *sk, unsigned int flags)
> {
> -	struct sock *prev_ssk = NULL, *ssk = NULL;
> 	struct mptcp_sock *msk = mptcp_sk(sk);
> -	struct mptcp_sendmsg_info info = {
> -				.flags = flags,
> -	};
> -	struct mptcp_data_frag *dfrag;
> +	struct mptcp_subflow_context *subflow;
> 	int len, copied = 0;
>
> -	while ((dfrag = mptcp_send_head(sk))) {
> -		info.sent = dfrag->already_sent;
> -		info.limit = dfrag->data_len;
> -		len = dfrag->data_len - dfrag->already_sent;
> -		while (len > 0) {
> -			int ret = 0;
> +	if (!mptcp_sched_get_send(msk))
> +		goto out;
>
> -			prev_ssk = ssk;
> -			ssk = mptcp_subflow_get_send(msk);
> +	mptcp_for_each_subflow(msk, subflow) {
> +		if (READ_ONCE(subflow->scheduled)) {
> +			struct sock *prev_ssk = NULL, *ssk = NULL;
> +			struct mptcp_sendmsg_info info = {
> +				.flags = flags,
> +			};
> +			struct mptcp_data_frag *dfrag;
>
> -			/* First check. If the ssk has changed since
> -			 * the last round, release prev_ssk
> -			 */
> -			if (ssk != prev_ssk && prev_ssk)
> -				mptcp_push_release(prev_ssk, &info);
> -			if (!ssk)
> +			dfrag = mptcp_send_head(sk);
> +			if (!dfrag)
> 				goto out;
>
> -			/* Need to lock the new subflow only if different
> -			 * from the previous one, otherwise we are still
> -			 * helding the relevant lock
> -			 */
> -			if (ssk != prev_ssk)
> -				lock_sock(ssk);
> -
> -			ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info);
> -			if (ret <= 0) {
> +			do {
> +				info.sent = dfrag->already_sent;
> +				info.limit = dfrag->data_len;
> +				len = dfrag->data_len - dfrag->already_sent;
> +				while (len > 0) {
> +					int ret = 0;
> +
> +					prev_ssk = ssk;
> +					ssk = mptcp_subflow_tcp_sock(subflow);

prev_ssk isn't needed any more. The old code could return different ssks 
from each scheduler call, but now the ssk is the same for each iteration 
of the mptcp_for_each_subflow() loop. The locking can be simplified to 
lock the ssk before the do-while loop, and to always call 
mptcp_push_release() after the do-while loop is done.

> +
> +					/* First check. If the ssk has changed since
> +					 * the last round, release prev_ssk
> +					 */
> +					if (ssk != prev_ssk && prev_ssk)
> +						mptcp_push_release(prev_ssk, &info);
> +					if (!ssk)

This check is no longer needed, mptcp_subflow_tcp_sock() won't be 
returning NULL.

> +						goto out;
> +
> +					/* Need to lock the new subflow only if different
> +					 * from the previous one, otherwise we are still
> +					 * helding the relevant lock
> +					 */
> +					if (ssk != prev_ssk)
> +						lock_sock(ssk);
> +
> +					ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info);
> +					if (ret <= 0) {
> +						mptcp_push_release(ssk, &info);
> +						goto out;
> +					}
> +
> +					info.sent += ret;
> +					copied += ret;

Since 'copied' is only used below to determine if 
__mptcp_check_send_data_fin() should be called, I think it would be 
clearer to use a bool variable do something like this:

if (ret > 0)
 	do_check_data_fin = true;

instead. 'copied' can be removed.

> +					len -= ret;
> +
> +					mptcp_update_post_push(msk, dfrag, ret);

This modifies dfrag->already_sent and msk->snd_nxt, which will interfere 
with sending data on the next subflow. All the dfrag modifications need to 
be made _after_ the mptcp_for_each_subflow() loop is done (right before 
the "out:" label).

Store a pointer to the last dfrag that was used, and how many bytes were 
sent from it (last_dfrag and last_sent?).

> +				}
> +			} while ((dfrag = mptcp_next_frag(sk, dfrag)));
> +
> +			/* at this point we held the socket lock for the last subflow we used */
> +			if (ssk) {

Like I mentioned above, this conditional is no longer needed.

> 				mptcp_push_release(ssk, &info);
> -				goto out;
> +				msk->last_snd = ssk;
> +				mptcp_subflow_set_scheduled(subflow, false);
> 			}
> -
> -			info.sent += ret;
> -			copied += ret;
> -			len -= ret;
> -
> -			mptcp_update_post_push(msk, dfrag, ret);
> 		}
> -		WRITE_ONCE(msk->first_pending, mptcp_send_next(sk));
> 	}
> -
> -	/* at this point we held the socket lock for the last subflow we used */
> -	if (ssk)
> -		mptcp_push_release(ssk, &info);

Here (before updating msk->first_pending) is the place to update the dfrag 
list. Walk the list from mptcp_send_head() to last_dfrag. All of the 
dfrags before last_dfrag need to assign dfrag->already_sent = 
dfrag->data_len (because they were fully sent). For last_dfrag, call 
mptcp_update_post_push().

Also double-check that msk->snd_burst is updated correctly.

> +	WRITE_ONCE(msk->first_pending, NULL);

This shouldn't be NULL - needs to be mptcp_send_next() like the old code, 
which should work if the dfrag list is updated.

>
> out:
> 	/* ensure the rtx timer is running */
> diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
> index af414cd8b7cd..09a9797d2dfb 100644
> --- a/net/mptcp/protocol.h
> +++ b/net/mptcp/protocol.h
> @@ -355,6 +355,16 @@ static inline struct mptcp_data_frag *mptcp_send_next(struct sock *sk)
> 						     list_next_entry(cur, list);
> }
>
> +static inline struct mptcp_data_frag *mptcp_next_frag(struct sock *sk,
> +						      struct mptcp_data_frag *cur)
> +{
> +	if (!cur)
> +		return NULL;
> +
> +	return list_is_last(&cur->list, &mptcp_sk(sk)->rtx_queue) ? NULL :
> +						     list_next_entry(cur, list);
> +}
> +
> static inline struct mptcp_data_frag *mptcp_pending_tail(const struct sock *sk)
> {
> 	struct mptcp_sock *msk = mptcp_sk(sk);
> -- 
> 2.35.3
>
>
>

--
Mat Martineau
Intel

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

* Re: selftests/bpf: Add bpf_red test: Tests Results
  2022-07-01 19:16       ` Mat Martineau
@ 2022-07-01 21:05         ` Mat Martineau
  0 siblings, 0 replies; 11+ messages in thread
From: Mat Martineau @ 2022-07-01 21:05 UTC (permalink / raw)
  To: Geliang Tang; +Cc: mptcp

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

On Fri, 1 Jul 2022, Mat Martineau wrote:

> On Thu, 30 Jun 2022, Geliang Tang wrote:
>
>> On Thu, Jun 30, 2022 at 10:32:37AM +0000, MPTCP CI wrote:
>>> Hi Geliang,
>>> 
>>> Thank you for your modifications, that's great!
>>> 
>>> Our CI did some validations and here is its report:
>>> 
>>> - KVM Validation: normal:
>>>   - Unstable: 1 failed test(s): selftest_simult_flows - Critical: 2 Call 
>>> Trace(s) ❌:
>>>   - Task: https://cirrus-ci.com/task/5934869556494336
>>>   - Summary: 
>>> https://api.cirrus-ci.com/v1/artifact/task/5934869556494336/summary/summary.txt
>>> 
>>> - KVM Validation: debug:
>>>   - Unstable: 1 failed test(s): selftest_mptcp_join - Critical: 2 Call 
>>> Trace(s) ❌:
>>>   - Task: https://cirrus-ci.com/task/5371919603073024
>>>   - Summary: 
>>> https://api.cirrus-ci.com/v1/artifact/task/5371919603073024/summary/summary.txt
>>> 
>>> Initiator: Patchew Applier
>>> Commits: 
>>> https://github.com/multipath-tcp/mptcp_net-next/commits/012eddf81089
>>> 
>>> 
>>> If there are some issues, you can reproduce them using the same 
>>> environment as
>>> the one used by the CI thanks to a docker image, e.g.:
>>>
>>>     $ cd [kernel source code]
>>>     $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
>>>         --pull always mptcp/mptcp-upstream-virtme-docker:latest \
>>>         auto-debug
>>> 
>>> For more details:
>>>
>>>     https://github.com/multipath-tcp/mptcp-upstream-virtme-docker
>>> 
>>> 
>>> Please note that despite all the efforts that have been already done to 
>>> have a
>>> stable tests suite when executed on a public CI like here, it is possible 
>>> some
>>> reported issues are not due to your modifications. Still, do not hesitate 
>>> to
>>> help us improve that ;-)
>>> 
>>> Cheers,
>>> MPTCP GH Action bot
>>> Bot operated by Matthieu Baerts (Tessares)
>> 
>> Hi Matt,
>> 
>> I can't reproduce all the CI failures. All tests (mptcp_connect.sh,
>> mptcp_join.sh and bpf mptcp selftests) passed on my side.
>> 
>> All the test logs are attached.
>
> I checked out the tag that the CI built from 
> (patchew/cover.1656578856.git.geliang.tang@suse.com), and it looks like the 
> CI hit this:
>
> if (WARN_ON_ONCE(!msk->recovery))
>
> at line 999 of protocol.c, so this is an unexpected instance where dfrag == 
> msk->first_pending and msk->recovery is not set. My guess is that 
> msk->first_pending is not getting updated before returning from 
> __mptcp_push_pending() in some rare case. I'll look for this when reviewing 
> patch 2.

I think this will probably be fixed by changing the dfrag updates as I 
describe in the patch 2 review comments.

--
Mat Martineau
Intel

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

end of thread, other threads:[~2022-07-01 21:05 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-30  8:50 [PATCH mptcp-next v10 0/5] BPF redundant scheduler Geliang Tang
2022-06-30  8:50 ` [PATCH mptcp-next v10 1/5] Squash to "mptcp: add get_subflow wrappers" Geliang Tang
2022-06-30  8:50 ` [PATCH mptcp-next v10 2/5] mptcp: redundant subflows push pending Geliang Tang
2022-07-01 21:01   ` Mat Martineau
2022-06-30  8:50 ` [PATCH mptcp-next v10 3/5] mptcp: redundant subflows retrans support Geliang Tang
2022-06-30  8:50 ` [PATCH mptcp-next v10 4/5] selftests/bpf: Add bpf_red scheduler Geliang Tang
2022-06-30  8:50 ` [PATCH mptcp-next v10 5/5] selftests/bpf: Add bpf_red test Geliang Tang
2022-06-30 10:32   ` selftests/bpf: Add bpf_red test: Tests Results MPTCP CI
2022-06-30 12:34     ` Geliang Tang
2022-07-01 19:16       ` Mat Martineau
2022-07-01 21:05         ` Mat Martineau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).