* [PATCH mptcp-next v4 0/7] mptcp: update userspace pm mptcp_info fields
@ 2023-03-14 3:01 Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 1/7] mptcp: don't clear userspace pm addr id Geliang Tang
` (6 more replies)
0 siblings, 7 replies; 13+ messages in thread
From: Geliang Tang @ 2023-03-14 3:01 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
v4:
- add more patches
- add selftests
v3:
- update local_addr_used and add_addr_signaled
v2:
- hold pm locks
Geliang Tang (7):
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
mptcp: make userspace_pm_append_new_local_addr static
selftests: mptcp: check userspace mptcp_info
net/mptcp/pm.c | 21 +++++++++---
net/mptcp/pm_netlink.c | 2 +-
net/mptcp/pm_userspace.c | 32 +++++++++++++++++--
net/mptcp/protocol.h | 2 --
.../testing/selftests/net/mptcp/mptcp_join.sh | 10 +++++-
5 files changed, 56 insertions(+), 11 deletions(-)
--
2.35.3
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH mptcp-next v4 1/7] mptcp: don't clear userspace pm addr id
2023-03-14 3:01 [PATCH mptcp-next v4 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
@ 2023-03-14 3:01 ` Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 2/7] mptcp: add addr into userspace pm list Geliang Tang
` (5 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Geliang Tang @ 2023-03-14 3:01 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 67995cb4f8b8..df15d846e7db 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 a02d3cbf2a1b..fe4c29a17466 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] 13+ messages in thread
* [PATCH mptcp-next v4 2/7] mptcp: add addr into userspace pm list
2023-03-14 3:01 [PATCH mptcp-next v4 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 1/7] mptcp: don't clear userspace pm addr id Geliang Tang
@ 2023-03-14 3:01 ` Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 3/7] mptcp: close remote subflow when destroying it Geliang Tang
` (4 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Geliang Tang @ 2023-03-14 3:01 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 fe4c29a17466..49f41a040485 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] 13+ messages in thread
* [PATCH mptcp-next v4 3/7] mptcp: close remote subflow when destroying it
2023-03-14 3:01 [PATCH mptcp-next v4 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 1/7] mptcp: don't clear userspace pm addr id Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 2/7] mptcp: add addr into userspace pm list Geliang Tang
@ 2023-03-14 3:01 ` Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 4/7] mptcp: increase userspace pm add_addr_signaled Geliang Tang
` (3 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Geliang Tang @ 2023-03-14 3:01 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 | 15 +++++++++++++++
tools/testing/selftests/net/mptcp/mptcp_join.sh | 2 +-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 49f41a040485..ebadfafaa203 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -429,6 +429,21 @@ 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, *tmp;
+
+ spin_lock_bh(&msk->pm.lock);
+ list_for_each_entry_safe(entry, tmp, &msk->pm.userspace_pm_local_addr_list, list) {
+ if (mptcp_addresses_equal(&entry->addr, &addr_l, false)) {
+ struct mptcp_rm_list list = { .nr = 0 };
+
+ list.ids[list.nr++] = entry->addr.id;
+ mptcp_pm_remove_addr(msk, &list);
+ list_del_rcu(&entry->list);
+ msk->pm.local_addr_used--;
+ break;
+ }
+ }
+ spin_unlock_bh(&msk->pm.lock);
mptcp_subflow_shutdown(sk, ssk, RCV_SHUTDOWN | SEND_SHUTDOWN);
mptcp_close_ssk(sk, ssk, subflow);
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index fafd19ec7e1f..506120401abe 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3123,7 +3123,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] 13+ messages in thread
* [PATCH mptcp-next v4 4/7] mptcp: increase userspace pm add_addr_signaled
2023-03-14 3:01 [PATCH mptcp-next v4 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
` (2 preceding siblings ...)
2023-03-14 3:01 ` [PATCH mptcp-next v4 3/7] mptcp: close remote subflow when destroying it Geliang Tang
@ 2023-03-14 3:01 ` Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 5/7] mptcp: update userspace pm subflows Geliang Tang
` (2 subsequent siblings)
6 siblings, 0 replies; 13+ messages in thread
From: Geliang Tang @ 2023-03-14 3:01 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Increase add_addr_signaled counter in mptcp_nl_cmd_announce() when the
userspace 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 ebadfafaa203..1e5c2753c4ea 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)) {
+ 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] 13+ messages in thread
* [PATCH mptcp-next v4 5/7] mptcp: update userspace pm subflows
2023-03-14 3:01 [PATCH mptcp-next v4 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
` (3 preceding siblings ...)
2023-03-14 3:01 ` [PATCH mptcp-next v4 4/7] mptcp: increase userspace pm add_addr_signaled Geliang Tang
@ 2023-03-14 3:01 ` Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 6/7] mptcp: make userspace_pm_append_new_local_addr static Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
6 siblings, 0 replies; 13+ messages in thread
From: Geliang Tang @ 2023-03-14 3:01 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 1e5c2753c4ea..a2fce8486d60 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -310,6 +310,7 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
spin_lock_bh(&msk->pm.lock);
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] 13+ messages in thread
* [PATCH mptcp-next v4 6/7] mptcp: make userspace_pm_append_new_local_addr static
2023-03-14 3:01 [PATCH mptcp-next v4 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
` (4 preceding siblings ...)
2023-03-14 3:01 ` [PATCH mptcp-next v4 5/7] mptcp: update userspace pm subflows Geliang Tang
@ 2023-03-14 3:01 ` Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
6 siblings, 0 replies; 13+ messages in thread
From: Geliang Tang @ 2023-03-14 3:01 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
mptcp_userspace_pm_append_new_local_addr is only used in pm_userspace.c,
so make it static.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
net/mptcp/pm_userspace.c | 4 ++--
net/mptcp/protocol.h | 2 --
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index a2fce8486d60..d2749225f391 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -25,8 +25,8 @@ void mptcp_free_local_addr_list(struct mptcp_sock *msk)
}
}
-int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
- struct mptcp_pm_addr_entry *entry)
+static int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
+ struct mptcp_pm_addr_entry *entry)
{
DECLARE_BITMAP(id_bitmap, MPTCP_PM_MAX_ADDR_ID + 1);
struct mptcp_pm_addr_entry *match = NULL;
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index 46962a2581b4..421e587a4d62 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -849,8 +849,6 @@ int mptcp_pm_remove_subflow(struct mptcp_sock *msk, const struct mptcp_rm_list *
void mptcp_pm_remove_addrs_and_subflows(struct mptcp_sock *msk,
struct list_head *rm_list);
-int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk,
- struct mptcp_pm_addr_entry *entry);
void mptcp_free_local_addr_list(struct mptcp_sock *msk);
int mptcp_nl_cmd_announce(struct sk_buff *skb, struct genl_info *info);
int mptcp_nl_cmd_remove(struct sk_buff *skb, struct genl_info *info);
--
2.35.3
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH mptcp-next v4 7/7] selftests: mptcp: check userspace mptcp_info
2023-03-14 3:01 [PATCH mptcp-next v4 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
` (5 preceding siblings ...)
2023-03-14 3:01 ` [PATCH mptcp-next v4 6/7] mptcp: make userspace_pm_append_new_local_addr static Geliang Tang
@ 2023-03-14 3:01 ` Geliang Tang
2023-03-14 4:23 ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI
6 siblings, 1 reply; 13+ messages in thread
From: Geliang Tang @ 2023-03-14 3:01 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
This patch invokes chk_mptcp_info to check userspace PM mptcp_info.
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 506120401abe..63ceaa613bdc 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -842,8 +842,10 @@ 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
+ chk_mptcp_info subflows_0
fi
counter=$((counter + 1))
@@ -906,11 +908,13 @@ 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
+ chk_mptcp_info subflows_0
fi
counter=$((counter + 1))
add_nr_ns2=$((add_nr_ns2 - 1))
@@ -3148,6 +3152,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] 13+ messages in thread
* [PATCH mptcp-next v5 7/7] selftests: mptcp: check userspace mptcp_info
@ 2023-03-14 7:31 Geliang Tang
2023-03-14 8:23 ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI
0 siblings, 1 reply; 13+ messages in thread
From: Geliang Tang @ 2023-03-14 7:31 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 506120401abe..8ca5accd5c82 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,11 +909,14 @@ 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
+ sleep 1
+ chk_mptcp_info subflows_0
fi
counter=$((counter + 1))
add_nr_ns2=$((add_nr_ns2 - 1))
@@ -3148,6 +3154,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] 13+ messages in thread
* [PATCH mptcp-next v6 7/7] selftests: mptcp: check userspace mptcp_info
@ 2023-04-13 9:12 Geliang Tang
2023-04-13 10:22 ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI
0 siblings, 1 reply; 13+ 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] 13+ messages in thread
* [PATCH mptcp-next v7 7/7] selftests: mptcp: check userspace mptcp_info
@ 2023-04-14 9:11 Geliang Tang
2023-04-14 9:52 ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI
2023-04-14 12:07 ` MPTCP CI
0 siblings, 2 replies; 13+ messages in thread
From: Geliang Tang @ 2023-04-14 9:11 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>
---
.../testing/selftests/net/mptcp/mptcp_join.sh | 22 ++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index fafd19ec7e1f..bc47b99f47e5 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -842,8 +842,20 @@ 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
+ addr="::ffff:$addr"
+ 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 dsf lip $addr lport $sp \
+ rip $da rport $dp token $tk
+ sleep 1
+ chk_mptcp_info subflows_0
fi
counter=$((counter + 1))
@@ -906,11 +918,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 rem token $tk id $id
ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \
rip $da rport $dp token $tk
+ sleep 1
+ chk_mptcp_info subflows_0
fi
counter=$((counter + 1))
add_nr_ns2=$((add_nr_ns2 - 1))
@@ -3123,7 +3139,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
}
@@ -3148,6 +3164,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] 13+ messages in thread
* Re: selftests: mptcp: check userspace mptcp_info: Tests Results
2023-04-14 9:11 [PATCH mptcp-next v7 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
@ 2023-04-14 9:52 ` MPTCP CI
2023-04-14 12:07 ` MPTCP CI
1 sibling, 0 replies; 13+ messages in thread
From: MPTCP CI @ 2023-04-14 9:52 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):
- Script error! ❓:
- Task: https://cirrus-ci.com/task/5081880182128640
- Summary: https://api.cirrus-ci.com/v1/artifact/task/5081880182128640/summary/summary.txt
- KVM Validation: normal (only selftest_mptcp_join):
- Script error! ❓:
- Task: https://cirrus-ci.com/task/6207780088971264
- Summary: https://api.cirrus-ci.com/v1/artifact/task/6207780088971264/summary/summary.txt
- KVM Validation: debug (only selftest_mptcp_join):
- Script error! ❓:
- Task: https://cirrus-ci.com/task/5926305112260608
- Summary: https://api.cirrus-ci.com/v1/artifact/task/5926305112260608/summary/summary.txt
- KVM Validation: debug (except selftest_mptcp_join):
- Script error! ❓:
- Task: https://cirrus-ci.com/task/4800405205417984
- Summary: https://api.cirrus-ci.com/v1/artifact/task/4800405205417984/summary/summary.txt
Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/aa4e473b1157
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] 13+ messages in thread
* Re: selftests: mptcp: check userspace mptcp_info: Tests Results
2023-04-14 9:11 [PATCH mptcp-next v7 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
2023-04-14 9:52 ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI
@ 2023-04-14 12:07 ` MPTCP CI
1 sibling, 0 replies; 13+ messages in thread
From: MPTCP CI @ 2023-04-14 12:07 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):
- Success! ✅:
- Task: https://cirrus-ci.com/task/6414330460110848
- Summary: https://api.cirrus-ci.com/v1/artifact/task/6414330460110848/summary/summary.txt
- KVM Validation: debug (except selftest_mptcp_join):
- Success! ✅:
- Task: https://cirrus-ci.com/task/6132855483400192
- Summary: https://api.cirrus-ci.com/v1/artifact/task/6132855483400192/summary/summary.txt
- KVM Validation: debug (only selftest_mptcp_join):
- Unstable: 1 failed test(s): selftest_mptcp_join 🔴:
- Task: https://cirrus-ci.com/task/5569905529978880
- Summary: https://api.cirrus-ci.com/v1/artifact/task/5569905529978880/summary/summary.txt
- KVM Validation: normal (only selftest_mptcp_join):
- Success! ✅:
- Task: https://cirrus-ci.com/task/5006955576557568
- Summary: https://api.cirrus-ci.com/v1/artifact/task/5006955576557568/summary/summary.txt
Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/7239eac41312
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] 13+ messages in thread
end of thread, other threads:[~2023-04-14 12:07 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-14 3:01 [PATCH mptcp-next v4 0/7] mptcp: update userspace pm mptcp_info fields Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 1/7] mptcp: don't clear userspace pm addr id Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 2/7] mptcp: add addr into userspace pm list Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 3/7] mptcp: close remote subflow when destroying it Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 4/7] mptcp: increase userspace pm add_addr_signaled Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 5/7] mptcp: update userspace pm subflows Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 6/7] mptcp: make userspace_pm_append_new_local_addr static Geliang Tang
2023-03-14 3:01 ` [PATCH mptcp-next v4 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
2023-03-14 4:23 ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI
2023-03-14 7:31 [PATCH mptcp-next v5 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
2023-03-14 8:23 ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI
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
2023-04-14 9:11 [PATCH mptcp-next v7 7/7] selftests: mptcp: check userspace mptcp_info Geliang Tang
2023-04-14 9:52 ` selftests: mptcp: check userspace mptcp_info: Tests Results MPTCP CI
2023-04-14 12:07 ` 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.