@@ -1492,7 +1492,7 @@ F: app/test/test_telemetry*
F: usertools/dpdk-telemetry*
F: doc/guides/howto/telemetry.rst
-BPF - EXPERIMENTAL
+BPF
M: Konstantin Ananyev <konstantin.ananyev@intel.com>
F: lib/librte_bpf/
F: examples/bpf/
@@ -84,6 +84,8 @@ API Changes
Also, make sure to start the actual text at the margin.
=======================================================
+* bpf: ``RTE_BPF_XTYPE_NUM`` has been dropped from ``rte_bpf_xtype``
+
ABI Changes
-----------
@@ -10,10 +10,6 @@
*
* 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
@@ -36,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_RESERVED, /**< reserved for internal use */
+ RTE_BPF_ARG_RESERVED /**< reserved for internal use */
};
/**
@@ -63,8 +59,7 @@ struct rte_bpf_arg {
*/
enum rte_bpf_xtype {
RTE_BPF_XTYPE_FUNC, /**< function */
- RTE_BPF_XTYPE_VAR, /**< variable */
- RTE_BPF_XTYPE_NUM
+ RTE_BPF_XTYPE_VAR /**< variable */
};
/**
@@ -117,7 +112,6 @@ struct rte_bpf;
* @param bpf
* BPF handle to destroy.
*/
-__rte_experimental
void
rte_bpf_destroy(struct rte_bpf *bpf);
@@ -133,7 +127,6 @@ 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);
@@ -157,7 +150,6 @@ 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);
@@ -171,7 +163,6 @@ rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname,
* @return
* BPF execution return value.
*/
-__rte_experimental
uint64_t
rte_bpf_exec(const struct rte_bpf *bpf, void *ctx);
@@ -189,7 +180,6 @@ 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);
@@ -205,7 +195,6 @@ 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.
*/
-__rte_experimental
int
rte_bpf_get_jit(const struct rte_bpf *bpf, struct rte_bpf_jit *jit);
@@ -7,7 +7,6 @@
/**
* @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:
@@ -45,7 +44,6 @@ enum {
* @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);
@@ -58,7 +56,6 @@ 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);
@@ -82,7 +79,6 @@ 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,
@@ -108,7 +104,6 @@ rte_bpf_eth_rx_elf_load(uint16_t port, uint16_t queue,
* @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,
@@ -1,4 +1,4 @@
-EXPERIMENTAL {
+DPDK_21 {
global:
rte_bpf_destroy;