X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_bpf%2Frte_bpf.h;h=cbf1cddacacc4285afcb3c5fceaad4bd307d0089;hb=be848992298b7a64a161487600a4070e52b9d26d;hp=ab92af8fe025c950d8cc14120823663ccc078a1f;hpb=8bd5f07c7a1ac0c5b8d16758efc3ada3e16b0adc;p=dpdk.git diff --git a/lib/librte_bpf/rte_bpf.h b/lib/librte_bpf/rte_bpf.h index ab92af8fe0..cbf1cddaca 100644 --- a/lib/librte_bpf/rte_bpf.h +++ b/lib/librte_bpf/rte_bpf.h @@ -32,7 +32,7 @@ enum rte_bpf_arg_type { 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 */ }; /** @@ -113,7 +113,8 @@ struct rte_bpf; * @param bpf * BPF handle to destroy. */ -void __rte_experimental +__rte_experimental +void rte_bpf_destroy(struct rte_bpf *bpf); /** @@ -128,12 +129,16 @@ rte_bpf_destroy(struct rte_bpf *bpf); * - EINVAL - invalid parameter passed to function * - ENOMEM - can't reserve enough memory */ -struct rte_bpf * __rte_experimental +__rte_experimental +struct rte_bpf * rte_bpf_load(const struct rte_bpf_prm *prm); /** * 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. * * @param prm * Parameters used to create and initialise the BPF execution context. @@ -148,7 +153,8 @@ 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 +__rte_experimental +struct rte_bpf * rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname, const char *sname); /** @@ -161,7 +167,8 @@ rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname, * @return * BPF execution return value. */ -uint64_t __rte_experimental +__rte_experimental +uint64_t rte_bpf_exec(const struct rte_bpf *bpf, void *ctx); /** @@ -178,7 +185,8 @@ rte_bpf_exec(const struct rte_bpf *bpf, void *ctx); * @return * number of successfully processed inputs. */ -uint32_t __rte_experimental +__rte_experimental +uint32_t rte_bpf_exec_burst(const struct rte_bpf *bpf, void *ctx[], uint64_t rc[], uint32_t num); @@ -193,7 +201,8 @@ rte_bpf_exec_burst(const struct rte_bpf *bpf, void *ctx[], uint64_t rc[], * - -EINVAL if the parameters are invalid. * - Zero if operation completed successfully. */ -int __rte_experimental +__rte_experimental +int rte_bpf_get_jit(const struct rte_bpf *bpf, struct rte_bpf_jit *jit); #ifdef __cplusplus