rte_bpf.h(3) | DPDK | rte_bpf.h(3) |
NAME¶
rte_bpf.h
SYNOPSIS¶
#include <rte_common.h>
#include <rte_mbuf.h>
#include <bpf_def.h>
Data Structures¶
struct rte_bpf_arg
struct rte_bpf_xsym
struct rte_bpf_prm
struct rte_bpf_jit
Macros¶
#define RTE_BPF_ARG_PTR_TYPE(x) ((x) &
RTE_BPF_ARG_PTR)
Enumerations¶
enum rte_bpf_arg_type { RTE_BPF_ARG_UNDEF,
RTE_BPF_ARG_RAW, RTE_BPF_ARG_PTR = 0x10,
RTE_BPF_ARG_PTR_MBUF, RTE_BPF_ARG_RESERVED }
enum rte_bpf_xtype { RTE_BPF_XTYPE_FUNC,
RTE_BPF_XTYPE_VAR }
Functions¶
void rte_bpf_destroy (struct rte_bpf *bpf)
struct rte_bpf * rte_bpf_load (const struct rte_bpf_prm *prm)
struct rte_bpf * rte_bpf_elf_load (const struct rte_bpf_prm
*prm, const char *fname, const char *sname)
uint64_t rte_bpf_exec (const struct rte_bpf *bpf, void *ctx)
uint32_t rte_bpf_exec_burst (const struct rte_bpf *bpf, void *ctx[],
uint64_t rc[], uint32_t num)
int rte_bpf_get_jit (const struct rte_bpf *bpf, struct
rte_bpf_jit *jit)
void rte_bpf_dump (FILE *f, const struct ebpf_insn *buf, uint32_t len)
struct rte_bpf_prm * rte_bpf_convert (const struct bpf_program
*prog)
Detailed Description¶
RTE BPF support.
librte_bpf provides a framework to load and execute eBPF bytecode inside user-space dpdk based applications. It supports basic set of features from eBPF spec (https://www.kernel.org/doc/Documentation/networking/filter.txt).
Definition in file rte_bpf.h.
Macro Definition Documentation¶
#define RTE_BPF_ARG_PTR_TYPE(x) ((x) & RTE_BPF_ARG_PTR)¶
determine is argument a pointer
Definition at line 55 of file rte_bpf.h.
Enumeration Type Documentation¶
enum rte_bpf_arg_type¶
Possible types for function/BPF program arguments.
Enumerator
- RTE_BPF_ARG_UNDEF
- undefined
- RTE_BPF_ARG_RAW
- scalar value
- RTE_BPF_ARG_PTR
- pointer to data buffer
- RTE_BPF_ARG_PTR_MBUF
- pointer to rte_mbuf
- RTE_BPF_ARG_RESERVED
- reserved for internal use
Definition at line 30 of file rte_bpf.h.
enum rte_bpf_xtype¶
Possible types for external symbols.
Enumerator
- RTE_BPF_XTYPE_FUNC
- function
- RTE_BPF_XTYPE_VAR
- variable
Definition at line 60 of file rte_bpf.h.
Function Documentation¶
void rte_bpf_destroy (struct rte_bpf * bpf)¶
De-allocate all memory used by this eBPF execution context.
Parameters
struct rte_bpf* rte_bpf_load (const struct rte_bpf_prm * prm)¶
Create a new eBPF execution context and load given BPF code into it.
Parameters
Returns
- EINVAL - invalid parameter passed to function
- ENOMEM - can't reserve enough memory
struct rte_bpf* rte_bpf_elf_load (const struct rte_bpf_prm * prm, const char * fname, const char * sname)¶
Create a new eBPF execution context and load BPF code from given ELF file into it. Note that if the function will encounter EBPF_PSEUDO_CALL instruction that references external symbol, it will treat is as standard BPF_CALL to the external helper function.
Parameters
fname Pathname for a ELF file.
sname Name of the executable section within the file to load.
Returns
- EINVAL - invalid parameter passed to function
- ENOMEM - can't reserve enough memory
uint64_t rte_bpf_exec (const struct rte_bpf * bpf, void * ctx)¶
Execute given BPF bytecode.
Parameters
ctx pointer to input context.
Returns
uint32_t rte_bpf_exec_burst (const struct rte_bpf * bpf, void * ctx[], uint64_t rc[], uint32_t num)¶
Execute given BPF bytecode over a set of input contexts.
Parameters
ctx array of pointers to the input contexts.
rc array of return values (one per input).
num number of elements in ctx[] (and rc[]).
Returns
int rte_bpf_get_jit (const struct rte_bpf * bpf, struct rte_bpf_jit * jit)¶
Provide information about natively compiled code for given BPF handle.
Parameters
jit pointer to the rte_bpf_jit structure to be filled with related data.
Returns
- -EINVAL if the parameters are invalid.
- Zero if operation completed successfully.
void rte_bpf_dump (FILE * f, const struct ebpf_insn * buf, uint32_t len)¶
Dump epf instructions to a file.
Parameters
buf A pointer to BPF instructions
len Number of BPF instructions to dump.
struct rte_bpf_prm* rte_bpf_convert (const struct bpf_program * prog)¶
Convert a Classic BPF program from libpcap into a DPDK BPF code.
Parameters
Returns
- EINVAL - invalid parameter passed to function
- ENOMEM - can't reserve enough memory
- ENOTSUP - operation not supported
Author¶
Generated automatically by Doxygen for DPDK from the source code.
Fri Dec 15 2023 | Version 23.11.0 |