1*f506439eSToke Høiland-Jørgensen // SPDX-License-Identifier: GPL-2.0 2*f506439eSToke Høiland-Jørgensen #include <linux/bpf.h> 3*f506439eSToke Høiland-Jørgensen #include <bpf/bpf_helpers.h> 4*f506439eSToke Høiland-Jørgensen 5*f506439eSToke Høiland-Jørgensen struct { 6*f506439eSToke Høiland-Jørgensen __uint(type, BPF_MAP_TYPE_CPUMAP); 7*f506439eSToke Høiland-Jørgensen __type(key, __u32); 8*f506439eSToke Høiland-Jørgensen __type(value, struct bpf_cpumap_val); 9*f506439eSToke Høiland-Jørgensen __uint(max_entries, 1); 10*f506439eSToke Høiland-Jørgensen } cpu_map SEC(".maps"); 11*f506439eSToke Høiland-Jørgensen 12*f506439eSToke Høiland-Jørgensen SEC("xdp/cpumap") xdp_drop_prog(struct xdp_md * ctx)13*f506439eSToke Høiland-Jørgensenint xdp_drop_prog(struct xdp_md *ctx) 14*f506439eSToke Høiland-Jørgensen { 15*f506439eSToke Høiland-Jørgensen return XDP_DROP; 16*f506439eSToke Høiland-Jørgensen } 17*f506439eSToke Høiland-Jørgensen 18*f506439eSToke Høiland-Jørgensen SEC("freplace") xdp_cpumap_prog(struct xdp_md * ctx)19*f506439eSToke Høiland-Jørgensenint xdp_cpumap_prog(struct xdp_md *ctx) 20*f506439eSToke Høiland-Jørgensen { 21*f506439eSToke Høiland-Jørgensen return bpf_redirect_map(&cpu_map, 0, XDP_PASS); 22*f506439eSToke Høiland-Jørgensen } 23*f506439eSToke Høiland-Jørgensen 24*f506439eSToke Høiland-Jørgensen char _license[] SEC("license") = "GPL"; 25