Jordan Rife bc467e953e selftests/bpf: Expand getsockname and getpeername tests
This expands coverage for getsockname and getpeername hooks to include
getsockname4, getsockname6, getpeername4, and getpeername6.

Signed-off-by: Jordan Rife <jrife@google.com>
Link: https://lore.kernel.org/r/20240510190246.3247730-17-jrife@google.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2024-05-12 17:10:42 -07:00

32 lines
832 B
C

// SPDX-License-Identifier: GPL-2.0
/* Copyright (c) 2024 Google LLC */
#include "vmlinux.h"
#include <string.h>
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_endian.h>
#include <bpf/bpf_core_read.h>
#include "bpf_kfuncs.h"
#define REWRITE_ADDRESS_IP6_0 0xfaceb00c
#define REWRITE_ADDRESS_IP6_1 0x12345678
#define REWRITE_ADDRESS_IP6_2 0x00000000
#define REWRITE_ADDRESS_IP6_3 0x0000abcd
#define REWRITE_ADDRESS_PORT6 6060
SEC("cgroup/getpeername6")
int getpeername_v6_prog(struct bpf_sock_addr *ctx)
{
ctx->user_ip6[0] = bpf_htonl(REWRITE_ADDRESS_IP6_0);
ctx->user_ip6[1] = bpf_htonl(REWRITE_ADDRESS_IP6_1);
ctx->user_ip6[2] = bpf_htonl(REWRITE_ADDRESS_IP6_2);
ctx->user_ip6[3] = bpf_htonl(REWRITE_ADDRESS_IP6_3);
ctx->user_port = bpf_htons(REWRITE_ADDRESS_PORT6);
return 1;
}
char _license[] SEC("license") = "GPL";