selftests/bpf: Remove redundant sendmsg test cases
authorJordan Rife <jrife@google.com>
Fri, 10 May 2024 19:02:29 +0000 (14:02 -0500)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 13 May 2024 00:10:42 +0000 (17:10 -0700)
Remove these test cases completely, as the same behavior is already
covered by other sendmsg* test cases in prog_tests/sock_addr.c. This
just rewrites the destination address similar to sendmsg_v4_prog and
sendmsg_v6_prog.

Signed-off-by: Jordan Rife <jrife@google.com>
Link: https://lore.kernel.org/r/20240510190246.3247730-13-jrife@google.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/test_sock_addr.c

index 311eda4..a2b5872 100644 (file)
@@ -88,170 +88,9 @@ struct sock_addr_test {
        } expected_result;
 };
 
-static int sendmsg4_rw_asm_prog_load(const struct sock_addr_test *test);
-static int sendmsg6_rw_asm_prog_load(const struct sock_addr_test *test);
-
 static struct sock_addr_test tests[] = {
-       /* sendmsg */
-       {
-               "sendmsg4: rewrite IP & port (asm)",
-               sendmsg4_rw_asm_prog_load,
-               BPF_CGROUP_UDP4_SENDMSG,
-               BPF_CGROUP_UDP4_SENDMSG,
-               AF_INET,
-               SOCK_DGRAM,
-               SERV4_IP,
-               SERV4_PORT,
-               SERV4_REWRITE_IP,
-               SERV4_REWRITE_PORT,
-               SRC4_REWRITE_IP,
-               SUCCESS,
-       },
-       {
-               "sendmsg6: rewrite IP & port (asm)",
-               sendmsg6_rw_asm_prog_load,
-               BPF_CGROUP_UDP6_SENDMSG,
-               BPF_CGROUP_UDP6_SENDMSG,
-               AF_INET6,
-               SOCK_DGRAM,
-               SERV6_IP,
-               SERV6_PORT,
-               SERV6_REWRITE_IP,
-               SERV6_REWRITE_PORT,
-               SRC6_REWRITE_IP,
-               SUCCESS,
-       },
 };
 
-static int load_insns(const struct sock_addr_test *test,
-                     const struct bpf_insn *insns, size_t insns_cnt)
-{
-       LIBBPF_OPTS(bpf_prog_load_opts, opts);
-       int ret;
-
-       opts.expected_attach_type = test->expected_attach_type;
-       opts.log_buf = bpf_log_buf;
-       opts.log_size = BPF_LOG_BUF_SIZE;
-
-       ret = bpf_prog_load(BPF_PROG_TYPE_CGROUP_SOCK_ADDR, NULL, "GPL", insns, insns_cnt, &opts);
-       if (ret < 0 && test->expected_result != LOAD_REJECT) {
-               log_err(">>> Loading program error.\n"
-                       ">>> Verifier output:\n%s\n-------\n", bpf_log_buf);
-       }
-
-       return ret;
-}
-
-static int sendmsg4_rw_asm_prog_load(const struct sock_addr_test *test)
-{
-       struct sockaddr_in dst4_rw_addr;
-       struct in_addr src4_rw_ip;
-
-       if (inet_pton(AF_INET, SRC4_REWRITE_IP, (void *)&src4_rw_ip) != 1) {
-               log_err("Invalid IPv4: %s", SRC4_REWRITE_IP);
-               return -1;
-       }
-
-       if (make_sockaddr(AF_INET, SERV4_REWRITE_IP, SERV4_REWRITE_PORT,
-                         (struct sockaddr_storage *)&dst4_rw_addr,
-                         NULL) == -1)
-               return -1;
-
-       struct bpf_insn insns[] = {
-               BPF_MOV64_REG(BPF_REG_6, BPF_REG_1),
-
-               /* if (sk.family == AF_INET && */
-               BPF_LDX_MEM(BPF_W, BPF_REG_7, BPF_REG_6,
-                           offsetof(struct bpf_sock_addr, family)),
-               BPF_JMP_IMM(BPF_JNE, BPF_REG_7, AF_INET, 8),
-
-               /*     sk.type == SOCK_DGRAM)  { */
-               BPF_LDX_MEM(BPF_W, BPF_REG_7, BPF_REG_6,
-                           offsetof(struct bpf_sock_addr, type)),
-               BPF_JMP_IMM(BPF_JNE, BPF_REG_7, SOCK_DGRAM, 6),
-
-               /*      msg_src_ip4 = src4_rw_ip */
-               BPF_MOV32_IMM(BPF_REG_7, src4_rw_ip.s_addr),
-               BPF_STX_MEM(BPF_W, BPF_REG_6, BPF_REG_7,
-                           offsetof(struct bpf_sock_addr, msg_src_ip4)),
-
-               /*      user_ip4 = dst4_rw_addr.sin_addr */
-               BPF_MOV32_IMM(BPF_REG_7, dst4_rw_addr.sin_addr.s_addr),
-               BPF_STX_MEM(BPF_W, BPF_REG_6, BPF_REG_7,
-                           offsetof(struct bpf_sock_addr, user_ip4)),
-
-               /*      user_port = dst4_rw_addr.sin_port */
-               BPF_MOV32_IMM(BPF_REG_7, dst4_rw_addr.sin_port),
-               BPF_STX_MEM(BPF_W, BPF_REG_6, BPF_REG_7,
-                           offsetof(struct bpf_sock_addr, user_port)),
-               /* } */
-
-               /* return 1 */
-               BPF_MOV64_IMM(BPF_REG_0, 1),
-               BPF_EXIT_INSN(),
-       };
-
-       return load_insns(test, insns, ARRAY_SIZE(insns));
-}
-
-static int sendmsg6_rw_dst_asm_prog_load(const struct sock_addr_test *test,
-                                        const char *rw_dst_ip)
-{
-       struct sockaddr_in6 dst6_rw_addr;
-       struct in6_addr src6_rw_ip;
-
-       if (inet_pton(AF_INET6, SRC6_REWRITE_IP, (void *)&src6_rw_ip) != 1) {
-               log_err("Invalid IPv6: %s", SRC6_REWRITE_IP);
-               return -1;
-       }
-
-       if (make_sockaddr(AF_INET6, rw_dst_ip, SERV6_REWRITE_PORT,
-                         (struct sockaddr_storage *)&dst6_rw_addr,
-                         NULL) == -1)
-               return -1;
-
-       struct bpf_insn insns[] = {
-               BPF_MOV64_REG(BPF_REG_6, BPF_REG_1),
-
-               /* if (sk.family == AF_INET6) { */
-               BPF_LDX_MEM(BPF_W, BPF_REG_7, BPF_REG_6,
-                           offsetof(struct bpf_sock_addr, family)),
-               BPF_JMP_IMM(BPF_JNE, BPF_REG_7, AF_INET6, 18),
-
-#define STORE_IPV6_WORD_N(DST, SRC, N)                                        \
-               BPF_MOV32_IMM(BPF_REG_7, SRC[N]),                              \
-               BPF_STX_MEM(BPF_W, BPF_REG_6, BPF_REG_7,                       \
-                           offsetof(struct bpf_sock_addr, DST[N]))
-
-#define STORE_IPV6(DST, SRC)                                                  \
-               STORE_IPV6_WORD_N(DST, SRC, 0),                                \
-               STORE_IPV6_WORD_N(DST, SRC, 1),                                \
-               STORE_IPV6_WORD_N(DST, SRC, 2),                                \
-               STORE_IPV6_WORD_N(DST, SRC, 3)
-
-               STORE_IPV6(msg_src_ip6, src6_rw_ip.s6_addr32),
-               STORE_IPV6(user_ip6, dst6_rw_addr.sin6_addr.s6_addr32),
-
-               /*      user_port = dst6_rw_addr.sin6_port */
-               BPF_MOV32_IMM(BPF_REG_7, dst6_rw_addr.sin6_port),
-               BPF_STX_MEM(BPF_W, BPF_REG_6, BPF_REG_7,
-                           offsetof(struct bpf_sock_addr, user_port)),
-
-               /* } */
-
-               /* return 1 */
-               BPF_MOV64_IMM(BPF_REG_0, 1),
-               BPF_EXIT_INSN(),
-       };
-
-       return load_insns(test, insns, ARRAY_SIZE(insns));
-}
-
-static int sendmsg6_rw_asm_prog_load(const struct sock_addr_test *test)
-{
-       return sendmsg6_rw_dst_asm_prog_load(test, SERV6_REWRITE_IP);
-}
-
 static int cmp_addr(const struct sockaddr_storage *addr1,
                    const struct sockaddr_storage *addr2, int cmp_port)
 {