pkg/ebpf/c/v4events.bpf.c (47 lines of code) (raw):

#include "vmlinux.h" #include <bpf/bpf_helpers.h> #include <bpf/bpf_tracing.h> #include <bpf/bpf_core_read.h> struct bpf_map_def_pvt { __u32 type; __u32 key_size; __u32 value_size; __u32 max_entries; __u32 map_flags; __u32 pinning; __u32 inner_map_fd; }; #define PIN_GLOBAL_NS 2 #define BPF_MAP_TYPE_RINGBUF 27 struct data_t { __u32 src_ip; __u32 src_port; __u32 dest_ip; __u32 dest_port; __u32 protocol; __u32 verdict; }; struct conntrack_key { __u32 src_ip; __u16 src_port; __u32 dest_ip; __u16 dest_port; __u8 protocol; __u32 owner_ip; }; struct conntrack_value { __u8 val; }; struct bpf_map_def_pvt SEC("maps") aws_conntrack_map = { .type = BPF_MAP_TYPE_LRU_HASH, .key_size =sizeof(struct conntrack_key), .value_size = sizeof(struct conntrack_value), .max_entries = 512 * 1024, .pinning = PIN_GLOBAL_NS, }; struct bpf_map_def_pvt SEC("maps") policy_events = { .type = BPF_MAP_TYPE_RINGBUF, .max_entries = 512 * 1024, .pinning = PIN_GLOBAL_NS, }; char _license[] SEC("license") = "GPL";