From: Geliang Tang <geliang@kernel.org>
To: Andrii Nakryiko <andrii@kernel.org>,
Eduard Zingerman <eddyz87@gmail.com>,
Mykola Lysenko <mykolal@fb.com>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Martin KaFai Lau <martin.lau@linux.dev>,
Song Liu <song@kernel.org>,
Yonghong Song <yonghong.song@linux.dev>,
John Fastabend <john.fastabend@gmail.com>,
KP Singh <kpsingh@kernel.org>,
Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>,
Jiri Olsa <jolsa@kernel.org>, Shuah Khan <shuah@kernel.org>
Cc: Geliang Tang <tanggeliang@kylinos.cn>,
bpf@vger.kernel.org, mptcp@lists.linux.dev,
linux-kselftest@vger.kernel.org,
Geliang Tang <geliang@kernel.org>
Subject: [PATCH bpf-next 3/9] selftests/bpf: Drop duplicate create_netns
Date: Wed, 15 May 2024 13:59:30 +0800 [thread overview]
Message-ID: <d145d1fcfc1a58eaa7948e109583d0087cc46ee1.1715751995.git.tanggeliang@kylinos.cn> (raw)
In-Reply-To: <cover.1715751995.git.tanggeliang@kylinos.cn>
From: Geliang Tang <tanggeliang@kylinos.cn>
This patch drops the duplicate local functions create_netns() in
bind_perm.c, bpf_iter_setsockopt.c, setget_sockopt.c, sock_fields.c
and tcp_hdr_options.c and uses unshare_netns() instead.
A new helper create_netns() will be added in network_helpers.c as a
public one.
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
tools/testing/selftests/bpf/prog_tests/bind_perm.c | 11 ++---------
.../selftests/bpf/prog_tests/bpf_iter_setsockopt.c | 13 +------------
.../selftests/bpf/prog_tests/setget_sockopt.c | 10 ++--------
.../testing/selftests/bpf/prog_tests/sock_fields.c | 13 +------------
.../selftests/bpf/prog_tests/tcp_hdr_options.c | 13 +------------
5 files changed, 7 insertions(+), 53 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/bind_perm.c b/tools/testing/selftests/bpf/prog_tests/bind_perm.c
index f7cd129cb82b..bc80c2773b67 100644
--- a/tools/testing/selftests/bpf/prog_tests/bind_perm.c
+++ b/tools/testing/selftests/bpf/prog_tests/bind_perm.c
@@ -7,16 +7,9 @@
#include "test_progs.h"
#include "cap_helpers.h"
+#include "network_helpers.h"
#include "bind_perm.skel.h"
-static int create_netns(void)
-{
- if (!ASSERT_OK(unshare(CLONE_NEWNET), "create netns"))
- return -1;
-
- return 0;
-}
-
void try_bind(int family, int port, int expected_errno)
{
struct sockaddr_storage addr = {};
@@ -54,7 +47,7 @@ void test_bind_perm(void)
__u64 old_caps = 0;
int cgroup_fd;
- if (create_netns())
+ if (unshare_netns())
return;
cgroup_fd = test__join_cgroup("/bind_perm");
diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c b/tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c
index b52ff8ce34db..eff5d445896b 100644
--- a/tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c
+++ b/tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c
@@ -8,17 +8,6 @@
#include "bpf_cubic.skel.h"
#include "bpf_iter_setsockopt.skel.h"
-static int create_netns(void)
-{
- if (!ASSERT_OK(unshare(CLONE_NEWNET), "create netns"))
- return -1;
-
- if (!ASSERT_OK(system("ip link set dev lo up"), "bring up lo"))
- return -1;
-
- return 0;
-}
-
static unsigned int set_bpf_cubic(int *fds, unsigned int nr_fds)
{
unsigned int i;
@@ -187,7 +176,7 @@ void serial_test_bpf_iter_setsockopt(void)
struct bpf_link *cubic_link = NULL;
struct bpf_link *dctcp_link = NULL;
- if (create_netns())
+ if (unshare_netns())
return;
/* Load iter_skel */
diff --git a/tools/testing/selftests/bpf/prog_tests/setget_sockopt.c b/tools/testing/selftests/bpf/prog_tests/setget_sockopt.c
index 7d4a9b3d3722..a44b6e3cec15 100644
--- a/tools/testing/selftests/bpf/prog_tests/setget_sockopt.c
+++ b/tools/testing/selftests/bpf/prog_tests/setget_sockopt.c
@@ -20,14 +20,8 @@ static const char addr6_str[] = "::1";
static struct setget_sockopt *skel;
static int cg_fd;
-static int create_netns(void)
+static int create_veth(void)
{
- if (!ASSERT_OK(unshare(CLONE_NEWNET), "create netns"))
- return -1;
-
- if (!ASSERT_OK(system("ip link set dev lo up"), "set lo up"))
- return -1;
-
if (!ASSERT_OK(system("ip link add dev binddevtest1 type veth peer name binddevtest2"),
"add veth"))
return -1;
@@ -160,7 +154,7 @@ void test_setget_sockopt(void)
if (cg_fd < 0)
return;
- if (create_netns())
+ if (unshare_netns() || create_veth())
goto done;
skel = setget_sockopt__open();
diff --git a/tools/testing/selftests/bpf/prog_tests/sock_fields.c b/tools/testing/selftests/bpf/prog_tests/sock_fields.c
index 7d23166c77af..3499f54b14d1 100644
--- a/tools/testing/selftests/bpf/prog_tests/sock_fields.c
+++ b/tools/testing/selftests/bpf/prog_tests/sock_fields.c
@@ -45,17 +45,6 @@ static __u64 child_cg_id;
static int linum_map_fd;
static __u32 duration;
-static bool create_netns(void)
-{
- if (!ASSERT_OK(unshare(CLONE_NEWNET), "create netns"))
- return false;
-
- if (!ASSERT_OK(system("ip link set dev lo up"), "bring up lo"))
- return false;
-
- return true;
-}
-
static void print_sk(const struct bpf_sock *sk, const char *prefix)
{
char src_ip4[24], dst_ip4[24];
@@ -350,7 +339,7 @@ void serial_test_sock_fields(void)
struct bpf_link *link;
/* Use a dedicated netns to have a fixed listen port */
- if (!create_netns())
+ if (unshare_netns())
return;
/* Create a cgroup, get fd, and join it */
diff --git a/tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c b/tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
index 56685fc03c7e..6b4d8fd0f087 100644
--- a/tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
+++ b/tools/testing/selftests/bpf/prog_tests/tcp_hdr_options.c
@@ -40,17 +40,6 @@ struct sk_fds {
int active_lport;
};
-static int create_netns(void)
-{
- if (!ASSERT_OK(unshare(CLONE_NEWNET), "create netns"))
- return -1;
-
- if (!ASSERT_OK(system("ip link set dev lo up"), "run ip cmd"))
- return -1;
-
- return 0;
-}
-
static void print_hdr_stg(const struct hdr_stg *hdr_stg, const char *prefix)
{
fprintf(stderr, "%s{active:%u, resend_syn:%u, syncookie:%u, fastopen:%u}\n",
@@ -548,7 +537,7 @@ void test_tcp_hdr_options(void)
if (!test__start_subtest(tests[i].desc))
continue;
- if (create_netns())
+ if (unshare_netns())
break;
tests[i].run();
--
2.43.0
next prev parent reply other threads:[~2024-05-15 6:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-15 5:59 [PATCH bpf-next 0/9] add netns helpers Geliang Tang
2024-05-15 5:59 ` [PATCH bpf-next 1/9] selftests/bpf: Add unshare_netns helper Geliang Tang
2024-05-15 5:59 ` [PATCH bpf-next 2/9] selftests/bpf: Use " Geliang Tang
2024-05-15 5:59 ` Geliang Tang [this message]
2024-05-15 5:59 ` [PATCH bpf-next 4/9] selftests/bpf: Export create_netns helper Geliang Tang
2024-05-15 5:59 ` [PATCH bpf-next 5/9] selftests/bpf: Use " Geliang Tang
2024-05-15 5:59 ` [PATCH bpf-next 6/9] selftests/bpf: Export cleanup_netns helper Geliang Tang
2024-05-15 5:59 ` [PATCH bpf-next 7/9] selftests/bpf: Use " Geliang Tang
2024-05-15 5:59 ` [PATCH bpf-next 8/9] selftests/bpf: Use netns helpers in lwt tests Geliang Tang
2024-05-15 5:59 ` [PATCH bpf-next 9/9] selftests/bpf: Use netns helpers in test_tunnel Geliang Tang
2024-05-15 9:00 ` Geliang Tang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d145d1fcfc1a58eaa7948e109583d0087cc46ee1.1715751995.git.tanggeliang@kylinos.cn \
--to=geliang@kernel.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=mptcp@lists.linux.dev \
--cc=mykolal@fb.com \
--cc=sdf@google.com \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=tanggeliang@kylinos.cn \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).