Skip to content

Commit eddd260

Browse files
Geliang Tangmatttbe
authored andcommitted
selftests/bpf: More endpoints for endpoint_init
This patch changes ADDR_2 from "10.0.1.2" to "10.0.2.1", and adds two more IPv4 test addresses ADDR_3 - ADDR_4, four IPv6 addresses ADDR6_1 - ADDR6_4. Add a new helper address_init() to initialize all these addresses. Add a new parameter "endpoints" for endpoint_init() to control how many endpoints are used for the tests. This makes it more flexible. Update the parameters of endpoint_init() in test_subflow(). Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> Reviewed-by: Mat Martineau <martineau@kernel.org>
1 parent 10f3725 commit eddd260

File tree

1 file changed

+50
-6
lines changed
  • tools/testing/selftests/bpf/prog_tests

1 file changed

+50
-6
lines changed

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

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@
1414

1515
#define NS_TEST "mptcp_ns"
1616
#define ADDR_1 "10.0.1.1"
17-
#define ADDR_2 "10.0.1.2"
17+
#define ADDR_2 "10.0.2.1"
18+
#define ADDR_3 "10.0.3.1"
19+
#define ADDR_4 "10.0.4.1"
20+
#define ADDR6_1 "dead:beef:1::1"
21+
#define ADDR6_2 "dead:beef:2::1"
22+
#define ADDR6_3 "dead:beef:3::1"
23+
#define ADDR6_4 "dead:beef:4::1"
1824
#define PORT_1 10001
1925

2026
#ifndef IPPROTO_MPTCP
@@ -322,22 +328,60 @@ static void test_mptcpify(void)
322328
close(cgroup_fd);
323329
}
324330

325-
static int endpoint_init(char *flags)
331+
static int address_init(void)
326332
{
327333
SYS(fail, "ip -net %s link add veth1 type veth peer name veth2", NS_TEST);
328334
SYS(fail, "ip -net %s addr add %s/24 dev veth1", NS_TEST, ADDR_1);
335+
SYS(fail, "ip -net %s addr add %s/64 dev veth1 nodad", NS_TEST, ADDR6_1);
329336
SYS(fail, "ip -net %s link set dev veth1 up", NS_TEST);
330337
SYS(fail, "ip -net %s addr add %s/24 dev veth2", NS_TEST, ADDR_2);
338+
SYS(fail, "ip -net %s addr add %s/64 dev veth2 nodad", NS_TEST, ADDR6_2);
331339
SYS(fail, "ip -net %s link set dev veth2 up", NS_TEST);
332-
if (SYS_NOFAIL("ip -net %s mptcp endpoint add %s %s", NS_TEST, ADDR_2, flags)) {
340+
341+
SYS(fail, "ip -net %s link add veth3 type veth peer name veth4", NS_TEST);
342+
SYS(fail, "ip -net %s addr add %s/24 dev veth3", NS_TEST, ADDR_3);
343+
SYS(fail, "ip -net %s addr add %s/64 dev veth3 nodad", NS_TEST, ADDR6_3);
344+
SYS(fail, "ip -net %s link set dev veth3 up", NS_TEST);
345+
SYS(fail, "ip -net %s addr add %s/24 dev veth4", NS_TEST, ADDR_4);
346+
SYS(fail, "ip -net %s addr add %s/64 dev veth4 nodad", NS_TEST, ADDR6_4);
347+
SYS(fail, "ip -net %s link set dev veth4 up", NS_TEST);
348+
349+
return 0;
350+
fail:
351+
return -1;
352+
}
353+
354+
static int endpoint_add(char *addr, char *flags)
355+
{
356+
return SYS_NOFAIL("ip -net %s mptcp endpoint add %s %s", NS_TEST, addr, flags);
357+
}
358+
359+
static int endpoint_init(char *flags, u8 endpoints)
360+
{
361+
int ret = -1;
362+
363+
if (!endpoints || endpoints > 4)
364+
goto fail;
365+
366+
if (address_init())
367+
goto fail;
368+
369+
if (SYS_NOFAIL("ip -net %s mptcp limits set add_addr_accepted 4 subflows 4",
370+
NS_TEST)) {
333371
printf("'ip mptcp' not supported, skip this test.\n");
334372
test__skip();
335373
goto fail;
336374
}
337375

338-
return 0;
376+
if (endpoints > 1)
377+
ret = endpoint_add(ADDR_2, flags);
378+
if (endpoints > 2)
379+
ret = ret ?: endpoint_add(ADDR_3, flags);
380+
if (endpoints > 3)
381+
ret = ret ?: endpoint_add(ADDR_4, flags);
382+
339383
fail:
340-
return -1;
384+
return ret;
341385
}
342386

343387
static void wait_for_new_subflows(int fd)
@@ -423,7 +467,7 @@ static void test_subflow(void)
423467
if (!ASSERT_OK_PTR(netns, "netns_new: mptcp_subflow"))
424468
goto skel_destroy;
425469

426-
if (endpoint_init("subflow") < 0)
470+
if (endpoint_init("subflow", 2) < 0)
427471
goto close_netns;
428472

429473
run_subflow();

0 commit comments

Comments
 (0)