The BPF lib was introduced in 18.05. There were no changes in it's public API since 19.11. It should be mature enough to remove it's 'experimental' tag. Signed-off-by: Conor Walsh <conor.walsh@intel.com> --- MAINTAINERS | 2 +- lib/librte_bpf/rte_bpf.h | 10 ---------- lib/librte_bpf/rte_bpf_ethdev.h | 5 ----- lib/librte_bpf/rte_bpf_version.map | 2 +- 4 files changed, 2 insertions(+), 17 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index f66772908..a14347f04 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -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/ diff --git a/lib/librte_bpf/rte_bpf.h b/lib/librte_bpf/rte_bpf.h index e2d419b4e..be17b830e 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 @@ -117,7 +113,6 @@ struct rte_bpf; * @param bpf * BPF handle to destroy. */ -__rte_experimental void rte_bpf_destroy(struct rte_bpf *bpf); @@ -133,7 +128,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 +151,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 +164,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 +181,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 +196,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 0ce526e39..135062c9e 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 a203e088e..b75a0034b 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; -- 2.25.1 -------------------------------------------------------------- Intel Research and Development Ireland Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
> > The BPF lib was introduced in 18.05. > There were no changes in it's public API since 19.11. > It should be mature enough to remove it's 'experimental' tag. > > Signed-off-by: Conor Walsh <conor.walsh@intel.com> > --- Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> > 2.25.1
On Tue, Sep 1, 2020 at 4:50 PM Conor Walsh <conor.walsh@intel.com> wrote:
>
> The BPF lib was introduced in 18.05.
> There were no changes in it's public API since 19.11.
> It should be mature enough to remove it's 'experimental' tag.
Should RTE_BPF_XTYPE_NUM be dropped?
--
David Marchand
>
> On Tue, Sep 1, 2020 at 4:50 PM Conor Walsh <conor.walsh@intel.com> wrote:
> >
> > The BPF lib was introduced in 18.05.
> > There were no changes in it's public API since 19.11.
> > It should be mature enough to remove it's 'experimental' tag.
>
> Should RTE_BPF_XTYPE_NUM be dropped?
Good catch, thanks.
Yes I agree, we probably better do it now to avoid ABI problems in future.
The BPF lib was introduced in 18.05. There were no changes in it's public API since 19.11. It should be mature enough to remove it's 'experimental' tag. RTE_BPF_XTYPE_NUM is also being dropped from rte_bpf_xtype to avoid possible ABI problems in the future. --- v2: RTE_BPF_XTYPE_NUM dropped from rte_bpf_xtype Signed-off-by: Conor Walsh <conor.walsh@intel.com> --- MAINTAINERS | 2 +- doc/guides/rel_notes/release_20_11.rst | 2 +- lib/librte_bpf/rte_bpf.h | 15 ++------------- lib/librte_bpf/rte_bpf_ethdev.h | 5 ----- lib/librte_bpf/rte_bpf_version.map | 2 +- 5 files changed, 5 insertions(+), 21 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index ed163f5d5..742c5eb24 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -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/ diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index df227a177..8a785d78b 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -84,7 +84,6 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= - ABI Changes ----------- @@ -100,6 +99,7 @@ ABI Changes Also, make sure to start the actual text at the margin. ======================================================= +* bpf: ``RTE_BPF_XTYPE_NUM`` has been dropped from ``rte_bpf_xtype`` Known Issues ------------ diff --git a/lib/librte_bpf/rte_bpf.h b/lib/librte_bpf/rte_bpf.h index e2d419b4e..69116f36b 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 0ce526e39..135062c9e 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 a203e088e..b75a0034b 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; -- 2.25.1
The BPF lib was introduced in 18.05. There were no changes in it's public API since 19.11. It should be mature enough to remove it's 'experimental' tag. RTE_BPF_XTYPE_NUM is also being dropped from rte_bpf_xtype to avoid possible ABI problems in the future. --- v2: RTE_BPF_XTYPE_NUM dropped from rte_bpf_xtype --- v3: fix commit title and move from ABI to API in release notes Signed-off-by: Conor Walsh <conor.walsh@intel.com> --- MAINTAINERS | 2 +- doc/guides/rel_notes/release_20_11.rst | 2 ++ lib/librte_bpf/rte_bpf.h | 15 ++------------- lib/librte_bpf/rte_bpf_ethdev.h | 5 ----- lib/librte_bpf/rte_bpf_version.map | 2 +- 5 files changed, 6 insertions(+), 20 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index ed163f5d5..742c5eb24 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -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/ diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index df227a177..f37a0ae48 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -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 ----------- diff --git a/lib/librte_bpf/rte_bpf.h b/lib/librte_bpf/rte_bpf.h index e2d419b4e..69116f36b 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 0ce526e39..135062c9e 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 a203e088e..b75a0034b 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; -- 2.25.1
> > The BPF lib was introduced in 18.05. > There were no changes in it's public API since 19.11. > It should be mature enough to remove it's 'experimental' tag. > RTE_BPF_XTYPE_NUM is also being dropped from rte_bpf_xtype to > avoid possible ABI problems in the future. > > --- > v2: RTE_BPF_XTYPE_NUM dropped from rte_bpf_xtype > > --- > v3: fix commit title and move from ABI to API in release notes > > Signed-off-by: Conor Walsh <conor.walsh@intel.com> > --- Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> > 2.25.1
On Mon, Sep 14, 2020 at 4:11 PM Conor Walsh <conor.walsh@intel.com> wrote:
>
> The BPF lib was introduced in 18.05.
> There were no changes in it's public API since 19.11.
> It should be mature enough to remove it's 'experimental' tag.
> RTE_BPF_XTYPE_NUM is also being dropped from rte_bpf_xtype to
> avoid possible ABI problems in the future.
>
> ---
> v2: RTE_BPF_XTYPE_NUM dropped from rte_bpf_xtype
>
> ---
> v3: fix commit title and move from ABI to API in release notes
>
> Signed-off-by: Conor Walsh <conor.walsh@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Things after --- are recognised as annotations and ignored by git when applying.
I fixed your SoB tag and applied, thanks.
--
David Marchand