* [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).