All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1
@ 2023-05-24  8:02 Geliang Tang
  2023-05-24  8:02 ` [PATCH mptcp-next v15 1/5] mptcp: only send RM_ADDR in nl_cmd_remove Geliang Tang
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Geliang Tang @ 2023-05-24  8:02 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

v15:
 - drop "mptcp: export remove_anno_list_by_saddr"
 - drop MPTCP_USER_PM_FLAG_RM_* flags
 - drop mptcp_pm_alloc_anno_list in mptcp_nl_cmd_sf_create.

v14:
 - drop mptcp_pm_remove_addrs helper in patch 1
 - add two flags in patch 4, the address entry'll be removed from
   userspace_pm_local_addr_list only when both flags are set, by doing this,
   it's now independent of the order of the remove_subflows command and
   the remove_addrs command.

v13:
 - move the RM_ADDR command after the destruction of the subflow in
   patch 2 and patch 5.
 - drop mptcp_pm_remove_anno_list_by_saddr in mptcp_nl_cmd_sf_destroy in
   patch 4.
 - update userspace_pm.sh too in patch 5.

v12:
 - address Matt's commits in v11.

v11:
 - #1-#5 part 1, address Matt's comments in v10.
 - #6-#9 part 2, update pm mptcp_info
 - #10-#12 part 3, some cleanups.

v10:
 - fix userspace_pm.sh errors reported by CI.
 - fix the bug in mptcp_pm_remove_addrs in patch 1.
 - drop msk->pm.subflow == 1 in mptcp_userspace_pm_delete_local_addr in
   patch 3.
 - exchange the order of "pm_nl_ctl rem" and "pm_nl_ctl dsf" in patch 2
   and 6.
 - update the commit logs.

v9:
 - address Matt's commets in v8.

v8:
 - address Matt's comments.
 - split into two series, pt 2 will send later.

v7:
 - fix userspace_pm.sh errors reported by CI.
 - only remove addrs in mptcp_nl_cmd_remove().

v6:
 - send a RM ADDR from userspace.

v5:
 - fix a memleak error reported by CI.
 - add more delay for userspace pm tests.

v4:
 - add more patches
 - add selftests

v3:
 - update local_addr_used and add_addr_signaled

v2:
 - hold pm locks

Geliang Tang (5):
  mptcp: only send RM_ADDR in nl_cmd_remove
  selftests: mptcp: update userspace pm addr tests
  mptcp: add address into userspace pm list
  selftests: mptcp: update userspace pm subflow tests
  mptcp: update userspace pm infos

 net/mptcp/pm.c                                | 23 +++++++--
 net/mptcp/pm_netlink.c                        | 18 +++++++
 net/mptcp/pm_userspace.c                      | 48 ++++++++++++++++++-
 net/mptcp/protocol.h                          |  1 +
 .../testing/selftests/net/mptcp/mptcp_join.sh | 11 ++++-
 5 files changed, 95 insertions(+), 6 deletions(-)

-- 
2.35.3


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

* [PATCH mptcp-next v15 1/5] mptcp: only send RM_ADDR in nl_cmd_remove
  2023-05-24  8:02 [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Geliang Tang
@ 2023-05-24  8:02 ` Geliang Tang
  2023-05-24  8:02 ` [PATCH mptcp-next v15 2/5] selftests: mptcp: update userspace pm addr tests Geliang Tang
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Geliang Tang @ 2023-05-24  8:02 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

The specifications from [1] about the "REMOVE" command say:

    Announce that an address has been lost to the peer

It was then only supposed to send a RM_ADDR and not trying to delete
associated subflows.

A new helper mptcp_pm_remove_addrs() is then introduced to do just
that, compared to mptcp_pm_remove_addrs_and_subflows() also removing
subflows.

To delete a subflow, the userspace daemon can use the "SUB_DESTROY"
command, see mptcp_nl_cmd_sf_destroy().

Fixes: d9a4594edabf ("mptcp: netlink: Add MPTCP_PM_CMD_REMOVE")
Link: https://github.com/multipath-tcp/mptcp/blob/mptcp_v0.96/include/uapi/linux/mptcp.h [1]
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/pm_netlink.c   | 18 ++++++++++++++++++
 net/mptcp/pm_userspace.c |  2 +-
 net/mptcp/protocol.h     |  1 +
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index e8336b8bd30e..ec892fb8d85f 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -1555,6 +1555,24 @@ static int mptcp_nl_cmd_del_addr(struct sk_buff *skb, struct genl_info *info)
 	return ret;
 }
 
+void mptcp_pm_remove_addrs(struct mptcp_sock *msk, struct list_head *rm_list)
+{
+	struct mptcp_rm_list alist = { .nr = 0 };
+	struct mptcp_pm_addr_entry *entry;
+
+	list_for_each_entry(entry, rm_list, list) {
+		remove_anno_list_by_saddr(msk, &entry->addr);
+		if (alist.nr < MPTCP_RM_IDS_MAX)
+			alist.ids[alist.nr++] = entry->addr.id;
+	}
+
+	if (alist.nr) {
+		spin_lock_bh(&msk->pm.lock);
+		mptcp_pm_remove_addr(msk, &alist);
+		spin_unlock_bh(&msk->pm.lock);
+	}
+}
+
 void mptcp_pm_remove_addrs_and_subflows(struct mptcp_sock *msk,
 					struct list_head *rm_list)
 {
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 27a275805c06..6beadea8c67d 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -232,7 +232,7 @@ int mptcp_nl_cmd_remove(struct sk_buff *skb, struct genl_info *info)
 
 	list_move(&match->list, &free_list);
 
-	mptcp_pm_remove_addrs_and_subflows(msk, &free_list);
+	mptcp_pm_remove_addrs(msk, &free_list);
 
 	release_sock((struct sock *)msk);
 
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index 1e8effe395d8..a4bc937baa91 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -844,6 +844,7 @@ int mptcp_pm_announce_addr(struct mptcp_sock *msk,
 			   bool echo);
 int mptcp_pm_remove_addr(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list);
 int mptcp_pm_remove_subflow(struct mptcp_sock *msk, const struct mptcp_rm_list *rm_list);
+void mptcp_pm_remove_addrs(struct mptcp_sock *msk, struct list_head *rm_list);
 void mptcp_pm_remove_addrs_and_subflows(struct mptcp_sock *msk,
 					struct list_head *rm_list);
 
-- 
2.35.3


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

* [PATCH mptcp-next v15 2/5] selftests: mptcp: update userspace pm addr tests
  2023-05-24  8:02 [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Geliang Tang
  2023-05-24  8:02 ` [PATCH mptcp-next v15 1/5] mptcp: only send RM_ADDR in nl_cmd_remove Geliang Tang
@ 2023-05-24  8:02 ` Geliang Tang
  2023-05-24  8:02 ` [PATCH mptcp-next v15 3/5] mptcp: add address into userspace pm list Geliang Tang
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Geliang Tang @ 2023-05-24  8:02 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch is linked to the previous commit ("mptcp: only send RM_ADDR in
nl_cmd_remove").

To align with what is done by the in-kernel PM, update userspace pm addr
selftests, by sending a remove_subflows command together after the
remove_addrs command.

Fixes: d9a4594edabf ("mptcp: netlink: Add MPTCP_PM_CMD_REMOVE")
Fixes: 97040cf9806e ("selftests: mptcp: userspace pm address tests")
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 0044d87556dd..a42745e60976 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -863,7 +863,15 @@ do_transfer()
 				     sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q')
 				ip netns exec ${listener_ns} ./pm_nl_ctl ann $addr token $tk id $id
 				sleep 1
+				sp=$(grep "type:10" "$evts_ns1" |
+				     sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q')
+				da=$(grep "type:10" "$evts_ns1" |
+				     sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q')
+				dp=$(grep "type:10" "$evts_ns1" |
+				     sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q')
 				ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id
+				ip netns exec ${listener_ns} ./pm_nl_ctl dsf lip "::ffff:$addr" \
+							lport $sp rip $da rport $dp token $tk
 			fi
 
 			counter=$((counter + 1))
-- 
2.35.3


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

* [PATCH mptcp-next v15 3/5] mptcp: add address into userspace pm list
  2023-05-24  8:02 [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Geliang Tang
  2023-05-24  8:02 ` [PATCH mptcp-next v15 1/5] mptcp: only send RM_ADDR in nl_cmd_remove Geliang Tang
  2023-05-24  8:02 ` [PATCH mptcp-next v15 2/5] selftests: mptcp: update userspace pm addr tests Geliang Tang
@ 2023-05-24  8:02 ` Geliang Tang
  2023-05-24  8:43   ` Geliang Tang
  2023-05-24 13:21   ` Matthieu Baerts
  2023-05-24  8:02 ` [PATCH mptcp-next v15 4/5] selftests: mptcp: update userspace pm subflow tests Geliang Tang
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 15+ messages in thread
From: Geliang Tang @ 2023-05-24  8:02 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

Add the address into userspace_pm_local_addr_list when the subflow is
created. Make sure it can be found in mptcp_nl_cmd_remove(). And delete
it in the new helper mptcp_userspace_pm_delete_local_addr().

Add address into pm anno_list in mptcp_nl_cmd_sf_create(). Remove
it when connecting fails.

By doing this, the "REMOVE" command also works with subflows that have
been created via the "SUB_CREATE" command instead of restricting to
the addresses that have been announced via the "ANNOUNCE" command.

Fixes: d9a4594edabf ("mptcp: netlink: Add MPTCP_PM_CMD_REMOVE")
Link: https://github.com/multipath-tcp/mptcp_net-next/issues/379
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/pm_userspace.c | 41 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 6beadea8c67d..114548b09f47 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -79,6 +79,30 @@ static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
 	return ret;
 }
 
+/* If the subflow is closed from the other peer (not via a
+ * subflow destroy command then), we want to keep the entry
+ * not to assign the same ID to another address and to be
+ * able to send RM_ADDR after the removal of the subflow.
+ */
+static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
+						struct mptcp_pm_addr_entry *addr)
+{
+	struct mptcp_pm_addr_entry *entry, *tmp;
+
+	list_for_each_entry_safe(entry, tmp, &msk->pm.userspace_pm_local_addr_list, list) {
+		if (mptcp_addresses_equal(&entry->addr, &addr->addr, false)) {
+			/* TODO: a refcount is needed because the entry can
+			 * be used multiple times (e.g. fullmesh mode).
+			 */
+			list_del_rcu(&entry->list);
+			kfree(entry);
+			return 0;
+		}
+	}
+
+	return -EINVAL;
+}
+
 int mptcp_userspace_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
 						   unsigned int id,
 						   u8 *flags, int *ifindex)
@@ -251,6 +275,7 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
 	struct nlattr *raddr = info->attrs[MPTCP_PM_ATTR_ADDR_REMOTE];
 	struct nlattr *token = info->attrs[MPTCP_PM_ATTR_TOKEN];
 	struct nlattr *laddr = info->attrs[MPTCP_PM_ATTR_ADDR];
+	struct mptcp_pm_addr_entry local = { 0 };
 	struct mptcp_addr_info addr_r;
 	struct mptcp_addr_info addr_l;
 	struct mptcp_sock *msk;
@@ -302,12 +327,24 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
 		goto create_err;
 	}
 
+	local.addr = addr_l;
+	err = mptcp_userspace_pm_append_new_local_addr(msk, &local);
+	if (err < 0) {
+		GENL_SET_ERR_MSG(info, "did not match address and id");
+		goto create_err;
+	}
+
 	lock_sock(sk);
 
 	err = __mptcp_subflow_connect(sk, &addr_l, &addr_r);
 
 	release_sock(sk);
 
+	spin_lock_bh(&msk->pm.lock);
+	if (err)
+		mptcp_userspace_pm_delete_local_addr(msk, &local);
+	spin_unlock_bh(&msk->pm.lock);
+
  create_err:
 	sock_put((struct sock *)msk);
 	return err;
@@ -420,7 +457,11 @@ int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, struct genl_info *info)
 	ssk = mptcp_nl_find_ssk(msk, &addr_l, &addr_r);
 	if (ssk) {
 		struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk);
+		struct mptcp_pm_addr_entry entry = { .addr = addr_l };
 
+		spin_lock_bh(&msk->pm.lock);
+		mptcp_userspace_pm_delete_local_addr(msk, &entry);
+		spin_unlock_bh(&msk->pm.lock);
 		mptcp_subflow_shutdown(sk, ssk, RCV_SHUTDOWN | SEND_SHUTDOWN);
 		mptcp_close_ssk(sk, ssk, subflow);
 		MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RMSUBFLOW);
-- 
2.35.3


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

* [PATCH mptcp-next v15 4/5] selftests: mptcp: update userspace pm subflow tests
  2023-05-24  8:02 [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Geliang Tang
                   ` (2 preceding siblings ...)
  2023-05-24  8:02 ` [PATCH mptcp-next v15 3/5] mptcp: add address into userspace pm list Geliang Tang
@ 2023-05-24  8:02 ` Geliang Tang
  2023-05-24  8:02 ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Geliang Tang
  2023-05-24 13:27 ` [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Matthieu Baerts
  5 siblings, 0 replies; 15+ messages in thread
From: Geliang Tang @ 2023-05-24  8:02 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

To align with what is done by the in-kernel PM, update userspace pm
subflow selftests, by sending the a remove_addrs command together
before the remove_subflows command. This will get a RM_ADDR in
chk_rm_nr().

Fixes: d9a4594edabf ("mptcp: netlink: Add MPTCP_PM_CMD_REMOVE")
Fixes: 5e986ec46874 ("selftests: mptcp: userspace pm subflow tests")
Link: https://github.com/multipath-tcp/mptcp_net-next/issues/379
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index a42745e60976..a0c502d617e5 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -937,6 +937,7 @@ do_transfer()
 				sleep 1
 				sp=$(grep "type:10" "$evts_ns2" |
 				     sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q')
+				ip netns exec ${connector_ns} ./pm_nl_ctl rem token $tk id $id
 				ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \
 									rip $da rport $dp token $tk
 			fi
@@ -3210,7 +3211,7 @@ userspace_tests()
 		pm_nl_set_limits $ns1 0 1
 		run_tests $ns1 $ns2 10.0.1.1 0 0 userspace_1 slow
 		chk_join_nr 1 1 1
-		chk_rm_nr 0 1
+		chk_rm_nr 1 1
 		kill_events_pids
 	fi
 }
-- 
2.35.3


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

* [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos
  2023-05-24  8:02 [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Geliang Tang
                   ` (3 preceding siblings ...)
  2023-05-24  8:02 ` [PATCH mptcp-next v15 4/5] selftests: mptcp: update userspace pm subflow tests Geliang Tang
@ 2023-05-24  8:02 ` Geliang Tang
  2023-05-24  9:37   ` mptcp: update userspace pm infos: Tests Results MPTCP CI
                     ` (3 more replies)
  2023-05-24 13:27 ` [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Matthieu Baerts
  5 siblings, 4 replies; 15+ messages in thread
From: Geliang Tang @ 2023-05-24  8:02 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

Increase pm subflows counter on both server side and client side when
userspace pm creates a new subflow, and decrease the counter when it
closes a subflow.

Increase add_addr_signaled counter in mptcp_nl_cmd_announce() when the
address is announced by userspace PM.

This modification is similar to how the in-kernel PM is updating the
counter: when additional subflows are created/removed.

Fixes: 9ab4807c84a4 ("mptcp: netlink: Add MPTCP_PM_CMD_ANNOUNCE")
Fixes: 702c2f646d42 ("mptcp: netlink: allow userspace-driven subflow establishment")
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/329
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/pm.c           | 23 +++++++++++++++++++----
 net/mptcp/pm_userspace.c |  5 +++++
 2 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c
index 7539137719ef..e7f944d09fcd 100644
--- a/net/mptcp/pm.c
+++ b/net/mptcp/pm.c
@@ -89,8 +89,15 @@ bool mptcp_pm_allow_new_subflow(struct mptcp_sock *msk)
 	unsigned int subflows_max;
 	int ret = 0;
 
-	if (mptcp_pm_is_userspace(msk))
-		return mptcp_userspace_pm_active(msk);
+	if (mptcp_pm_is_userspace(msk)) {
+		if (mptcp_userspace_pm_active(msk)) {
+			spin_lock_bh(&pm->lock);
+			pm->subflows++;
+			spin_unlock_bh(&pm->lock);
+			return true;
+		}
+		return false;
+	}
 
 	subflows_max = mptcp_pm_get_subflows_max(msk);
 
@@ -183,8 +190,16 @@ void mptcp_pm_subflow_check_next(struct mptcp_sock *msk, const struct sock *ssk,
 	struct mptcp_pm_data *pm = &msk->pm;
 	bool update_subflows;
 
-	update_subflows = (subflow->request_join || subflow->mp_join) &&
-			  mptcp_pm_is_kernel(msk);
+	update_subflows = subflow->request_join || subflow->mp_join;
+	if (mptcp_pm_is_userspace(msk)) {
+		if (update_subflows) {
+			spin_lock_bh(&pm->lock);
+			pm->subflows--;
+			spin_unlock_bh(&pm->lock);
+		}
+		return;
+	}
+
 	if (!READ_ONCE(pm->work_pending) && !update_subflows)
 		return;
 
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 114548b09f47..7ada9cf81c14 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -69,6 +69,7 @@ static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
 							MPTCP_PM_MAX_ADDR_ID + 1,
 							1);
 		list_add_tail_rcu(&e->list, &msk->pm.userspace_pm_local_addr_list);
+		msk->pm.local_addr_used++;
 		ret = e->addr.id;
 	} else if (match) {
 		ret = entry->addr.id;
@@ -91,6 +92,7 @@ static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
 
 	list_for_each_entry_safe(entry, tmp, &msk->pm.userspace_pm_local_addr_list, list) {
 		if (mptcp_addresses_equal(&entry->addr, &addr->addr, false)) {
+			msk->pm.local_addr_used--;
 			/* TODO: a refcount is needed because the entry can
 			 * be used multiple times (e.g. fullmesh mode).
 			 */
@@ -195,6 +197,7 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct genl_info *info)
 	spin_lock_bh(&msk->pm.lock);
 
 	if (mptcp_pm_alloc_anno_list(msk, &addr_val)) {
+		msk->pm.add_addr_signaled++;
 		mptcp_pm_announce_addr(msk, &addr_val.addr, false);
 		mptcp_pm_nl_addr_send_ack(msk);
 	}
@@ -343,6 +346,8 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
 	spin_lock_bh(&msk->pm.lock);
 	if (err)
 		mptcp_userspace_pm_delete_local_addr(msk, &local);
+	else
+		msk->pm.subflows++;
 	spin_unlock_bh(&msk->pm.lock);
 
  create_err:
-- 
2.35.3


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

* Re: [PATCH mptcp-next v15 3/5] mptcp: add address into userspace pm list
  2023-05-24  8:02 ` [PATCH mptcp-next v15 3/5] mptcp: add address into userspace pm list Geliang Tang
@ 2023-05-24  8:43   ` Geliang Tang
  2023-05-24 13:21   ` Matthieu Baerts
  1 sibling, 0 replies; 15+ messages in thread
From: Geliang Tang @ 2023-05-24  8:43 UTC (permalink / raw)
  To: mptcp

On Wed, May 24, 2023 at 04:02:46PM +0800, Geliang Tang wrote:
> Add the address into userspace_pm_local_addr_list when the subflow is
> created. Make sure it can be found in mptcp_nl_cmd_remove(). And delete
> it in the new helper mptcp_userspace_pm_delete_local_addr().
> 
> Add address into pm anno_list in mptcp_nl_cmd_sf_create(). Remove
> it when connecting fails.

These two lines should be removed.

Thanks,
-Geliang

> 
> By doing this, the "REMOVE" command also works with subflows that have
> been created via the "SUB_CREATE" command instead of restricting to
> the addresses that have been announced via the "ANNOUNCE" command.
> 
> Fixes: d9a4594edabf ("mptcp: netlink: Add MPTCP_PM_CMD_REMOVE")
> Link: https://github.com/multipath-tcp/mptcp_net-next/issues/379
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
>  net/mptcp/pm_userspace.c | 41 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
> 
> diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
> index 6beadea8c67d..114548b09f47 100644
> --- a/net/mptcp/pm_userspace.c
> +++ b/net/mptcp/pm_userspace.c
> @@ -79,6 +79,30 @@ static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
>  	return ret;
>  }
>  
> +/* If the subflow is closed from the other peer (not via a
> + * subflow destroy command then), we want to keep the entry
> + * not to assign the same ID to another address and to be
> + * able to send RM_ADDR after the removal of the subflow.
> + */
> +static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
> +						struct mptcp_pm_addr_entry *addr)
> +{
> +	struct mptcp_pm_addr_entry *entry, *tmp;
> +
> +	list_for_each_entry_safe(entry, tmp, &msk->pm.userspace_pm_local_addr_list, list) {
> +		if (mptcp_addresses_equal(&entry->addr, &addr->addr, false)) {
> +			/* TODO: a refcount is needed because the entry can
> +			 * be used multiple times (e.g. fullmesh mode).
> +			 */
> +			list_del_rcu(&entry->list);
> +			kfree(entry);
> +			return 0;
> +		}
> +	}
> +
> +	return -EINVAL;
> +}
> +
>  int mptcp_userspace_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk,
>  						   unsigned int id,
>  						   u8 *flags, int *ifindex)
> @@ -251,6 +275,7 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
>  	struct nlattr *raddr = info->attrs[MPTCP_PM_ATTR_ADDR_REMOTE];
>  	struct nlattr *token = info->attrs[MPTCP_PM_ATTR_TOKEN];
>  	struct nlattr *laddr = info->attrs[MPTCP_PM_ATTR_ADDR];
> +	struct mptcp_pm_addr_entry local = { 0 };
>  	struct mptcp_addr_info addr_r;
>  	struct mptcp_addr_info addr_l;
>  	struct mptcp_sock *msk;
> @@ -302,12 +327,24 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
>  		goto create_err;
>  	}
>  
> +	local.addr = addr_l;
> +	err = mptcp_userspace_pm_append_new_local_addr(msk, &local);
> +	if (err < 0) {
> +		GENL_SET_ERR_MSG(info, "did not match address and id");
> +		goto create_err;
> +	}
> +
>  	lock_sock(sk);
>  
>  	err = __mptcp_subflow_connect(sk, &addr_l, &addr_r);
>  
>  	release_sock(sk);
>  
> +	spin_lock_bh(&msk->pm.lock);
> +	if (err)
> +		mptcp_userspace_pm_delete_local_addr(msk, &local);
> +	spin_unlock_bh(&msk->pm.lock);
> +
>   create_err:
>  	sock_put((struct sock *)msk);
>  	return err;
> @@ -420,7 +457,11 @@ int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, struct genl_info *info)
>  	ssk = mptcp_nl_find_ssk(msk, &addr_l, &addr_r);
>  	if (ssk) {
>  		struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk);
> +		struct mptcp_pm_addr_entry entry = { .addr = addr_l };
>  
> +		spin_lock_bh(&msk->pm.lock);
> +		mptcp_userspace_pm_delete_local_addr(msk, &entry);
> +		spin_unlock_bh(&msk->pm.lock);
>  		mptcp_subflow_shutdown(sk, ssk, RCV_SHUTDOWN | SEND_SHUTDOWN);
>  		mptcp_close_ssk(sk, ssk, subflow);
>  		MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RMSUBFLOW);
> -- 
> 2.35.3
> 

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

* Re: mptcp: update userspace pm infos: Tests Results
  2023-05-24  8:02 ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Geliang Tang
@ 2023-05-24  9:37   ` MPTCP CI
  2023-05-24 13:24   ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Matthieu Baerts
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 15+ messages in thread
From: MPTCP CI @ 2023-05-24  9:37 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 (except selftest_mptcp_join):
  - Unstable: 1 failed test(s): packetdrill_fastopen 🔴:
  - Task: https://cirrus-ci.com/task/6288369974509568
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/6288369974509568/summary/summary.txt

- KVM Validation: normal (only selftest_mptcp_join):
  - Success! ✅:
  - Task: https://cirrus-ci.com/task/4880995090956288
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/4880995090956288/summary/summary.txt

- KVM Validation: debug (except selftest_mptcp_join):
  - Unstable: 3 failed test(s): packetdrill_fastopen packetdrill_mp_join selftest_diag 🔴:
  - Task: https://cirrus-ci.com/task/6006894997798912
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/6006894997798912/summary/summary.txt

- KVM Validation: debug (only selftest_mptcp_join):
  - Success! ✅:
  - Task: https://cirrus-ci.com/task/5443945044377600
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/5443945044377600/summary/summary.txt

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


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

* Re: [PATCH mptcp-next v15 3/5] mptcp: add address into userspace pm list
  2023-05-24  8:02 ` [PATCH mptcp-next v15 3/5] mptcp: add address into userspace pm list Geliang Tang
  2023-05-24  8:43   ` Geliang Tang
@ 2023-05-24 13:21   ` Matthieu Baerts
  1 sibling, 0 replies; 15+ messages in thread
From: Matthieu Baerts @ 2023-05-24 13:21 UTC (permalink / raw)
  To: Geliang Tang, mptcp

Hi Geliang,

On 24/05/2023 10:02, Geliang Tang wrote:
> Add the address into userspace_pm_local_addr_list when the subflow is
> created. Make sure it can be found in mptcp_nl_cmd_remove(). And delete
> it in the new helper mptcp_userspace_pm_delete_local_addr().
> 
> Add address into pm anno_list in mptcp_nl_cmd_sf_create(). Remove
> it when connecting fails.
> 
> By doing this, the "REMOVE" command also works with subflows that have
> been created via the "SUB_CREATE" command instead of restricting to
> the addresses that have been announced via the "ANNOUNCE" command.
> 
> Fixes: d9a4594edabf ("mptcp: netlink: Add MPTCP_PM_CMD_REMOVE")
> Link: https://github.com/multipath-tcp/mptcp_net-next/issues/379
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
>  net/mptcp/pm_userspace.c | 41 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
> 
> diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
> index 6beadea8c67d..114548b09f47 100644
> --- a/net/mptcp/pm_userspace.c
> +++ b/net/mptcp/pm_userspace.c

(...)

> @@ -302,12 +327,24 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
>  		goto create_err;
>  	}
>  
> +	local.addr = addr_l;
> +	err = mptcp_userspace_pm_append_new_local_addr(msk, &local);
> +	if (err < 0) {
> +		GENL_SET_ERR_MSG(info, "did not match address and id");
> +		goto create_err;
> +	}
> +
>  	lock_sock(sk);
>  
>  	err = __mptcp_subflow_connect(sk, &addr_l, &addr_r);
>  
>  	release_sock(sk);
>  
> +	spin_lock_bh(&msk->pm.lock);
> +	if (err)
> +		mptcp_userspace_pm_delete_local_addr(msk, &local);
> +	spin_unlock_bh(&msk->pm.lock);

I was going to ask to move the lock inside the 'if' condition but patch
5/5 introduces a else condition which also needs the lock, all good then.

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

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

* Re: [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos
  2023-05-24  8:02 ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Geliang Tang
  2023-05-24  9:37   ` mptcp: update userspace pm infos: Tests Results MPTCP CI
@ 2023-05-24 13:24   ` Matthieu Baerts
  2023-05-24 14:10     ` Geliang Tang
  2023-05-24 15:41   ` mptcp: update userspace pm infos: Tests Results MPTCP CI
  2023-05-24 16:46   ` MPTCP CI
  3 siblings, 1 reply; 15+ messages in thread
From: Matthieu Baerts @ 2023-05-24 13:24 UTC (permalink / raw)
  To: Geliang Tang, mptcp

Hi Geliang,

On 24/05/2023 10:02, Geliang Tang wrote:
> Increase pm subflows counter on both server side and client side when
> userspace pm creates a new subflow, and decrease the counter when it
> closes a subflow.
> 
> Increase add_addr_signaled counter in mptcp_nl_cmd_announce() when the
> address is announced by userspace PM.
> 
> This modification is similar to how the in-kernel PM is updating the
> counter: when additional subflows are created/removed.
(...)

> diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
> index 114548b09f47..7ada9cf81c14 100644
> --- a/net/mptcp/pm_userspace.c
> +++ b/net/mptcp/pm_userspace.c
> @@ -91,6 +92,7 @@ static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
>  
>  	list_for_each_entry_safe(entry, tmp, &msk->pm.userspace_pm_local_addr_list, list) {
>  		if (mptcp_addresses_equal(&entry->addr, &addr->addr, false)) {
> +			msk->pm.local_addr_used--;

Do you mind if I add this under the following comment with the TODO? We
should only decrement the entry if it is the last one being used.

>  			/* TODO: a refcount is needed because the entry can
>  			 * be used multiple times (e.g. fullmesh mode).
>  			 */

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

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

* Re: [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1
  2023-05-24  8:02 [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Geliang Tang
                   ` (4 preceding siblings ...)
  2023-05-24  8:02 ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Geliang Tang
@ 2023-05-24 13:27 ` Matthieu Baerts
  2023-05-24 14:27   ` Matthieu Baerts
  5 siblings, 1 reply; 15+ messages in thread
From: Matthieu Baerts @ 2023-05-24 13:27 UTC (permalink / raw)
  To: Geliang Tang, mptcp

Hi Geliang,

On 24/05/2023 10:02, Geliang Tang wrote:
> v15:
>  - drop "mptcp: export remove_anno_list_by_saddr"
>  - drop MPTCP_USER_PM_FLAG_RM_* flags
>  - drop mptcp_pm_alloc_anno_list in mptcp_nl_cmd_sf_create.

Thank you for the v15, it looks good to me!

Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>

I suggest to apply this series today. Then I will look at my series
(selftests: mptcp: skip tests when features are not supported) and hope
to apply it soon. Then we can look at the part 2 of this series if
that's OK for you.

If you need a hand to rebase your series on top of mine, please tell me!

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

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

* Re: [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos
  2023-05-24 13:24   ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Matthieu Baerts
@ 2023-05-24 14:10     ` Geliang Tang
  0 siblings, 0 replies; 15+ messages in thread
From: Geliang Tang @ 2023-05-24 14:10 UTC (permalink / raw)
  To: Matthieu Baerts; +Cc: mptcp

On Wed, May 24, 2023 at 03:24:09PM +0200, Matthieu Baerts wrote:
> Hi Geliang,
> 
> On 24/05/2023 10:02, Geliang Tang wrote:
> > Increase pm subflows counter on both server side and client side when
> > userspace pm creates a new subflow, and decrease the counter when it
> > closes a subflow.
> > 
> > Increase add_addr_signaled counter in mptcp_nl_cmd_announce() when the
> > address is announced by userspace PM.
> > 
> > This modification is similar to how the in-kernel PM is updating the
> > counter: when additional subflows are created/removed.
> (...)
> 
> > diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
> > index 114548b09f47..7ada9cf81c14 100644
> > --- a/net/mptcp/pm_userspace.c
> > +++ b/net/mptcp/pm_userspace.c
> > @@ -91,6 +92,7 @@ static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
> >  
> >  	list_for_each_entry_safe(entry, tmp, &msk->pm.userspace_pm_local_addr_list, list) {
> >  		if (mptcp_addresses_equal(&entry->addr, &addr->addr, false)) {
> > +			msk->pm.local_addr_used--;
> 
> Do you mind if I add this under the following comment with the TODO? We
> should only decrement the entry if it is the last one being used.

Yes, it's much better to move this under the TODO comment.

Thanks,
-Geliang

> 
> >  			/* TODO: a refcount is needed because the entry can
> >  			 * be used multiple times (e.g. fullmesh mode).
> >  			 */
> 
> Cheers,
> Matt
> -- 
> Tessares | Belgium | Hybrid Access Solutions
> www.tessares.net

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

* Re: [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1
  2023-05-24 13:27 ` [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Matthieu Baerts
@ 2023-05-24 14:27   ` Matthieu Baerts
  0 siblings, 0 replies; 15+ messages in thread
From: Matthieu Baerts @ 2023-05-24 14:27 UTC (permalink / raw)
  To: Geliang Tang, mptcp

Hi Geliang,

On 24/05/2023 15:27, Matthieu Baerts wrote:
> Hi Geliang,
> 
> On 24/05/2023 10:02, Geliang Tang wrote:
>> v15:
>>  - drop "mptcp: export remove_anno_list_by_saddr"
>>  - drop MPTCP_USER_PM_FLAG_RM_* flags
>>  - drop mptcp_pm_alloc_anno_list in mptcp_nl_cmd_sf_create.
> 
> Thank you for the v15, it looks good to me!
> 
> Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
> 
> I suggest to apply this series today.

Just did, applied in our tree (fixes for -net):

New patches for t/upstream-net and t/upstream:
- 7b19c98c1195: mptcp: only send RM_ADDR in nl_cmd_remove
- c9fb355d4359: selftests: mptcp: update userspace pm addr tests
- d8a70092983f: mptcp: add address into userspace pm list
- ce75026f702c: selftests: mptcp: update userspace pm subflow tests
- 3a08dcee555f: mptcp: update userspace pm infos
- Results: b87768580a4d..a38ce6e2d547 (export-net)



- Results: 0a9978390b78..ba37a83b8dc3 (export)

Tests are now in progress:

https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export-net/20230524T141239
https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20230524T141239

Cheers,
Matt

-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net

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

* Re: mptcp: update userspace pm infos: Tests Results
  2023-05-24  8:02 ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Geliang Tang
  2023-05-24  9:37   ` mptcp: update userspace pm infos: Tests Results MPTCP CI
  2023-05-24 13:24   ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Matthieu Baerts
@ 2023-05-24 15:41   ` MPTCP CI
  2023-05-24 16:46   ` MPTCP CI
  3 siblings, 0 replies; 15+ messages in thread
From: MPTCP CI @ 2023-05-24 15:41 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 (except selftest_mptcp_join):
  - Unstable: 1 failed test(s): packetdrill_fastopen 🔴:
  - Task: https://cirrus-ci.com/task/5532371710115840
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/5532371710115840/summary/summary.txt

- KVM Validation: debug (only selftest_mptcp_join):
  - Unstable: 1 failed test(s): selftest_mptcp_join 🔴:
  - Task: https://cirrus-ci.com/task/5743477942648832
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/5743477942648832/summary/summary.txt

- KVM Validation: normal (only selftest_mptcp_join):
  - Success! ✅:
  - Task: https://cirrus-ci.com/task/6658271616958464
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/6658271616958464/summary/summary.txt

- {"code":404,"message":
  - "Can't find artifacts containing file conclusion.txt"}:
  - Task: https://cirrus-ci.com/task/4617578035806208
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/4617578035806208/summary/summary.txt

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


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

* Re: mptcp: update userspace pm infos: Tests Results
  2023-05-24  8:02 ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Geliang Tang
                     ` (2 preceding siblings ...)
  2023-05-24 15:41   ` mptcp: update userspace pm infos: Tests Results MPTCP CI
@ 2023-05-24 16:46   ` MPTCP CI
  3 siblings, 0 replies; 15+ messages in thread
From: MPTCP CI @ 2023-05-24 16:46 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 (except selftest_mptcp_join):
  - Unstable: 1 failed test(s): packetdrill_fastopen 🔴:
  - Task: https://cirrus-ci.com/task/5532371710115840
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/5532371710115840/summary/summary.txt

- KVM Validation: debug (only selftest_mptcp_join):
  - Unstable: 1 failed test(s): selftest_mptcp_join 🔴:
  - Task: https://cirrus-ci.com/task/5743477942648832
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/5743477942648832/summary/summary.txt

- KVM Validation: normal (only selftest_mptcp_join):
  - Success! ✅:
  - Task: https://cirrus-ci.com/task/6658271616958464
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/6658271616958464/summary/summary.txt

- KVM Validation: debug (except selftest_mptcp_join):
  - Unstable: 2 failed test(s): packetdrill_fastopen selftest_diag 🔴:
  - Task: https://cirrus-ci.com/task/5670478698774528
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/5670478698774528/summary/summary.txt

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


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

end of thread, other threads:[~2023-05-24 16:46 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-24  8:02 [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Geliang Tang
2023-05-24  8:02 ` [PATCH mptcp-next v15 1/5] mptcp: only send RM_ADDR in nl_cmd_remove Geliang Tang
2023-05-24  8:02 ` [PATCH mptcp-next v15 2/5] selftests: mptcp: update userspace pm addr tests Geliang Tang
2023-05-24  8:02 ` [PATCH mptcp-next v15 3/5] mptcp: add address into userspace pm list Geliang Tang
2023-05-24  8:43   ` Geliang Tang
2023-05-24 13:21   ` Matthieu Baerts
2023-05-24  8:02 ` [PATCH mptcp-next v15 4/5] selftests: mptcp: update userspace pm subflow tests Geliang Tang
2023-05-24  8:02 ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Geliang Tang
2023-05-24  9:37   ` mptcp: update userspace pm infos: Tests Results MPTCP CI
2023-05-24 13:24   ` [PATCH mptcp-next v15 5/5] mptcp: update userspace pm infos Matthieu Baerts
2023-05-24 14:10     ` Geliang Tang
2023-05-24 15:41   ` mptcp: update userspace pm infos: Tests Results MPTCP CI
2023-05-24 16:46   ` MPTCP CI
2023-05-24 13:27 ` [PATCH mptcp-next v15 0/5] update userspace pm mptcp_info fields part 1 Matthieu Baerts
2023-05-24 14:27   ` Matthieu Baerts

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.