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]>

