• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
24 /* Object pinning settings */
25 #define PIN_NONE		0
26 #define PIN_OBJECT_NS		1
27 #define PIN_GLOBAL_NS		2
28 
29 /* ELF map definition */
30 struct bpf_elf_map {
31 	__u32 type;
32 	__u32 size_key;
33 	__u32 size_value;
34 	__u32 max_elem;
35 	__u32 id;
36 	__u32 pinning;
37 };
38 
39 #endif /* __BPF_ELF__ */
40