Skip to content

Commit 7c59ba4

Browse files
Geliang Tangintel-lab-lkp
authored andcommitted
selftests/bpf: Add mptcp_subflow bpf_iter subtest
This patch adds a subtest named test_bpf_iter to load and verify the newly added mptcp_subflow type bpf_iter example in test_mptcp. Use endpoint_init() to add a new subflow endpoint. Use send_byte() to trigger the tracing program for mptcp_subflow_get_send. Signed-off-by: Geliang Tang <[email protected]>
1 parent 075a234 commit 7c59ba4

File tree

1 file changed

+55
-0
lines changed
  • tools/testing/selftests/bpf/prog_tests

1 file changed

+55
-0
lines changed

tools/testing/selftests/bpf/prog_tests/mptcp.c

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "mptcp_sock.skel.h"
1111
#include "mptcpify.skel.h"
1212
#include "mptcp_subflow.skel.h"
13+
#include "mptcp_bpf_iter.skel.h"
1314
#include "mptcp_bpf_first.skel.h"
1415
#include "mptcp_bpf_bkup.skel.h"
1516
#include "mptcp_bpf_rr.skel.h"
@@ -470,6 +471,58 @@ static void test_subflow(void)
470471
close(cgroup_fd);
471472
}
472473

474+
static void run_bpf_iter(void)
475+
{
476+
int server_fd, client_fd;
477+
478+
server_fd = start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0);
479+
if (!ASSERT_GE(server_fd, 0, "start_mptcp_server"))
480+
return;
481+
482+
client_fd = connect_to_fd(server_fd, 0);
483+
if (!ASSERT_GE(client_fd, 0, "connect to fd"))
484+
goto close_server;
485+
486+
send_byte(client_fd);
487+
wait_for_new_subflows(client_fd);
488+
send_byte(client_fd);
489+
490+
close(client_fd);
491+
close_server:
492+
close(server_fd);
493+
}
494+
495+
static void test_bpf_iter(void)
496+
{
497+
struct mptcp_bpf_iter *skel;
498+
struct nstoken *nstoken;
499+
int err;
500+
501+
skel = mptcp_bpf_iter__open_and_load();
502+
if (!ASSERT_OK_PTR(skel, "skel_open_load: mptcp_iter"))
503+
return;
504+
505+
skel->bss->pid = getpid();
506+
507+
err = mptcp_bpf_iter__attach(skel);
508+
if (!ASSERT_OK(err, "skel_attach: mptcp_iter"))
509+
goto skel_destroy;
510+
511+
nstoken = create_netns();
512+
if (!ASSERT_OK_PTR(nstoken, "create_netns: mptcp_iter"))
513+
goto skel_destroy;
514+
515+
if (endpoint_init("subflow") < 0)
516+
goto close_netns;
517+
518+
run_bpf_iter();
519+
520+
close_netns:
521+
cleanup_netns(nstoken);
522+
skel_destroy:
523+
mptcp_bpf_iter__destroy(skel);
524+
}
525+
473526
static struct nstoken *sched_init(char *flags, char *sched)
474527
{
475528
struct nstoken *nstoken;
@@ -651,6 +704,8 @@ void test_mptcp(void)
651704
test_mptcpify();
652705
if (test__start_subtest("subflow"))
653706
test_subflow();
707+
if (test__start_subtest("bpf_iter"))
708+
test_bpf_iter();
654709
if (test__start_subtest("default"))
655710
test_default();
656711
if (test__start_subtest("first"))

0 commit comments

Comments
 (0)