summaryrefslogtreecommitdiff
path: root/bpf/bpf_conf_def.h
blob: b52171e629dcd8a498c79f33822604e97e9322e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef _BPF_CONF_DEF_H_
#define _BPF_CONF_DEF_H_

#ifdef __cplusplus
extern "C"
{
#endif

#define BPF_CONF_KEY_DEBUG_LOG "bpf_debug_log"
#define BPF_CONF_KEY_HASH_MODE "bpf_hash_mode"
#define BPF_CONF_KEY_QUEUE_NUM "bpf_queue_num"

#define __uint(name, val) int(*name)[val]
#define __type(name, val) val *name
#define SEC(NAME) __attribute__((section(NAME), used))

typedef enum bpf_hash_mode_s
{
    BPF_HASH_MODE_TUPLE2 = 0x2,
    BPF_HASH_MODE_TUPLE4 = 0x4,
} bpf_hash_mode_t;

typedef struct bpf_conf_key_s
{
    char str[32];
} bpf_conf_key_t;

typedef struct bpf_conf_kv_s
{
    bpf_conf_key_t key;
    __u32 val;
} bpf_conf_kv_t;

typedef struct bpf_conf_s
{
    bpf_conf_kv_t debug_log;
    bpf_conf_kv_t hash_mode;
    bpf_conf_kv_t queue_num;
} bpf_conf_t;

struct
{
    __uint(type, BPF_MAP_TYPE_HASH);
    __type(key, bpf_conf_key_t);
    __type(value, __u32);
    __uint(max_entries, 16);
} bpf_conf_map SEC(".maps");

#ifdef __cplusplus
}
#endif

#endif