/**
* @file rte_bpf.h
- * @b EXPERIMENTAL: this API may change without prior notice
*
* 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
RTE_BPF_ARG_RAW, /**< scalar value */
RTE_BPF_ARG_PTR = 0x10, /**< pointer to data buffer */
RTE_BPF_ARG_PTR_MBUF, /**< pointer to rte_mbuf */
- RTE_BPF_ARG_PTR_STACK,
+ RTE_BPF_ARG_RESERVED /**< reserved for internal use */
};
/**
*/
enum rte_bpf_xtype {
RTE_BPF_XTYPE_FUNC, /**< function */
- RTE_BPF_XTYPE_VAR, /**< variable */
- RTE_BPF_XTYPE_NUM
+ RTE_BPF_XTYPE_VAR /**< variable */
};
/**
* @param bpf
* BPF handle to destroy.
*/
-void __rte_experimental
+void
rte_bpf_destroy(struct rte_bpf *bpf);
/**
* - EINVAL - invalid parameter passed to function
* - ENOMEM - can't reserve enough memory
*/
-struct rte_bpf * __rte_experimental
+struct rte_bpf *
rte_bpf_load(const struct rte_bpf_prm *prm);
/**
* - EINVAL - invalid parameter passed to function
* - ENOMEM - can't reserve enough memory
*/
-struct rte_bpf * __rte_experimental
+struct rte_bpf *
rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname,
const char *sname);
/**
* @return
* BPF execution return value.
*/
-uint64_t __rte_experimental
+uint64_t
rte_bpf_exec(const struct rte_bpf *bpf, void *ctx);
/**
* @return
* number of successfully processed inputs.
*/
-uint32_t __rte_experimental
+uint32_t
rte_bpf_exec_burst(const struct rte_bpf *bpf, void *ctx[], uint64_t rc[],
uint32_t num);
* - -EINVAL if the parameters are invalid.
* - Zero if operation completed successfully.
*/
-int __rte_experimental
+int
rte_bpf_get_jit(const struct rte_bpf *bpf, struct rte_bpf_jit *jit);
#ifdef __cplusplus