blob: 4bd6bb00420359879ce7e4717fb40777ada75546 [file] [log] [blame]
Daniel Borkmann6256f8c2015-04-01 17:57:44 +02001#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/* ELF map definition */
25struct bpf_elf_map {
26 __u32 type;
27 __u32 size_key;
28 __u32 size_value;
29 __u32 max_elem;
30 __u32 id;
31};
32
33#endif /* __BPF_ELF__ */