Hi,

Thanks

> -----Original Message-----
> From: Dariusz Sosnowski <[email protected]>
> Sent: Friday, May 29, 2026 3:33 PM
> To: Slava Ovsiienko <[email protected]>; Bing Zhao
> <[email protected]>; Ori Kam <[email protected]>; Suanming Mou
> <[email protected]>; Matan Azrad <[email protected]>
> Cc: [email protected]
> 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 <[email protected]>
> ---
> 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 <[email protected]>

Reply via email to