NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
strategy-code.h
Go to the documentation of this file.
1#ifndef NDNDPDK_STRATEGYCODE_STRATEGY_CODE_H
2#define NDNDPDK_STRATEGYCODE_STRATEGY_CODE_H
3
5
6#include "../core/common.h"
7#include <rte_bpf.h>
8
9typedef uint64_t (*StrategyCodeFunc)(void*, size_t);
10
16
22__attribute__((nonnull)) static inline uint64_t
23StrategyCodeProg_Run(StrategyCodeProg prog, void* arg, size_t sizeofArg) {
24 return prog.jit(arg, sizeofArg);
25}
26
28typedef struct StrategyCode {
30 uintptr_t goHandle;
31 int id;
32 atomic_int nRefs;
34
35__attribute__((nonnull)) void
37
38__attribute__((nonnull)) void
40
41typedef void (*StrategyCode_FreeFunc)(uintptr_t goHandle);
43
44typedef struct SgCtx SgCtx;
45typedef bool (*StrategyCode_GetJSONFunc)(SgCtx* ctx, const char* path, int index, int64_t* dst);
47
48__attribute__((nonnull, returns_nonnull)) const struct rte_bpf_xsym*
49SgInitGetXsyms(uint32_t* nXsyms);
50
51#endif // NDNDPDK_STRATEGYCODE_STRATEGY_CODE_H
StrategyCode_FreeFunc StrategyCode_Free
Definition strategy-code.c:4
StrategyCode_GetJSONFunc StrategyCode_GetJSON
Definition strategy-code.c:5
void(* StrategyCode_FreeFunc)(uintptr_t goHandle)
Definition strategy-code.h:41
uint64_t(* StrategyCodeFunc)(void *, size_t)
Definition strategy-code.h:9
const struct rte_bpf_xsym * SgInitGetXsyms(uint32_t *nXsyms)
Definition strategy-code.c:34
void StrategyCode_Ref(StrategyCode *sc)
Definition strategy-code.c:8
void StrategyCode_Unref(StrategyCode *sc)
Definition strategy-code.c:17
bool(* StrategyCode_GetJSONFunc)(SgCtx *ctx, const char *path, int index, int64_t *dst)
Definition strategy-code.h:45
Context of strategy invocation.
Definition api.h:26
BPF program in a forwarding strategy.
Definition strategy-code.h:12
StrategyCodeFunc jit
JIT-compiled function.
Definition strategy-code.h:14
struct rte_bpf * bpf
BPF execution context.
Definition strategy-code.h:13
Forwarding strategy BPF programs.
Definition strategy-code.h:28
StrategyCodeProg main
dataplane BPF program
Definition strategy-code.h:29
atomic_int nRefs
how many FibEntry* reference this
Definition strategy-code.h:32
int id
strategy ID
Definition strategy-code.h:31
uintptr_t goHandle
cgo.Handle reference of Go *strategycode.Strategy
Definition strategy-code.h:30
Definition load.c:7