All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH mptcp-next v6 0/7] mptcp: update userspace pm mptcp_info fields
@ 2023-04-13  9:12 Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Geliang Tang
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Geliang Tang @ 2023-04-13  9:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

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 (7):
  mptcp: pass addr to mptcp_pm_alloc_anno_list
  mptcp: don't clear userspace pm addr id
  mptcp: add addr into userspace pm list
  mptcp: close remote subflow when destroying it
  mptcp: increase userspace pm add_addr_signaled
  mptcp: update userspace pm subflows
  selftests: mptcp: check userspace mptcp_info

 net/mptcp/pm.c                                | 21 +++++++++++++++----
 net/mptcp/pm_netlink.c                        | 10 ++++-----
 net/mptcp/pm_userspace.c                      | 16 ++++++++++++--
 net/mptcp/protocol.h                          |  2 +-
 .../testing/selftests/net/mptcp/mptcp_join.sh | 13 +++++++++++-
 5 files changed, 49 insertions(+), 13 deletions(-)

-- 
2.35.3


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

* [PATCH mptcp-next v6 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list
  2023-04-13  9:12 [PATCH mptcp-next v6 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
@ 2023-04-13  9:12 ` Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 2/7] mptcp: don't clear userspace pm addr id Geliang Tang
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Geliang Tang @ 2023-04-13  9:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

Pass addr to mptcp_pm_alloc_anno_list() instead of entry.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/pm_netlink.c   | 8 ++++----
 net/mptcp/pm_userspace.c | 2 +-
 net/mptcp/protocol.h     | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index e8336b8bd30e..a02822111218 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -342,7 +342,7 @@ mptcp_pm_del_add_timer(struct mptcp_sock *msk,
 }
 
 bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
-			      const struct mptcp_pm_addr_entry *entry)
+			      const struct mptcp_addr_info *addr)
 {
 	struct mptcp_pm_add_entry *add_entry = NULL;
 	struct sock *sk = (struct sock *)msk;
@@ -350,7 +350,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
 
 	lockdep_assert_held(&msk->pm.lock);
 
-	add_entry = mptcp_lookup_anno_list_by_saddr(msk, &entry->addr);
+	add_entry = mptcp_lookup_anno_list_by_saddr(msk, addr);
 
 	if (add_entry) {
 		if (mptcp_pm_is_kernel(msk))
@@ -367,7 +367,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
 
 	list_add(&add_entry->list, &msk->pm.anno_list);
 
-	add_entry->addr = entry->addr;
+	add_entry->addr = *addr;
 	add_entry->sock = msk;
 	add_entry->retrans_times = 0;
 
@@ -574,7 +574,7 @@ static void mptcp_pm_create_subflow_or_signal_addr(struct mptcp_sock *msk)
 			return;
 
 		if (local) {
-			if (mptcp_pm_alloc_anno_list(msk, local)) {
+			if (mptcp_pm_alloc_anno_list(msk, &local->addr)) {
 				__clear_bit(local->addr.id, msk->pm.id_avail_bitmap);
 				msk->pm.add_addr_signaled++;
 				mptcp_pm_announce_addr(msk, &local->addr, false);
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 27a275805c06..4d0e54fab5cf 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -170,7 +170,7 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct genl_info *info)
 	lock_sock((struct sock *)msk);
 	spin_lock_bh(&msk->pm.lock);
 
-	if (mptcp_pm_alloc_anno_list(msk, &addr_val)) {
+	if (mptcp_pm_alloc_anno_list(msk, &addr_val.addr)) {
 		mptcp_pm_announce_addr(msk, &addr_val.addr, false);
 		mptcp_pm_nl_addr_send_ack(msk);
 	}
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index 5a35c77723e3..990c21a97975 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -822,7 +822,7 @@ int mptcp_pm_nl_mp_prio_send_ack(struct mptcp_sock *msk,
 				 struct mptcp_addr_info *rem,
 				 u8 bkup);
 bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
-			      const struct mptcp_pm_addr_entry *entry);
+			      const struct mptcp_addr_info *addr);
 void mptcp_pm_free_anno_list(struct mptcp_sock *msk);
 bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock *sk);
 struct mptcp_pm_add_entry *
-- 
2.35.3


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

* [PATCH mptcp-next v6 2/7] mptcp: don't clear userspace pm addr id
  2023-04-13  9:12 [PATCH mptcp-next v6 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Geliang Tang
@ 2023-04-13  9:12 ` Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 3/7] mptcp: add addr into userspace pm list Geliang Tang
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Geliang Tang @ 2023-04-13  9:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

Don't clear the addr id in mptcp_userspace_pm_get_local_id(), clear it
in mptcp_pm_nl_get_local_id() instead.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/pm_netlink.c   | 2 +-
 net/mptcp/pm_userspace.c | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index a02822111218..ff27c9f1f843 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -1055,8 +1055,8 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk,
 
 int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct sock_common *skc)
 {
+	struct mptcp_addr_info skc_local = { 0 };
 	struct mptcp_pm_addr_entry *entry;
-	struct mptcp_addr_info skc_local;
 	struct mptcp_addr_info msk_local;
 	struct pm_nl_pernet *pernet;
 	int ret = -1;
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 4d0e54fab5cf..4a8ebf87ef02 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -113,7 +113,6 @@ int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk,
 
 	memset(&new_entry, 0, sizeof(struct mptcp_pm_addr_entry));
 	new_entry.addr = *skc;
-	new_entry.addr.id = 0;
 	new_entry.flags = MPTCP_PM_ADDR_FLAG_IMPLICIT;
 
 	if (new_entry.addr.port == msk_sport)
-- 
2.35.3


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

* [PATCH mptcp-next v6 3/7] mptcp: add addr into userspace pm list
  2023-04-13  9:12 [PATCH mptcp-next v6 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 2/7] mptcp: don't clear userspace pm addr id Geliang Tang
@ 2023-04-13  9:12 ` Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 4/7] mptcp: close remote subflow when destroying it Geliang Tang
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Geliang Tang @ 2023-04-13  9:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

Add the address into userspace_pm_local_addr_list when the subflow is
created.

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

diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 4a8ebf87ef02..176c77a2a79d 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -301,6 +301,16 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
 		goto create_err;
 	}
 
+	err = mptcp_userspace_pm_get_local_id(msk, &addr_l);
+	if (err < 0) {
+		GENL_SET_ERR_MSG(info, "did not match address and id");
+		goto create_err;
+	}
+
+	spin_lock_bh(&msk->pm.lock);
+	msk->pm.local_addr_used++;
+	spin_unlock_bh(&msk->pm.lock);
+
 	lock_sock(sk);
 
 	err = __mptcp_subflow_connect(sk, &addr_l, &addr_r);
-- 
2.35.3


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

* [PATCH mptcp-next v6 4/7] mptcp: close remote subflow when destroying it
  2023-04-13  9:12 [PATCH mptcp-next v6 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
                   ` (2 preceding siblings ...)
  2023-04-13  9:12 ` [PATCH mptcp-next v6 3/7] mptcp: add addr into userspace pm list Geliang Tang
@ 2023-04-13  9:12 ` Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 5/7] mptcp: increase userspace pm add_addr_signaled Geliang Tang
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Geliang Tang @ 2023-04-13  9:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

Not only close the local subflow but also send RM_ADDR by invoking
mptcp_pm_remove_addr() to close the remote subflow when a subflow is
destroyed by userspace PM.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/pm_userspace.c                        | 1 +
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 176c77a2a79d..7d676daa89ba 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -308,6 +308,7 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
 	}
 
 	spin_lock_bh(&msk->pm.lock);
+	mptcp_pm_alloc_anno_list(msk, &addr_l);
 	msk->pm.local_addr_used++;
 	spin_unlock_bh(&msk->pm.lock);
 
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index fafd19ec7e1f..072f77b6b206 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -911,6 +911,7 @@ do_transfer()
 				     sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q')
 				ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \
 									rip $da rport $dp token $tk
+				ip netns exec ${connector_ns} ./pm_nl_ctl rem token $tk id $id
 			fi
 			counter=$((counter + 1))
 			add_nr_ns2=$((add_nr_ns2 - 1))
@@ -3123,7 +3124,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] 9+ messages in thread

* [PATCH mptcp-next v6 5/7] mptcp: increase userspace pm add_addr_signaled
  2023-04-13  9:12 [PATCH mptcp-next v6 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
                   ` (3 preceding siblings ...)
  2023-04-13  9:12 ` [PATCH mptcp-next v6 4/7] mptcp: close remote subflow when destroying it Geliang Tang
@ 2023-04-13  9:12 ` Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 6/7] mptcp: update userspace pm subflows Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
  6 siblings, 0 replies; 9+ messages in thread
From: Geliang Tang @ 2023-04-13  9:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

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

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/pm_userspace.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 7d676daa89ba..817b6f1eb013 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -170,6 +170,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.addr)) {
+		msk->pm.add_addr_signaled++;
 		mptcp_pm_announce_addr(msk, &addr_val.addr, false);
 		mptcp_pm_nl_addr_send_ack(msk);
 	}
-- 
2.35.3


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

* [PATCH mptcp-next v6 6/7] mptcp: update userspace pm subflows
  2023-04-13  9:12 [PATCH mptcp-next v6 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
                   ` (4 preceding siblings ...)
  2023-04-13  9:12 ` [PATCH mptcp-next v6 5/7] mptcp: increase userspace pm add_addr_signaled Geliang Tang
@ 2023-04-13  9:12 ` Geliang Tang
  2023-04-13  9:12 ` [PATCH mptcp-next v6 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
  6 siblings, 0 replies; 9+ messages in thread
From: Geliang Tang @ 2023-04-13  9:12 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.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 net/mptcp/pm.c           | 21 +++++++++++++++++----
 net/mptcp/pm_userspace.c |  1 +
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c
index 4ed4d29d9c11..bb01f15d8e0a 100644
--- a/net/mptcp/pm.c
+++ b/net/mptcp/pm.c
@@ -87,8 +87,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);
 
@@ -181,8 +188,14 @@ 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);
+	if (mptcp_pm_is_userspace(msk)) {
+		spin_lock_bh(&pm->lock);
+		pm->subflows--;
+		spin_unlock_bh(&pm->lock);
+		return;
+	}
+
+	update_subflows = (subflow->request_join || subflow->mp_join);
 	if (!READ_ONCE(pm->work_pending) && !update_subflows)
 		return;
 
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 817b6f1eb013..db063a6956bc 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -311,6 +311,7 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
 	spin_lock_bh(&msk->pm.lock);
 	mptcp_pm_alloc_anno_list(msk, &addr_l);
 	msk->pm.local_addr_used++;
+	msk->pm.subflows++;
 	spin_unlock_bh(&msk->pm.lock);
 
 	lock_sock(sk);
-- 
2.35.3


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

* [PATCH mptcp-next v6 7/7] selftests: mptcp: check userspace mptcp_info
  2023-04-13  9:12 [PATCH mptcp-next v6 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
                   ` (5 preceding siblings ...)
  2023-04-13  9:12 ` [PATCH mptcp-next v6 6/7] mptcp: update userspace pm subflows Geliang Tang
@ 2023-04-13  9:12 ` Geliang Tang
  2023-04-13 10:22   ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI
  6 siblings, 1 reply; 9+ messages in thread
From: Geliang Tang @ 2023-04-13  9:12 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

This patch invokes chk_mptcp_info() to check mptcp_info of userspace PM.

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

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 072f77b6b206..a5dc64129422 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -842,8 +842,11 @@ do_transfer()
 				tk=$(grep "type:1," "$evts_ns1" |
 				     sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q')
 				ip netns exec ${listener_ns} ./pm_nl_ctl ann $addr token $tk id $id
+				chk_mptcp_info subflows_1
 				sleep 1
 				ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id
+				sleep 1
+				chk_mptcp_info subflows_0
 			fi
 
 			counter=$((counter + 1))
@@ -906,12 +909,15 @@ do_transfer()
 				dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2")
 				ip netns exec ${connector_ns} ./pm_nl_ctl csf lip $addr lid $id \
 									rip $da rport $dp token $tk
+				chk_mptcp_info subflows_1
 				sleep 1
 				sp=$(grep "type:10" "$evts_ns2" |
 				     sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q')
 				ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \
 									rip $da rport $dp token $tk
 				ip netns exec ${connector_ns} ./pm_nl_ctl rem token $tk id $id
+				sleep 1
+				chk_mptcp_info subflows_0
 			fi
 			counter=$((counter + 1))
 			add_nr_ns2=$((add_nr_ns2 - 1))
@@ -3149,6 +3155,10 @@ endpoint_tests()
 		pm_nl_add_endpoint $ns2 10.0.2.2 flags signal
 		pm_nl_check_endpoint 0 "modif is allowed" \
 			$ns2 10.0.2.2 id 1 flags signal
+
+		chk_mptcp_info subflows_1
+		pm_nl_del_endpoint $ns2 1 10.0.2.2
+		chk_mptcp_info subflows_0
 		kill_tests_wait
 	fi
 
-- 
2.35.3


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

* Re: selftests: mptcp: check userspace mptcp_info: Tests Results
  2023-04-13  9:12 ` [PATCH mptcp-next v6 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
@ 2023-04-13 10:22   ` MPTCP CI
  0 siblings, 0 replies; 9+ messages in thread
From: MPTCP CI @ 2023-04-13 10:22 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): selftest_userspace_pm 🔴:
  - Task: https://cirrus-ci.com/task/4911013565300736
  - Summary: https://api.cirrus-ci.com/v1/artifact/task/4911013565300736/summary/summary.txt

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

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

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

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


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

end of thread, other threads:[~2023-04-13 10:22 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-13  9:12 [PATCH mptcp-next v6 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
2023-04-13  9:12 ` [PATCH mptcp-next v6 1/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Geliang Tang
2023-04-13  9:12 ` [PATCH mptcp-next v6 2/7] mptcp: don't clear userspace pm addr id Geliang Tang
2023-04-13  9:12 ` [PATCH mptcp-next v6 3/7] mptcp: add addr into userspace pm list Geliang Tang
2023-04-13  9:12 ` [PATCH mptcp-next v6 4/7] mptcp: close remote subflow when destroying it Geliang Tang
2023-04-13  9:12 ` [PATCH mptcp-next v6 5/7] mptcp: increase userspace pm add_addr_signaled Geliang Tang
2023-04-13  9:12 ` [PATCH mptcp-next v6 6/7] mptcp: update userspace pm subflows Geliang Tang
2023-04-13  9:12 ` [PATCH mptcp-next v6 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
2023-04-13 10:22   ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI

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.