22#ifndef BACKENDS_EBPF_RUNTIME_EBPF_USER_H_
23#define BACKENDS_EBPF_RUNTIME_EBPF_USER_H_
25#include "ebpf_registry.h"
26#include "ebpf_common.h"
31#define htonll(x) htobe64(x)
32#define ntohll(x) be64toh(x)
34#define bpf_htons(x) htobe16(x)
35#define bpf_ntohs(x) be16toh(x)
36#define bpf_htonl(x) htobe32(x)
37#define bpf_ntohl(x) be32toh(x)
38#define bpf_cpu_to_be64(x) htobe64(x)
39#define bpf_be64_to_cpu(x) be64toh(x)
41#define load_byte(data, b) (*(((u8*)(data)) + (b)))
42#define load_half(data, b) bpf_ntohs(*(u16 *)((u8*)(data) + (b)))
43#define load_word(data, b) bpf_ntohl(*(u32 *)((u8*)(data) + (b)))
44#define load_dword(data, b) bpf_be64_to_cpu(*(u64 *)((u8*)(data) + (b)))
48#define bpf_printk(fmt, ...) \
50 char ____fmt[] = fmt; \
51 printf(____fmt, sizeof(____fmt), \
82#define SK_BUFF struct sk_buff
83#define REGISTER_START() \
84struct bpf_table tables[] = {
85#define REGISTER_TABLE(NAME, TYPE, KEY_SIZE, VALUE_SIZE, MAX_ENTRIES) \
86 { MAP_PATH"/"#NAME, TYPE, KEY_SIZE, VALUE_SIZE, MAX_ENTRIES, NULL },
87#define REGISTER_END() \
91#define BPF_MAP_LOOKUP_ELEM(table, key) \
92 registry_lookup_table_elem(MAP_PATH"/"#table, key)
93#define BPF_MAP_UPDATE_ELEM(table, key, value, flags) \
94 registry_update_table(MAP_PATH"/"#table, key, value, flags)
95#define BPF_MAP_DELETE_ELEM(table, key) \
96 registry_delete_table_elem(MAP_PATH"/"#table, key)
97#define BPF_USER_MAP_UPDATE_ELEM(index, key, value, flags)\
98 registry_update_table_id(index, key, value, flags)
99#define BPF_OBJ_PIN(table, name) registry_add(table)
100#define BPF_OBJ_GET(name) registry_get_id(name)
105extern int ebpf_filter(
struct sk_buff *skb);
A helper structure used to describe attributes.
Definition ebpf_registry.h:36
simple descriptor which replaces the kernel sk_buff structure.
Definition ebpf_test.h:62