Skip to content

Commit d1b24fc

Browse files
jrifeAlexei Starovoitov
authored andcommitted
selftests/bpf: Migrate WILDCARD_IP test
Move wildcard IP sendmsg test case out of bpf/test_sock_addr.c into prog_tests/sock_addr.c. Signed-off-by: Jordan Rife <jrife@google.com> Link: https://lore.kernel.org/r/20240510190246.3247730-7-jrife@google.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
1 parent a2618c0 commit d1b24fc

3 files changed

Lines changed: 56 additions & 20 deletions

File tree

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

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#define SERV6_V4MAPPED_IP "::ffff:192.168.0.4"
4141
#define SRC6_IP "::1"
4242
#define SRC6_REWRITE_IP TEST_IPV6
43+
#define WILDCARD6_IP "::"
4344
#define SERV6_PORT 6060
4445
#define SERV6_REWRITE_PORT 6666
4546

@@ -443,6 +444,7 @@ BPF_SKEL_FUNCS(connect6_prog, connect_v6_prog);
443444
BPF_SKEL_FUNCS(connect_unix_prog, connect_unix_prog);
444445
BPF_SKEL_FUNCS(sendmsg4_prog, sendmsg_v4_prog);
445446
BPF_SKEL_FUNCS(sendmsg6_prog, sendmsg_v6_prog);
447+
BPF_SKEL_FUNCS(sendmsg6_prog, sendmsg_v6_preserve_dst_prog);
446448
BPF_SKEL_FUNCS(sendmsg_unix_prog, sendmsg_unix_prog);
447449
BPF_SKEL_FUNCS(recvmsg4_prog, recvmsg4_prog);
448450
BPF_SKEL_FUNCS(recvmsg6_prog, recvmsg6_prog);
@@ -780,6 +782,22 @@ static struct sock_addr_test tests[] = {
780782
SRC6_REWRITE_IP,
781783
SUCCESS,
782784
},
785+
{
786+
SOCK_ADDR_TEST_SENDMSG,
787+
"sendmsg6: sendmsg [::] (BSD'ism) (dgram)",
788+
sendmsg_v6_preserve_dst_prog_load,
789+
sendmsg_v6_preserve_dst_prog_destroy,
790+
BPF_CGROUP_UDP6_SENDMSG,
791+
&user_ops,
792+
AF_INET6,
793+
SOCK_DGRAM,
794+
WILDCARD6_IP,
795+
SERV6_PORT,
796+
SERV6_REWRITE_IP,
797+
SERV6_PORT,
798+
SRC6_IP,
799+
SUCCESS,
800+
},
783801
{
784802
SOCK_ADDR_TEST_SENDMSG,
785803
"sendmsg_unix: sendmsg (dgram)",
@@ -830,6 +848,22 @@ static struct sock_addr_test tests[] = {
830848
SRC6_REWRITE_IP,
831849
SUCCESS,
832850
},
851+
{
852+
SOCK_ADDR_TEST_SENDMSG,
853+
"sendmsg6: sock_sendmsg [::] (BSD'ism) (dgram)",
854+
sendmsg_v6_preserve_dst_prog_load,
855+
sendmsg_v6_preserve_dst_prog_destroy,
856+
BPF_CGROUP_UDP6_SENDMSG,
857+
&kern_ops_sock_sendmsg,
858+
AF_INET6,
859+
SOCK_DGRAM,
860+
WILDCARD6_IP,
861+
SERV6_PORT,
862+
SERV6_REWRITE_IP,
863+
SERV6_PORT,
864+
SRC6_IP,
865+
SUCCESS,
866+
},
833867
{
834868
SOCK_ADDR_TEST_SENDMSG,
835869
"sendmsg_unix: sock_sendmsg (dgram)",
@@ -880,6 +914,22 @@ static struct sock_addr_test tests[] = {
880914
SRC6_REWRITE_IP,
881915
SUCCESS,
882916
},
917+
{
918+
SOCK_ADDR_TEST_SENDMSG,
919+
"sendmsg6: kernel_sendmsg [::] (BSD'ism) (dgram)",
920+
sendmsg_v6_preserve_dst_prog_load,
921+
sendmsg_v6_preserve_dst_prog_destroy,
922+
BPF_CGROUP_UDP6_SENDMSG,
923+
&kern_ops_kernel_sendmsg,
924+
AF_INET6,
925+
SOCK_DGRAM,
926+
WILDCARD6_IP,
927+
SERV6_PORT,
928+
SERV6_REWRITE_IP,
929+
SERV6_PORT,
930+
SRC6_IP,
931+
SUCCESS,
932+
},
883933
{
884934
SOCK_ADDR_TEST_SENDMSG,
885935
"sendmsg_unix: sock_sendmsg (dgram)",

tools/testing/selftests/bpf/progs/sendmsg6_prog.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,10 @@ int sendmsg_v6_prog(struct bpf_sock_addr *ctx)
5959
return 1;
6060
}
6161

62+
SEC("cgroup/sendmsg6")
63+
int sendmsg_v6_preserve_dst_prog(struct bpf_sock_addr *ctx)
64+
{
65+
return 1;
66+
}
67+
6268
char _license[] SEC("license") = "GPL";

tools/testing/selftests/bpf/test_sock_addr.c

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ static int bind4_prog_load(const struct sock_addr_test *test);
9292
static int bind6_prog_load(const struct sock_addr_test *test);
9393
static int connect4_prog_load(const struct sock_addr_test *test);
9494
static int connect6_prog_load(const struct sock_addr_test *test);
95-
static int sendmsg_allow_prog_load(const struct sock_addr_test *test);
9695
static int sendmsg_deny_prog_load(const struct sock_addr_test *test);
9796
static int sendmsg4_rw_asm_prog_load(const struct sock_addr_test *test);
9897
static int sendmsg6_rw_asm_prog_load(const struct sock_addr_test *test);
@@ -343,20 +342,6 @@ static struct sock_addr_test tests[] = {
343342
SRC6_REWRITE_IP,
344343
SUCCESS,
345344
},
346-
{
347-
"sendmsg6: preserve dst IP = [::] (BSD'ism)",
348-
sendmsg_allow_prog_load,
349-
BPF_CGROUP_UDP6_SENDMSG,
350-
BPF_CGROUP_UDP6_SENDMSG,
351-
AF_INET6,
352-
SOCK_DGRAM,
353-
WILDCARD6_IP,
354-
SERV6_PORT,
355-
SERV6_REWRITE_IP,
356-
SERV6_PORT,
357-
SRC6_IP,
358-
SUCCESS,
359-
},
360345
{
361346
"sendmsg6: deny call",
362347
sendmsg_deny_prog_load,
@@ -457,11 +442,6 @@ static int xmsg_ret_only_prog_load(const struct sock_addr_test *test,
457442
return load_insns(test, insns, ARRAY_SIZE(insns));
458443
}
459444

460-
static int sendmsg_allow_prog_load(const struct sock_addr_test *test)
461-
{
462-
return xmsg_ret_only_prog_load(test, /*rc*/ 1);
463-
}
464-
465445
static int sendmsg_deny_prog_load(const struct sock_addr_test *test)
466446
{
467447
return xmsg_ret_only_prog_load(test, /*rc*/ 0);

0 commit comments

Comments
 (0)