MPTCP Linux Development
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox