[v4,03/28] ethdev: mark rte_mtr API's as stable

Message ID 20231019191016.156430-4-stephen@networkplumber.org (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series Promote many experimental API's to stable |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Stephen Hemminger Oct. 19, 2023, 7:09 p.m. UTC
  These haven't changed in a while, time has come to make them
not experimental.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 MAINTAINERS            |  2 +-
 lib/ethdev/rte_mtr.h   | 25 +------------------------
 lib/ethdev/version.map | 34 ++++++++++++++++------------------
 3 files changed, 18 insertions(+), 43 deletions(-)
  

Comments

Cristian Dumitrescu Oct. 20, 2023, 10:18 a.m. UTC | #1
> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Thursday, October 19, 2023 8:10 PM
> To: dev@dpdk.org
> Cc: Stephen Hemminger <stephen@networkplumber.org>; Thomas Monjalon
> <thomas@monjalon.net>; Dumitrescu, Cristian
> <cristian.dumitrescu@intel.com>; Ferruh Yigit <ferruh.yigit@amd.com>;
> Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Subject: [PATCH v4 03/28] ethdev: mark rte_mtr API's as stable
> 
> These haven't changed in a while, time has come to make them
> not experimental.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---

NAK.

This API needs more drivers to use it and more time before transitioning to stable.
  
Stephen Hemminger Oct. 20, 2023, 8:32 p.m. UTC | #2
On Fri, 20 Oct 2023 10:18:29 +0000
"Dumitrescu, Cristian" <cristian.dumitrescu@intel.com> wrote:

> > -----Original Message-----
> > From: Stephen Hemminger <stephen@networkplumber.org>
> > Sent: Thursday, October 19, 2023 8:10 PM
> > To: dev@dpdk.org
> > Cc: Stephen Hemminger <stephen@networkplumber.org>; Thomas Monjalon
> > <thomas@monjalon.net>; Dumitrescu, Cristian
> > <cristian.dumitrescu@intel.com>; Ferruh Yigit <ferruh.yigit@amd.com>;
> > Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> > Subject: [PATCH v4 03/28] ethdev: mark rte_mtr API's as stable
> > 
> > These haven't changed in a while, time has come to make them
> > not experimental.
> > 
> > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > ---  
> 
> NAK.
> 
> This API needs more drivers to use it and more time before transitioning to stable.

We need to discuss this at tech board. The experimental flag was intended to 
be allowed for only a limited time. The mtr library was added 5 years ago in 17.11
release! If it is not used now, it should be removed.
  
Cristian Dumitrescu Oct. 23, 2023, 9:16 a.m. UTC | #3
> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Friday, October 20, 2023 9:32 PM
> To: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Cc: dev@dpdk.org; Thomas Monjalon <thomas@monjalon.net>; Ferruh Yigit
> <ferruh.yigit@amd.com>; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>
> Subject: Re: [PATCH v4 03/28] ethdev: mark rte_mtr API's as stable
> 
> On Fri, 20 Oct 2023 10:18:29 +0000
> "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com> wrote:
> 
> > > -----Original Message-----
> > > From: Stephen Hemminger <stephen@networkplumber.org>
> > > Sent: Thursday, October 19, 2023 8:10 PM
> > > To: dev@dpdk.org
> > > Cc: Stephen Hemminger <stephen@networkplumber.org>; Thomas
> Monjalon
> > > <thomas@monjalon.net>; Dumitrescu, Cristian
> > > <cristian.dumitrescu@intel.com>; Ferruh Yigit <ferruh.yigit@amd.com>;
> > > Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> > > Subject: [PATCH v4 03/28] ethdev: mark rte_mtr API's as stable
> > >
> > > These haven't changed in a while, time has come to make them
> > > not experimental.
> > >
> > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > > ---
> >
> > NAK.
> >
> > This API needs more drivers to use it and more time before transitioning to
> stable.
> 
> We need to discuss this at tech board. The experimental flag was intended to
> be allowed for only a limited time. The mtr library was added 5 years ago in
> 17.11
> release! If it is not used now, it should be removed.

It is used, as you can quickly find for yourself, but implementing this API is
currently WIP for several devices; therefore, it would probably better to wait
a bit more before transitioning to stable in order to get this API right.
  

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 4083658697fb..ea03d35dbe5a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -427,7 +427,7 @@  T: git://dpdk.org/next/dpdk-next-net
 F: lib/ethdev/rte_tm*
 F: app/test-pmd/cmdline_tm.*
 
-Traffic Metering and Policing API - EXPERIMENTAL
+Traffic Metering and Policing API
 M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
 T: git://dpdk.org/next/dpdk-next-net
 F: lib/ethdev/rte_mtr*
diff --git a/lib/ethdev/rte_mtr.h b/lib/ethdev/rte_mtr.h
index 30e6c6b12e6e..9a20e974bdad 100644
--- a/lib/ethdev/rte_mtr.h
+++ b/lib/ethdev/rte_mtr.h
@@ -41,10 +41,8 @@ 
  *    A) Whether an MTR object is private to a flow or potentially shared by
  *       several flows has to be specified at creation time.
  *    B) Several meter actions can be potentially registered for the same flow.
- *
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
  */
+
 #include <stdint.h>
 #include <rte_compat.h>
 #include <rte_common.h>
@@ -569,7 +567,6 @@  struct rte_mtr_error {
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_capabilities_get(uint16_t port_id,
 	struct rte_mtr_capabilities *cap,
@@ -593,7 +590,6 @@  rte_mtr_capabilities_get(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_profile_add(uint16_t port_id,
 	uint32_t meter_profile_id,
@@ -615,7 +611,6 @@  rte_mtr_meter_profile_add(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_profile_delete(uint16_t port_id,
 	uint32_t meter_profile_id,
@@ -635,7 +630,6 @@  rte_mtr_meter_profile_delete(uint16_t port_id,
  * @return
  *   A valid handle in case of success, NULL otherwise.
  */
-__rte_experimental
 struct rte_flow_meter_profile *
 rte_mtr_meter_profile_get(uint16_t port_id,
 	uint32_t meter_profile_id,
@@ -663,7 +657,6 @@  rte_mtr_meter_profile_get(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_policy_validate(uint16_t port_id,
 	struct rte_mtr_meter_policy_params *policy,
@@ -690,7 +683,6 @@  rte_mtr_meter_policy_validate(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_policy_add(uint16_t port_id,
 	uint32_t policy_id,
@@ -711,7 +703,6 @@  rte_mtr_meter_policy_add(uint16_t port_id,
  * @return
  *   A valid handle in case of success, NULL otherwise.
  */
-__rte_experimental
 struct rte_flow_meter_policy *
 rte_mtr_meter_policy_get(uint16_t port_id,
 	uint32_t policy_id,
@@ -793,7 +784,6 @@  struct rte_mtr_meter_policy_params policy = \
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_policy_delete(uint16_t port_id,
 	uint32_t policy_id,
@@ -822,7 +812,6 @@  rte_mtr_meter_policy_delete(uint16_t port_id,
  *
  * @see enum rte_flow_action_type::RTE_FLOW_ACTION_TYPE_METER
  */
-__rte_experimental
 int
 rte_mtr_create(uint16_t port_id,
 	uint32_t mtr_id,
@@ -846,7 +835,6 @@  rte_mtr_create(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_destroy(uint16_t port_id,
 	uint32_t mtr_id,
@@ -874,7 +862,6 @@  rte_mtr_destroy(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_disable(uint16_t port_id,
 	uint32_t mtr_id,
@@ -896,7 +883,6 @@  rte_mtr_meter_disable(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_enable(uint16_t port_id,
 	uint32_t mtr_id,
@@ -916,7 +902,6 @@  rte_mtr_meter_enable(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_profile_update(uint16_t port_id,
 	uint32_t mtr_id,
@@ -937,7 +922,6 @@  rte_mtr_meter_profile_update(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_policy_update(uint16_t port_id,
 	uint32_t mtr_id,
@@ -964,7 +948,6 @@  rte_mtr_meter_policy_update(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_dscp_table_update(uint16_t port_id,
 	uint32_t mtr_id, enum rte_mtr_color_in_protocol proto,
@@ -991,7 +974,6 @@  rte_mtr_meter_dscp_table_update(uint16_t port_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_meter_vlan_table_update(uint16_t port_id, uint32_t mtr_id,
 				enum rte_mtr_color_in_protocol proto,
@@ -1022,7 +1004,6 @@  rte_mtr_meter_vlan_table_update(uint16_t port_id, uint32_t mtr_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_color_in_protocol_set(uint16_t port_id, uint32_t mtr_id,
 	enum rte_mtr_color_in_protocol proto, uint32_t priority,
@@ -1042,7 +1023,6 @@  rte_mtr_color_in_protocol_set(uint16_t port_id, uint32_t mtr_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_color_in_protocol_get(uint16_t port_id, uint32_t mtr_id,
 	uint64_t *proto_mask,
@@ -1064,7 +1044,6 @@  rte_mtr_color_in_protocol_get(uint16_t port_id, uint32_t mtr_id,
  * @return
  *   0 on success, non-zero error code otherwise.
  */
-__rte_experimental
 int
 rte_mtr_color_in_protocol_priority_get(uint16_t port_id, uint32_t mtr_id,
 	enum rte_mtr_color_in_protocol proto, uint32_t *priority,
@@ -1088,7 +1067,6 @@  rte_mtr_color_in_protocol_priority_get(uint16_t port_id, uint32_t mtr_id,
  *
  * @see enum rte_mtr_stats_type
  */
-__rte_experimental
 int
 rte_mtr_stats_update(uint16_t port_id,
 	uint32_t mtr_id,
@@ -1120,7 +1098,6 @@  rte_mtr_stats_update(uint16_t port_id,
  *
  * @see enum rte_mtr_stats_type
  */
-__rte_experimental
 int
 rte_mtr_stats_read(uint16_t port_id,
 	uint32_t mtr_id,
diff --git a/lib/ethdev/version.map b/lib/ethdev/version.map
index 919ba5b8e65b..3611909eb85a 100644
--- a/lib/ethdev/version.map
+++ b/lib/ethdev/version.map
@@ -135,26 +135,34 @@  DPDK_24 {
 	rte_flow_pick_transfer_proxy;
 	rte_flow_query;
 	rte_flow_validate;
-
-	local: *;
-};
-
-EXPERIMENTAL {
-	global:
-
-	# added in 17.11
 	rte_mtr_capabilities_get;
+	rte_mtr_color_in_protocol_get;
+	rte_mtr_color_in_protocol_priority_get;
+	rte_mtr_color_in_protocol_set;
 	rte_mtr_create;
 	rte_mtr_destroy;
 	rte_mtr_meter_disable;
 	rte_mtr_meter_dscp_table_update;
 	rte_mtr_meter_enable;
+	rte_mtr_meter_policy_add;
+	rte_mtr_meter_policy_delete;
+	rte_mtr_meter_policy_get;
+	rte_mtr_meter_policy_update;
+	rte_mtr_meter_policy_validate;
 	rte_mtr_meter_profile_add;
 	rte_mtr_meter_profile_delete;
+	rte_mtr_meter_profile_get;
 	rte_mtr_meter_profile_update;
+	rte_mtr_meter_vlan_table_update;
 	rte_mtr_stats_read;
 	rte_mtr_stats_update;
 
+	local: *;
+};
+
+EXPERIMENTAL {
+	global:
+
 	# added in 18.05
 	rte_eth_dev_get_module_eeprom;
 	rte_eth_dev_get_module_info;
@@ -237,10 +245,6 @@  EXPERIMENTAL {
 	rte_flow_action_handle_destroy;
 	rte_flow_action_handle_update;
 	rte_flow_action_handle_query;
-	rte_mtr_meter_policy_add;
-	rte_mtr_meter_policy_delete;
-	rte_mtr_meter_policy_update;
-	rte_mtr_meter_policy_validate;
 
 	# added in 21.11
 	rte_eth_dev_capability_name;
@@ -275,10 +279,6 @@  EXPERIMENTAL {
 	# added in 22.07
 	rte_eth_rx_avail_thresh_query;
 	rte_eth_rx_avail_thresh_set;
-	rte_mtr_color_in_protocol_get;
-	rte_mtr_color_in_protocol_priority_get;
-	rte_mtr_color_in_protocol_set;
-	rte_mtr_meter_vlan_table_update;
 
 	# added in 22.11
 	rte_eth_buffer_split_get_supported_hdr_ptypes;
@@ -290,8 +290,6 @@  EXPERIMENTAL {
 	rte_eth_tx_descriptor_dump;
 	rte_flow_async_action_handle_query;
 	rte_flow_get_q_aged_flows;
-	rte_mtr_meter_policy_get;
-	rte_mtr_meter_profile_get;
 
 	# added in 23.03
 	rte_eth_dev_count_aggr_ports;