#ifndef _BPF_CONFIG_H_ #define _BPF_CONFIG_H_ #ifdef __cpluscplus extern "C" { #endif #define BPF_CONFIG_KEY_DEBUG_LOG "bpf_debug_log" #define BPF_CONFIG_KEY_HASH_MODE "bpf_hash_mode" #define BPF_CONFIG_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)) enum bpf_hash_mode { BPF_HASH_MODE_TUPLE2 = 0x2, BPF_HASH_MODE_TUPLE4 = 0x4, }; struct string32 { char str[32]; }; struct kv_pair { struct string32 key; __u32 val; }; struct bpf_config { struct kv_pair debug_log; struct kv_pair hash_mode; struct kv_pair queue_num; }; struct { __uint(type, BPF_MAP_TYPE_HASH); __type(key, struct string32); __type(value, __u32); __uint(max_entries, 16); } bpf_config_map SEC(".maps"); #ifdef __cpluscplus } #endif #endif