* [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns
@ 2023-05-17 13:57 Geliang Tang
2023-05-30 13:15 ` Geliang Tang
` (6 more replies)
0 siblings, 7 replies; 14+ messages in thread
From: Geliang Tang @ 2023-05-17 13:57 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
v3:
- add two helpers.
- drop sched_cleanup().
- the first two patches should be merged between the commit
"selftests/bpf: Add mptcp sched structs" and
"selftests/bpf: Add bpf_first scheduler".
Geliang Tang (6):
selftests/bpf: add two mptcp netns helpers
selftests/bpf: use random netns name for mptcp
Squash to "selftests/bpf: Add bpf_first test"
Squash to "selftests/bpf: Add bpf_bkup test"
Squash to "selftests/bpf: Add bpf_rr test"
Squash to "selftests/bpf: Add bpf_red test"
.../testing/selftests/bpf/prog_tests/mptcp.c | 107 +++++++++++-------
1 file changed, 66 insertions(+), 41 deletions(-)
--
2.35.3
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH mptcp-next v3 1/6] selftests/bpf: add two mptcp netns helpers
@ 2023-05-30 13:15 ` Geliang Tang
0 siblings, 0 replies; 14+ messages in thread
From: Geliang Tang @ 2023-05-17 13:57 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Add two netns helpers for mptcp tests: create_netns() and
cleanup_netns(). Use them in test_base().
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
.../testing/selftests/bpf/prog_tests/mptcp.c | 29 +++++++++++++------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index de8b6c68fc30..d008388554de 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -142,6 +142,23 @@ static int run_test(int cgroup_fd, int server_fd, bool is_mptcp)
return err;
}
+static struct nstoken *create_netns(void)
+{
+ SYS(fail, "ip netns add %s", NS_TEST);
+ SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
+
+fail:
+ return open_netns(NS_TEST);
+}
+
+static void cleanup_netns(struct nstoken *nstoken)
+{
+ if (nstoken)
+ close_netns(nstoken);
+
+ SYS_NOFAIL("ip netns del %s &> /dev/null", NS_TEST);
+}
+
static void test_base(void)
{
struct nstoken *nstoken = NULL;
@@ -151,11 +168,8 @@ static void test_base(void)
if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup"))
return;
- SYS(fail, "ip netns add %s", NS_TEST);
- SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
-
- nstoken = open_netns(NS_TEST);
- if (!ASSERT_OK_PTR(nstoken, "open_netns"))
+ nstoken = create_netns();
+ if (!ASSERT_OK_PTR(nstoken, "create_netns"))
goto fail;
/* without MPTCP */
@@ -178,10 +192,7 @@ static void test_base(void)
close(server_fd);
fail:
- if (nstoken)
- close_netns(nstoken);
-
- SYS_NOFAIL("ip netns del " NS_TEST " &> /dev/null");
+ cleanup_netns(nstoken);
close(cgroup_fd);
}
--
2.35.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH mptcp-next v3 2/6] selftests/bpf: use random netns name for mptcp
@ 2023-05-30 13:15 ` Geliang Tang
0 siblings, 0 replies; 14+ messages in thread
From: Geliang Tang @ 2023-05-17 13:57 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Use rand() to generate a random netns name instead of using the fixed
name "mptcp_ns" for every test.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
tools/testing/selftests/bpf/prog_tests/mptcp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index d008388554de..ca348bab0afe 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -11,7 +11,7 @@
#include "mptcp_bpf_rr.skel.h"
#include "mptcp_bpf_red.skel.h"
-#define NS_TEST "mptcp_ns"
+char NS_TEST[32];
#ifndef TCP_CA_NAME_MAX
#define TCP_CA_NAME_MAX 16
@@ -144,6 +144,8 @@ static int run_test(int cgroup_fd, int server_fd, bool is_mptcp)
static struct nstoken *create_netns(void)
{
+ srand(time(NULL));
+ snprintf(NS_TEST, sizeof(NS_TEST), "mptcp_ns_%d", rand());
SYS(fail, "ip netns add %s", NS_TEST);
SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
--
2.35.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH mptcp-next v3 3/6] Squash to "selftests/bpf: Add bpf_first test"
2023-05-17 13:57 [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns Geliang Tang
2023-05-30 13:15 ` Geliang Tang
2023-05-30 13:15 ` Geliang Tang
@ 2023-05-17 13:57 ` Geliang Tang
2023-05-17 15:09 ` Matthieu Baerts
2023-05-17 13:57 ` [PATCH mptcp-next v3 4/6] Squash to "selftests/bpf: Add bpf_bkup test" Geliang Tang
` (3 subsequent siblings)
6 siblings, 1 reply; 14+ messages in thread
From: Geliang Tang @ 2023-05-17 13:57 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Run mptcp sched test in a dedicated netns.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
.../testing/selftests/bpf/prog_tests/mptcp.c | 50 +++++++++----------
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index ca348bab0afe..210ab5c30962 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -284,42 +284,39 @@ static void send_data(int lfd, int fd)
#define ADDR_1 "10.0.1.1"
#define ADDR_2 "10.0.1.2"
-static void sched_init(char *flags, char *sched)
+static struct nstoken *sched_init(char *flags, char *sched)
{
- char cmd[64];
-
- system("ip link add veth1 type veth peer name veth2");
- snprintf(cmd, sizeof(cmd), "ip addr add %s/24 dev veth1", ADDR_1);
- system(cmd);
- system("ip link set veth1 up");
- snprintf(cmd, sizeof(cmd), "ip addr add %s/24 dev veth2", ADDR_2);
- system(cmd);
- system("ip link set veth2 up");
-
- snprintf(cmd, sizeof(cmd), "ip mptcp endpoint add %s %s", ADDR_2, flags);
- system(cmd);
- snprintf(cmd, sizeof(cmd), "sysctl -qw net.mptcp.scheduler=%s", sched);
- system(cmd);
-}
+ struct nstoken *nstoken;
-static void sched_cleanup(void)
-{
- system("sysctl -qw net.mptcp.scheduler=default");
- system("ip mptcp endpoint flush");
- system("ip link del veth1");
+ nstoken = create_netns();
+ if (!ASSERT_OK_PTR(nstoken, "create_netns"))
+ goto fail;
+
+ SYS(fail, "ip -net %s link add veth1 type veth peer name veth2", NS_TEST);
+ SYS(fail, "ip -net %s addr add %s/24 dev veth1", NS_TEST, ADDR_1);
+ SYS(fail, "ip -net %s link set dev veth1 up", NS_TEST);
+ SYS(fail, "ip -net %s addr add %s/24 dev veth2", NS_TEST, ADDR_2);
+ SYS(fail, "ip -net %s link set dev veth2 up", NS_TEST);
+ SYS(fail, "ip -net %s mptcp endpoint add %s %s", NS_TEST, ADDR_2, flags);
+ SYS(fail, "ip netns exec %s sysctl -qw net.mptcp.scheduler=%s", NS_TEST, sched);
+
+fail:
+ return nstoken;
}
static int has_bytes_sent(char *addr)
{
- char cmd[64];
+ char cmd[128];
- snprintf(cmd, sizeof(cmd), "ss -it dst %s | grep -q 'bytes_sent:'", addr);
+ snprintf(cmd, sizeof(cmd), "ip netns exec %s ss -it dst %s | grep -q bytes_sent:",
+ NS_TEST, addr);
return system(cmd);
}
static void test_first(void)
{
struct mptcp_bpf_first *first_skel;
+ struct nstoken *nstoken = NULL;
int server_fd, client_fd;
struct bpf_link *link;
@@ -333,7 +330,9 @@ static void test_first(void)
return;
}
- sched_init("subflow", "bpf_first");
+ nstoken = sched_init("subflow", "bpf_first");
+ if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_first"))
+ goto fail;
server_fd = start_mptcp_server(AF_INET, ADDR_1, 0, 0);
client_fd = connect_to_fd(server_fd, 0);
@@ -343,7 +342,8 @@ static void test_first(void)
close(client_fd);
close(server_fd);
- sched_cleanup();
+fail:
+ cleanup_netns(nstoken);
bpf_link__destroy(link);
mptcp_bpf_first__destroy(first_skel);
}
--
2.35.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH mptcp-next v3 4/6] Squash to "selftests/bpf: Add bpf_bkup test"
2023-05-17 13:57 [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns Geliang Tang
` (2 preceding siblings ...)
2023-05-17 13:57 ` [PATCH mptcp-next v3 3/6] Squash to "selftests/bpf: Add bpf_first test" Geliang Tang
@ 2023-05-17 13:57 ` Geliang Tang
2023-05-17 13:57 ` [PATCH mptcp-next v3 5/6] Squash to "selftests/bpf: Add bpf_rr test" Geliang Tang
` (2 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Geliang Tang @ 2023-05-17 13:57 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Run mptcp sched test in a dedicated netns.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
tools/testing/selftests/bpf/prog_tests/mptcp.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index 210ab5c30962..88bef3dff24e 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -351,6 +351,7 @@ static void test_first(void)
static void test_bkup(void)
{
struct mptcp_bpf_bkup *bkup_skel;
+ struct nstoken *nstoken = NULL;
int server_fd, client_fd;
struct bpf_link *link;
@@ -364,7 +365,9 @@ static void test_bkup(void)
return;
}
- sched_init("subflow backup", "bpf_bkup");
+ nstoken = sched_init("subflow backup", "bpf_bkup");
+ if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_bkup"))
+ goto fail;
server_fd = start_mptcp_server(AF_INET, ADDR_1, 0, 0);
client_fd = connect_to_fd(server_fd, 0);
@@ -374,7 +377,8 @@ static void test_bkup(void)
close(client_fd);
close(server_fd);
- sched_cleanup();
+fail:
+ cleanup_netns(nstoken);
bpf_link__destroy(link);
mptcp_bpf_bkup__destroy(bkup_skel);
}
--
2.35.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH mptcp-next v3 5/6] Squash to "selftests/bpf: Add bpf_rr test"
2023-05-17 13:57 [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns Geliang Tang
` (3 preceding siblings ...)
2023-05-17 13:57 ` [PATCH mptcp-next v3 4/6] Squash to "selftests/bpf: Add bpf_bkup test" Geliang Tang
@ 2023-05-17 13:57 ` Geliang Tang
2023-05-17 15:09 ` Matthieu Baerts
2023-05-17 13:57 ` [PATCH mptcp-next v3 6/6] Squash to "selftests/bpf: Add bpf_red test" Geliang Tang
2023-05-17 15:08 ` [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns Matthieu Baerts
6 siblings, 1 reply; 14+ messages in thread
From: Geliang Tang @ 2023-05-17 13:57 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Run mptcp sched test in a dedicated netns.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
tools/testing/selftests/bpf/prog_tests/mptcp.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index 88bef3dff24e..912457da88eb 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -385,6 +385,7 @@ static void test_bkup(void)
static void test_rr(void)
{
+ struct nstoken *nstoken = NULL;
struct mptcp_bpf_rr *rr_skel;
int server_fd, client_fd;
struct bpf_link *link;
@@ -399,7 +400,9 @@ static void test_rr(void)
return;
}
- sched_init("subflow", "bpf_rr");
+ nstoken = sched_init("subflow", "bpf_rr");
+ if (!ASSERT_OK_PTR(nstoken, "sched_init:rr"))
+ goto fail;
server_fd = start_mptcp_server(AF_INET, ADDR_1, 0, 0);
client_fd = connect_to_fd(server_fd, 0);
@@ -409,7 +412,8 @@ static void test_rr(void)
close(client_fd);
close(server_fd);
- sched_cleanup();
+fail:
+ cleanup_netns(nstoken);
bpf_link__destroy(link);
mptcp_bpf_rr__destroy(rr_skel);
}
--
2.35.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH mptcp-next v3 6/6] Squash to "selftests/bpf: Add bpf_red test"
2023-05-17 13:57 [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns Geliang Tang
` (4 preceding siblings ...)
2023-05-17 13:57 ` [PATCH mptcp-next v3 5/6] Squash to "selftests/bpf: Add bpf_rr test" Geliang Tang
@ 2023-05-17 13:57 ` Geliang Tang
2023-05-17 15:24 ` Squash to "selftests/bpf: Add bpf_red test": Tests Results MPTCP CI
2023-05-17 15:08 ` [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns Matthieu Baerts
6 siblings, 1 reply; 14+ messages in thread
From: Geliang Tang @ 2023-05-17 13:57 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Run mptcp sched test in a dedicated netns.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
tools/testing/selftests/bpf/prog_tests/mptcp.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index 912457da88eb..77aab18c63a0 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -421,6 +421,7 @@ static void test_rr(void)
static void test_red(void)
{
struct mptcp_bpf_red *red_skel;
+ struct nstoken *nstoken = NULL;
int server_fd, client_fd;
struct bpf_link *link;
@@ -434,7 +435,9 @@ static void test_red(void)
return;
}
- sched_init("subflow", "bpf_red");
+ nstoken = sched_init("subflow", "bpf_red");
+ if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_red"))
+ goto fail;
server_fd = start_mptcp_server(AF_INET, ADDR_1, 0, 0);
client_fd = connect_to_fd(server_fd, 0);
@@ -444,7 +447,8 @@ static void test_red(void)
close(client_fd);
close(server_fd);
- sched_cleanup();
+fail:
+ cleanup_netns(nstoken);
bpf_link__destroy(link);
mptcp_bpf_red__destroy(red_skel);
}
--
2.35.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns
2023-05-17 13:57 [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns Geliang Tang
` (5 preceding siblings ...)
2023-05-17 13:57 ` [PATCH mptcp-next v3 6/6] Squash to "selftests/bpf: Add bpf_red test" Geliang Tang
@ 2023-05-17 15:08 ` Matthieu Baerts
6 siblings, 0 replies; 14+ messages in thread
From: Matthieu Baerts @ 2023-05-17 15:08 UTC (permalink / raw)
To: Geliang Tang, mptcp
Hi Geliang,
On 17/05/2023 15:57, Geliang Tang wrote:
> v3:
> - add two helpers.
> - drop sched_cleanup().
> - the first two patches should be merged between the commit
> "selftests/bpf: Add mptcp sched structs" and
> "selftests/bpf: Add bpf_first scheduler".
Thank you for this v3, it is clearer!
I just have two small last suggestions if you don't mind. The rest looks
good to me!
Cheers,
Matt
--
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH mptcp-next v3 1/6] selftests/bpf: add two mptcp netns helpers
2023-05-30 13:15 ` Geliang Tang
(?)
@ 2023-05-17 15:09 ` Matthieu Baerts
-1 siblings, 0 replies; 14+ messages in thread
From: Matthieu Baerts @ 2023-05-17 15:09 UTC (permalink / raw)
To: Geliang Tang, mptcp
Hi Geliang,
On 17/05/2023 15:57, Geliang Tang wrote:
> Add two netns helpers for mptcp tests: create_netns() and
> cleanup_netns(). Use them in test_base().
>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> .../testing/selftests/bpf/prog_tests/mptcp.c | 29 +++++++++++++------
> 1 file changed, 20 insertions(+), 9 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
> index de8b6c68fc30..d008388554de 100644
> --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
> +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
> @@ -142,6 +142,23 @@ static int run_test(int cgroup_fd, int server_fd, bool is_mptcp)
> return err;
> }
>
> +static struct nstoken *create_netns(void)
> +{
> + SYS(fail, "ip netns add %s", NS_TEST);
> + SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
> +
> +fail:
Should you not return NULL in case of error not to start the test if the
environment is not OK?
SYS(fail, "ip netns add %s", NS_TEST);
SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
return open_netns(NS_TEST);
fail:
return NULL;
> + return open_netns(NS_TEST);
> +}
Cheers,
Matt
--
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH mptcp-next v3 3/6] Squash to "selftests/bpf: Add bpf_first test"
2023-05-17 13:57 ` [PATCH mptcp-next v3 3/6] Squash to "selftests/bpf: Add bpf_first test" Geliang Tang
@ 2023-05-17 15:09 ` Matthieu Baerts
0 siblings, 0 replies; 14+ messages in thread
From: Matthieu Baerts @ 2023-05-17 15:09 UTC (permalink / raw)
To: Geliang Tang, mptcp
Hi Geliang,
On 17/05/2023 15:57, Geliang Tang wrote:
> Run mptcp sched test in a dedicated netns.
>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> .../testing/selftests/bpf/prog_tests/mptcp.c | 50 +++++++++----------
> 1 file changed, 25 insertions(+), 25 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
> index ca348bab0afe..210ab5c30962 100644
> --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
> +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
> @@ -284,42 +284,39 @@ static void send_data(int lfd, int fd)
> #define ADDR_1 "10.0.1.1"
> #define ADDR_2 "10.0.1.2"
>
> -static void sched_init(char *flags, char *sched)
> +static struct nstoken *sched_init(char *flags, char *sched)
> {
> - char cmd[64];
> -
> - system("ip link add veth1 type veth peer name veth2");
> - snprintf(cmd, sizeof(cmd), "ip addr add %s/24 dev veth1", ADDR_1);
> - system(cmd);
> - system("ip link set veth1 up");
> - snprintf(cmd, sizeof(cmd), "ip addr add %s/24 dev veth2", ADDR_2);
> - system(cmd);
> - system("ip link set veth2 up");
> -
> - snprintf(cmd, sizeof(cmd), "ip mptcp endpoint add %s %s", ADDR_2, flags);
> - system(cmd);
> - snprintf(cmd, sizeof(cmd), "sysctl -qw net.mptcp.scheduler=%s", sched);
> - system(cmd);
> -}
> + struct nstoken *nstoken;
>
> -static void sched_cleanup(void)
> -{
> - system("sysctl -qw net.mptcp.scheduler=default");
> - system("ip mptcp endpoint flush");
> - system("ip link del veth1");
> + nstoken = create_netns();
> + if (!ASSERT_OK_PTR(nstoken, "create_netns"))
> + goto fail;
> +
> + SYS(fail, "ip -net %s link add veth1 type veth peer name veth2", NS_TEST);
> + SYS(fail, "ip -net %s addr add %s/24 dev veth1", NS_TEST, ADDR_1);
> + SYS(fail, "ip -net %s link set dev veth1 up", NS_TEST);
> + SYS(fail, "ip -net %s addr add %s/24 dev veth2", NS_TEST, ADDR_2);
> + SYS(fail, "ip -net %s link set dev veth2 up", NS_TEST);
> + SYS(fail, "ip -net %s mptcp endpoint add %s %s", NS_TEST, ADDR_2, flags);
> + SYS(fail, "ip netns exec %s sysctl -qw net.mptcp.scheduler=%s", NS_TEST, sched);
> +
> +fail:
Same here, why not returning NULL in case of error to stop the test
earlier if it was not possible to setup the environment?
> + return nstoken;
> }
>
> static int has_bytes_sent(char *addr)
> {
> - char cmd[64];
> + char cmd[128];
>
> - snprintf(cmd, sizeof(cmd), "ss -it dst %s | grep -q 'bytes_sent:'", addr);
> + snprintf(cmd, sizeof(cmd), "ip netns exec %s ss -it dst %s | grep -q bytes_sent:",
> + NS_TEST, addr);
> return system(cmd);
> }
>
> static void test_first(void)
> {
> struct mptcp_bpf_first *first_skel;
> + struct nstoken *nstoken = NULL;
> int server_fd, client_fd;
> struct bpf_link *link;
>
> @@ -333,7 +330,9 @@ static void test_first(void)
> return;
> }
>
> - sched_init("subflow", "bpf_first");
> + nstoken = sched_init("subflow", "bpf_first");
> + if (!ASSERT_OK_PTR(nstoken, "sched_init:bpf_first"))
> + goto fail;
> server_fd = start_mptcp_server(AF_INET, ADDR_1, 0, 0);
> client_fd = connect_to_fd(server_fd, 0);
>
> @@ -343,7 +342,8 @@ static void test_first(void)
>
> close(client_fd);
> close(server_fd);
> - sched_cleanup();
> +fail:
> + cleanup_netns(nstoken);
> bpf_link__destroy(link);
> mptcp_bpf_first__destroy(first_skel);
> }
--
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH mptcp-next v3 5/6] Squash to "selftests/bpf: Add bpf_rr test"
2023-05-17 13:57 ` [PATCH mptcp-next v3 5/6] Squash to "selftests/bpf: Add bpf_rr test" Geliang Tang
@ 2023-05-17 15:09 ` Matthieu Baerts
0 siblings, 0 replies; 14+ messages in thread
From: Matthieu Baerts @ 2023-05-17 15:09 UTC (permalink / raw)
To: Geliang Tang, mptcp
Hi Geliang,
On 17/05/2023 15:57, Geliang Tang wrote:
> Run mptcp sched test in a dedicated netns.
>
> Signed-off-by: Geliang Tang <geliang.tang@suse.com>
> ---
> tools/testing/selftests/bpf/prog_tests/mptcp.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
> index 88bef3dff24e..912457da88eb 100644
> --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
> +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
> @@ -385,6 +385,7 @@ static void test_bkup(void)
>
> static void test_rr(void)
> {
> + struct nstoken *nstoken = NULL;
> struct mptcp_bpf_rr *rr_skel;
> int server_fd, client_fd;
> struct bpf_link *link;
> @@ -399,7 +400,9 @@ static void test_rr(void)
> return;
> }
>
> - sched_init("subflow", "bpf_rr");
> + nstoken = sched_init("subflow", "bpf_rr");
> + if (!ASSERT_OK_PTR(nstoken, "sched_init:rr"))
Small detail if you have to send a v4: can you add the "bpf_" prefix
like with the others?
sched_init:bpf_rr
Cheers,
Matt
> + goto fail;
> server_fd = start_mptcp_server(AF_INET, ADDR_1, 0, 0);
> client_fd = connect_to_fd(server_fd, 0);
>
> @@ -409,7 +412,8 @@ static void test_rr(void)
>
> close(client_fd);
> close(server_fd);
> - sched_cleanup();
> +fail:
> + cleanup_netns(nstoken);
> bpf_link__destroy(link);
> mptcp_bpf_rr__destroy(rr_skel);
> }
--
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Squash to "selftests/bpf: Add bpf_red test": Tests Results
2023-05-17 13:57 ` [PATCH mptcp-next v3 6/6] Squash to "selftests/bpf: Add bpf_red test" Geliang Tang
@ 2023-05-17 15:24 ` MPTCP CI
0 siblings, 0 replies; 14+ messages in thread
From: MPTCP CI @ 2023-05-17 15:24 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/5767691659640832
- Summary: https://api.cirrus-ci.com/v1/artifact/task/5767691659640832/summary/summary.txt
- KVM Validation: debug (except selftest_mptcp_join):
- Unstable: 3 failed test(s): packetdrill_dss packetdrill_mp_join selftest_diag 🔴:
- Task: https://cirrus-ci.com/task/6330641613062144
- Summary: https://api.cirrus-ci.com/v1/artifact/task/6330641613062144/summary/summary.txt
- KVM Validation: debug (only selftest_mptcp_join):
- Success! ✅:
- Task: https://cirrus-ci.com/task/4923266729508864
- Summary: https://api.cirrus-ci.com/v1/artifact/task/4923266729508864/summary/summary.txt
- KVM Validation: normal (only selftest_mptcp_join):
- Success! ✅:
- Task: https://cirrus-ci.com/task/5204741706219520
- Summary: https://api.cirrus-ci.com/v1/artifact/task/5204741706219520/summary/summary.txt
Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/0c3e05f46646
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] 14+ messages in thread
* [PATCH mptcp-next v3 1/6] selftests/bpf: add two mptcp netns helpers
@ 2023-05-30 13:15 ` Geliang Tang
0 siblings, 0 replies; 14+ messages in thread
From: Geliang Tang @ 2023-05-30 13:15 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Add two netns helpers for mptcp tests: create_netns() and
cleanup_netns(). Use them in test_base().
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
.../testing/selftests/bpf/prog_tests/mptcp.c | 29 +++++++++++++------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index de8b6c68fc30..d008388554de 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -142,6 +142,23 @@ static int run_test(int cgroup_fd, int server_fd, bool is_mptcp)
return err;
}
+static struct nstoken *create_netns(void)
+{
+ SYS(fail, "ip netns add %s", NS_TEST);
+ SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
+
+fail:
+ return open_netns(NS_TEST);
+}
+
+static void cleanup_netns(struct nstoken *nstoken)
+{
+ if (nstoken)
+ close_netns(nstoken);
+
+ SYS_NOFAIL("ip netns del %s &> /dev/null", NS_TEST);
+}
+
static void test_base(void)
{
struct nstoken *nstoken = NULL;
@@ -151,11 +168,8 @@ static void test_base(void)
if (!ASSERT_GE(cgroup_fd, 0, "test__join_cgroup"))
return;
- SYS(fail, "ip netns add %s", NS_TEST);
- SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
-
- nstoken = open_netns(NS_TEST);
- if (!ASSERT_OK_PTR(nstoken, "open_netns"))
+ nstoken = create_netns();
+ if (!ASSERT_OK_PTR(nstoken, "create_netns"))
goto fail;
/* without MPTCP */
@@ -178,10 +192,7 @@ static void test_base(void)
close(server_fd);
fail:
- if (nstoken)
- close_netns(nstoken);
-
- SYS_NOFAIL("ip netns del " NS_TEST " &> /dev/null");
+ cleanup_netns(nstoken);
close(cgroup_fd);
}
--
2.35.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH mptcp-next v3 2/6] selftests/bpf: use random netns name for mptcp
@ 2023-05-30 13:15 ` Geliang Tang
0 siblings, 0 replies; 14+ messages in thread
From: Geliang Tang @ 2023-05-30 13:15 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
Use rand() to generate a random netns name instead of using the fixed
name "mptcp_ns" for every test.
Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
tools/testing/selftests/bpf/prog_tests/mptcp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c
index d008388554de..ca348bab0afe 100644
--- a/tools/testing/selftests/bpf/prog_tests/mptcp.c
+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c
@@ -11,7 +11,7 @@
#include "mptcp_bpf_rr.skel.h"
#include "mptcp_bpf_red.skel.h"
-#define NS_TEST "mptcp_ns"
+char NS_TEST[32];
#ifndef TCP_CA_NAME_MAX
#define TCP_CA_NAME_MAX 16
@@ -144,6 +144,8 @@ static int run_test(int cgroup_fd, int server_fd, bool is_mptcp)
static struct nstoken *create_netns(void)
{
+ srand(time(NULL));
+ snprintf(NS_TEST, sizeof(NS_TEST), "mptcp_ns_%d", rand());
SYS(fail, "ip netns add %s", NS_TEST);
SYS(fail, "ip -net %s link set dev lo up", NS_TEST);
--
2.35.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-05-30 13:15 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-17 13:57 [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns Geliang Tang
2023-05-17 13:57 ` [PATCH mptcp-next v3 1/6] selftests/bpf: add two mptcp netns helpers Geliang Tang
2023-05-30 13:15 ` Geliang Tang
2023-05-17 15:09 ` Matthieu Baerts
2023-05-17 13:57 ` [PATCH mptcp-next v3 2/6] selftests/bpf: use random netns name for mptcp Geliang Tang
2023-05-30 13:15 ` Geliang Tang
2023-05-17 13:57 ` [PATCH mptcp-next v3 3/6] Squash to "selftests/bpf: Add bpf_first test" Geliang Tang
2023-05-17 15:09 ` Matthieu Baerts
2023-05-17 13:57 ` [PATCH mptcp-next v3 4/6] Squash to "selftests/bpf: Add bpf_bkup test" Geliang Tang
2023-05-17 13:57 ` [PATCH mptcp-next v3 5/6] Squash to "selftests/bpf: Add bpf_rr test" Geliang Tang
2023-05-17 15:09 ` Matthieu Baerts
2023-05-17 13:57 ` [PATCH mptcp-next v3 6/6] Squash to "selftests/bpf: Add bpf_red test" Geliang Tang
2023-05-17 15:24 ` Squash to "selftests/bpf: Add bpf_red test": Tests Results MPTCP CI
2023-05-17 15:08 ` [PATCH mptcp-next v3 0/6] run sched tests in a dedicated ns 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.