Warning: This file is not a C or C++ file. It does not have highlighting.
1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
---|---|
2 | #ifndef _XT_BPF_H |
3 | #define _XT_BPF_H |
4 | |
5 | #include <linux/filter.h> |
6 | #include <linux/limits.h> |
7 | #include <linux/types.h> |
8 | |
9 | #define XT_BPF_MAX_NUM_INSTR 64 |
10 | #define XT_BPF_PATH_MAX (XT_BPF_MAX_NUM_INSTR * sizeof(struct sock_filter)) |
11 | |
12 | struct bpf_prog; |
13 | |
14 | struct xt_bpf_info { |
15 | __u16 bpf_program_num_elem; |
16 | struct sock_filter bpf_program[XT_BPF_MAX_NUM_INSTR]; |
17 | |
18 | /* only used in the kernel */ |
19 | struct bpf_prog *filter __attribute__((aligned(8))); |
20 | }; |
21 | |
22 | enum xt_bpf_modes { |
23 | XT_BPF_MODE_BYTECODE, |
24 | XT_BPF_MODE_FD_PINNED, |
25 | XT_BPF_MODE_FD_ELF, |
26 | }; |
27 | #define XT_BPF_MODE_PATH_PINNED XT_BPF_MODE_FD_PINNED |
28 | |
29 | struct xt_bpf_info_v1 { |
30 | __u16 mode; |
31 | __u16 bpf_program_num_elem; |
32 | __s32 fd; |
33 | union { |
34 | struct sock_filter bpf_program[XT_BPF_MAX_NUM_INSTR]; |
35 | char path[XT_BPF_PATH_MAX]; |
36 | }; |
37 | |
38 | /* only used in the kernel */ |
39 | struct bpf_prog *filter __attribute__((aligned(8))); |
40 | }; |
41 | |
42 | #endif /*_XT_BPF_H */ |
43 |
Warning: This file is not a C or C++ file. It does not have highlighting.