|
10 | 10 | #include "mptcp_sock.skel.h"
|
11 | 11 | #include "mptcpify.skel.h"
|
12 | 12 | #include "mptcp_subflow.skel.h"
|
| 13 | +#include "mptcp_bpf_iter.skel.h" |
13 | 14 | #include "mptcp_bpf_first.skel.h"
|
14 | 15 | #include "mptcp_bpf_bkup.skel.h"
|
15 | 16 | #include "mptcp_bpf_rr.skel.h"
|
@@ -470,6 +471,58 @@ static void test_subflow(void)
|
470 | 471 | close(cgroup_fd);
|
471 | 472 | }
|
472 | 473 |
|
| 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 | + |
473 | 526 | static struct nstoken *sched_init(char *flags, char *sched)
|
474 | 527 | {
|
475 | 528 | struct nstoken *nstoken;
|
@@ -651,6 +704,8 @@ void test_mptcp(void)
|
651 | 704 | test_mptcpify();
|
652 | 705 | if (test__start_subtest("subflow"))
|
653 | 706 | test_subflow();
|
| 707 | + if (test__start_subtest("bpf_iter")) |
| 708 | + test_bpf_iter(); |
654 | 709 | if (test__start_subtest("default"))
|
655 | 710 | test_default();
|
656 | 711 | if (test__start_subtest("first"))
|
|
0 commit comments