]>
Commit | Line | Data |
---|---|---|
6256f8c9 DB |
1 | #ifndef __BPF_ELF__ |
2 | #define __BPF_ELF__ | |
3 | ||
4 | #include <asm/types.h> | |
5 | ||
6 | /* Note: | |
7 | * | |
8 | * Below ELF section names and bpf_elf_map structure definition | |
9 | * are not (!) kernel ABI. It's rather a "contract" between the | |
10 | * application and the BPF loader in tc. For compatibility, the | |
11 | * section names should stay as-is. Introduction of aliases, if | |
12 | * needed, are a possibility, though. | |
13 | */ | |
14 | ||
15 | /* ELF section names, etc */ | |
16 | #define ELF_SECTION_LICENSE "license" | |
17 | #define ELF_SECTION_MAPS "maps" | |
18 | #define ELF_SECTION_CLASSIFIER "classifier" | |
19 | #define ELF_SECTION_ACTION "action" | |
20 | ||
21 | #define ELF_MAX_MAPS 64 | |
22 | #define ELF_MAX_LICENSE_LEN 128 | |
23 | ||
32e93fb7 DB |
24 | /* Object pinning settings */ |
25 | #define PIN_NONE 0 | |
26 | #define PIN_OBJECT_NS 1 | |
27 | #define PIN_GLOBAL_NS 2 | |
28 | ||
6256f8c9 DB |
29 | /* ELF map definition */ |
30 | struct bpf_elf_map { | |
31 | __u32 type; | |
32 | __u32 size_key; | |
33 | __u32 size_value; | |
34 | __u32 max_elem; | |
4dd3f50a | 35 | __u32 flags; |
6256f8c9 | 36 | __u32 id; |
f6793eec | 37 | __u32 pinning; |
6256f8c9 DB |
38 | }; |
39 | ||
40 | #endif /* __BPF_ELF__ */ |