[PATCH v2] net/mlx5: promote private API to stable
Bing Zhao
bingz at nvidia.com
Tue Jun 2 08:07:02 CEST 2026
Hi,
Thanks
> -----Original Message-----
> From: Dariusz Sosnowski <dsosnowski at nvidia.com>
> Sent: Friday, May 29, 2026 3:33 PM
> To: Slava Ovsiienko <viacheslavo at nvidia.com>; Bing Zhao
> <bingz at nvidia.com>; Ori Kam <orika at nvidia.com>; Suanming Mou
> <suanmingm at nvidia.com>; Matan Azrad <matan at nvidia.com>
> Cc: dev at dpdk.org
> Subject: [PATCH v2] net/mlx5: promote private API to stable
>
> Following experimental functions are exposed by mlx5 PMD since 25.11
> release:
>
> - rte_pmd_mlx5_driver_event_cb_register
> - rte_pmd_mlx5_driver_event_cb_unregister
> - rte_pmd_mlx5_enable_steering
> - rte_pmd_mlx5_disable_steering
>
> First two are used to register callbacks for driver events (when Rx/Tx
> queues are created or destroyed).
> Other two are used to enable/disable flow steering in mlx5 PMD.
> No changes were made and no changes are planned to these symbols.
>
> These are currently used by NVIDIA DOCA SDK since version 3.3, which
> started depending on upstream DPDK releases [1].
> Purpose of their use is to:
>
> - expose HW identifiers of Rx/Tx mlx5 queues managed by DPDK and
> - allow flow steering to happen outside of DPDK.
>
> Also, some of these symbols will be used by netdev-doca backend in Open
> vSwitch [2].
> Whenever a DOCA netdev would be added/removed in Open vSwitch, it will
> have to disable/enable steering for mlx5 driver.
> Stabilizing these symbols is required by current OVS policy to remove the
> need for ALLOW_EXPERIMENTAL_API [3].
>
> This patch promotes aforementioned symbols to stable.
>
> [1]: https://docs.nvidia.com/doca/sdk/customer-affecting-
> changes/index.html
> [2]:
> https://patchwork.ozlabs.org/project/openvswitch/list/?series=504726&state
> =%2A&archive=both
> [3]: https://mail.openvswitch.org/pipermail/ovs-dev/2026-May/432066.html
>
> Signed-off-by: Dariusz Sosnowski <dsosnowski at nvidia.com>
> ---
> v2:
> - Updated 26.07 release notes.
>
> doc/guides/rel_notes/release_26_07.rst | 9 +++++++++
> drivers/net/mlx5/mlx5_driver_event.c | 4 ++--
> drivers/net/mlx5/mlx5_flow.c | 4 ++--
> drivers/net/mlx5/rte_pmd_mlx5.h | 4 ----
> 4 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/doc/guides/rel_notes/release_26_07.rst
> b/doc/guides/rel_notes/release_26_07.rst
> index 6eba91a5e9..2af24d40a0 100644
> --- a/doc/guides/rel_notes/release_26_07.rst
> +++ b/doc/guides/rel_notes/release_26_07.rst
> @@ -127,6 +127,15 @@ API Changes
> - ``rte_flow_dynf_metadata_get``
> - ``rte_flow_dynf_metadata_set``
>
> +* **mlx5: promoted driver event and steering management APIs from
> +experimental to stable.**
> +
> + The following mlx5 APIs are no longer marked experimental:
> +
> + - ``rte_pmd_mlx5_driver_event_cb_register``
> + - ``rte_pmd_mlx5_driver_event_cb_unregister``
> + - ``rte_pmd_mlx5_enable_steering``
> + - ``rte_pmd_mlx5_disable_steering``
> +
>
> ABI Changes
> -----------
> diff --git a/drivers/net/mlx5/mlx5_driver_event.c
> b/drivers/net/mlx5/mlx5_driver_event.c
> index 1dc8029ee5..89e49331c8 100644
> --- a/drivers/net/mlx5/mlx5_driver_event.c
> +++ b/drivers/net/mlx5/mlx5_driver_event.c
> @@ -236,7 +236,7 @@
> notify_existing_devices(rte_pmd_mlx5_driver_event_callback_t cb, void
> *opaque)
> notify_existing_queues(port_id, cb, opaque); }
>
> -RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_pmd_mlx5_driver_event_cb_register,
> 25.11)
> +RTE_EXPORT_SYMBOL(rte_pmd_mlx5_driver_event_cb_register)
> int
>
> rte_pmd_mlx5_driver_event_cb_register(rte_pmd_mlx5_driver_event_callback_t
> cb, void *opaque) { @@ -264,7 +264,7 @@
> rte_pmd_mlx5_driver_event_cb_register(rte_pmd_mlx5_driver_event_callback_t
> cb, v
> return 0;
> }
>
> -RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_pmd_mlx5_driver_event_cb_unregister,
> 25.11)
> +RTE_EXPORT_SYMBOL(rte_pmd_mlx5_driver_event_cb_unregister)
> int
>
> rte_pmd_mlx5_driver_event_cb_unregister(rte_pmd_mlx5_driver_event_callback
> _t cb) { diff --git a/drivers/net/mlx5/mlx5_flow.c
> b/drivers/net/mlx5/mlx5_flow.c index 915ea29a5a..a95dd9dc94 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -12506,7 +12506,7 @@ flow_disable_steering_run_on_related(struct
> rte_eth_dev *dev,
> }
> }
>
> -RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_pmd_mlx5_disable_steering, 25.11)
> +RTE_EXPORT_SYMBOL(rte_pmd_mlx5_disable_steering)
> void
> rte_pmd_mlx5_disable_steering(void)
> {
> @@ -12532,7 +12532,7 @@ rte_pmd_mlx5_disable_steering(void)
> mlx5_steering_disabled = true;
> }
>
> -RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_pmd_mlx5_enable_steering, 25.11)
> +RTE_EXPORT_SYMBOL(rte_pmd_mlx5_enable_steering)
> int
> rte_pmd_mlx5_enable_steering(void)
> {
> diff --git a/drivers/net/mlx5/rte_pmd_mlx5.h
> b/drivers/net/mlx5/rte_pmd_mlx5.h index 55a26cb067..f482875434 100644
> --- a/drivers/net/mlx5/rte_pmd_mlx5.h
> +++ b/drivers/net/mlx5/rte_pmd_mlx5.h
> @@ -620,7 +620,6 @@ int rte_pmd_mlx5_external_sq_disable(uint16_t port_id,
> uint32_t sq_num);
> * - (-EEXIST) if @p cb was already registered.
> * - (-ENOMEM) if failed to allocate memory for callback entry.
> */
> -__rte_experimental
> int
>
> rte_pmd_mlx5_driver_event_cb_register(rte_pmd_mlx5_driver_event_callback_t
> cb, void *opaque);
>
> @@ -641,7 +640,6 @@
> rte_pmd_mlx5_driver_event_cb_register(rte_pmd_mlx5_driver_event_callback_t
> cb, v
> * - 0 if callback was successfully unregistered or if no such callback
> was registered.
> * - (-EINVAL) if @p cb is NULL.
> */
> -__rte_experimental
> int
>
> rte_pmd_mlx5_driver_event_cb_unregister(rte_pmd_mlx5_driver_event_callback
> _t cb);
>
> @@ -679,7 +677,6 @@
> rte_pmd_mlx5_driver_event_cb_unregister(rte_pmd_mlx5_driver_event_callback
> _t cb)
> * with other functions from ethdev API used to configure any of the mlx5
> ports.
> * It is the responsibility of the application to enforce this.
> */
> -__rte_experimental
> void
> rte_pmd_mlx5_disable_steering(void);
>
> @@ -697,7 +694,6 @@ rte_pmd_mlx5_disable_steering(void);
> * - 0 - Flow steering was successfully enabled or it flow steering was
> never disabled.
> * - (-EBUSY) - There are mlx5 ports probed and re-enabling steering
> cannot be done safely.
> */
> -__rte_experimental
> int
> rte_pmd_mlx5_enable_steering(void);
>
> --
> 2.47.3
Acked-by: Bing Zhao <bingz at nvidia.com>
More information about the dev
mailing list