Home | History | Annotate | Download | only in include
      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