From: Conor Walsh Date: Mon, 14 Sep 2020 14:11:42 +0000 (+0000) Subject: bpf: promote library as stable X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=dc18be1d8b9666bd9cc3ab929d001b44e80bc61a;p=dpdk.git bpf: promote library as stable The BPF lib was introduced in 18.05. There were no changes in its public API since 19.11. It should be mature enough to remove its 'experimental' tag. RTE_BPF_XTYPE_NUM is also being dropped from rte_bpf_xtype to avoid possible ABI problems in the future. Signed-off-by: Conor Walsh Acked-by: Konstantin Ananyev --- diff --git a/MAINTAINERS b/MAINTAINERS index 3b16d7a4b8..c0abbe0fc8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1474,7 +1474,7 @@ F: app/test/test_telemetry* F: usertools/dpdk-telemetry* F: doc/guides/howto/telemetry.rst -BPF - EXPERIMENTAL +BPF M: Konstantin Ananyev F: lib/librte_bpf/ F: examples/bpf/ diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index 81d262cfc4..cc726095a7 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -100,6 +100,8 @@ API Changes and the function ``rte_rawdev_queue_conf_get()`` from ``void`` to ``int`` allowing the return of error codes from drivers. +* bpf: ``RTE_BPF_XTYPE_NUM`` has been dropped from ``rte_bpf_xtype``. + ABI Changes ----------- diff --git a/lib/librte_bpf/rte_bpf.h b/lib/librte_bpf/rte_bpf.h index e2d419b4ef..69116f36ba 100644 --- a/lib/librte_bpf/rte_bpf.h +++ b/lib/librte_bpf/rte_bpf.h @@ -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); diff --git a/lib/librte_bpf/rte_bpf_ethdev.h b/lib/librte_bpf/rte_bpf_ethdev.h index 0ce526e399..135062c9e1 100644 --- a/lib/librte_bpf/rte_bpf_ethdev.h +++ b/lib/librte_bpf/rte_bpf_ethdev.h @@ -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, diff --git a/lib/librte_bpf/rte_bpf_version.map b/lib/librte_bpf/rte_bpf_version.map index a203e088ea..b75a0034bc 100644 --- a/lib/librte_bpf/rte_bpf_version.map +++ b/lib/librte_bpf/rte_bpf_version.map @@ -1,4 +1,4 @@ -EXPERIMENTAL { +DPDK_21 { global: rte_bpf_destroy;