*
* RTE BPF support.
*
- * @warning
- * @b EXPERIMENTAL:
- * All functions in this file may be changed or removed without prior notice.
- *
* 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_RESERVED, /**< reserved for internal use */
+ 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.
*/
-__rte_experimental
void
rte_bpf_destroy(struct rte_bpf *bpf);
* - EINVAL - invalid parameter passed to function
* - ENOMEM - can't reserve enough memory
*/
-__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
*/
-__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.
*/
-__rte_experimental
uint64_t
rte_bpf_exec(const struct rte_bpf *bpf, void *ctx);
* @return
* number of successfully processed inputs.
*/
-__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.
*/
-__rte_experimental
int
rte_bpf_get_jit(const struct rte_bpf *bpf, struct rte_bpf_jit *jit);
/**
* @file rte_bpf_ethdev.h
- * @b EXPERIMENTAL: this API may change without prior notice
*
* API to install BPF filter as RX/TX callbacks for eth devices.
* Note that right now:
* @param queue
* The identifier of the RX queue on the given port
*/
-__rte_experimental
void
rte_bpf_eth_rx_unload(uint16_t port, uint16_t queue);
* @param queue
* The identifier of the TX queue on the given port
*/
-__rte_experimental
void
rte_bpf_eth_tx_unload(uint16_t port, uint16_t queue);
* @return
* Zero on successful completion or negative error code otherwise.
*/
-__rte_experimental
int
rte_bpf_eth_rx_elf_load(uint16_t port, uint16_t queue,
const struct rte_bpf_prm *prm, const char *fname, const char *sname,
* @return
* Zero on successful completion or negative error code otherwise.
*/
-__rte_experimental
int
rte_bpf_eth_tx_elf_load(uint16_t port, uint16_t queue,
const struct rte_bpf_prm *prm, const char *fname, const char *sname,