DPDK patches and discussions
 help / color / mirror / Atom feed
From: Nithin Dabilpuram <ndabilpuram@marvell.com>
To: "Kinsella, Ray" <mdr@ashroe.eu>
Cc: <ferruh.yigit@intel.com>, <bruce.richardson@intel.com>,
	<cristian.dumitrescu@intel.com>, <thomas@monjalon.net>,
	<bluca@debian.org>, <jasvinder.singh@intel.com>,
	<arybchenko@solarflare.com>, <ray.kinsella@intel.com>,
	<nhorman@tuxdriver.com>, <ktraynor@redhat.com>,
	<david.marchand@redhat.com>, <dev@dpdk.org>, <jerinj@marvell.com>
Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v2] ethdev: mark all traffic manager API as experimental
Date: Thu, 10 Sep 2020 16:52:55 +0530	[thread overview]
Message-ID: <20200910112255.GD25338@outlook.office365.com> (raw)
In-Reply-To: <edd7d621-6926-993b-039b-0ad65cc846d0@ashroe.eu>

On Thu, Sep 10, 2020 at 12:01:49PM +0100, Kinsella, Ray wrote:
> 
> 
> On 10/09/2020 11:56, Nithin Dabilpuram wrote:
> > On Thu, Sep 10, 2020 at 09:30:15AM +0100, Kinsella, Ray wrote:
> >> External Email
> >>
> >> ----------------------------------------------------------------------
> >> On 10/09/2020 09:05, Nithin Dabilpuram wrote:
> >>> This patch marks all traffic manager API as experimental as
> >>> per discussion mentioned in below thread.
> >>>
> >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__mails.dpdk.org_archives_dev_2020-2DApril_165364.html&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=FZ_tPCbgFOh18zwRPO9H0yDx8VW38vuapifdDfc8SFQ&m=NlIUXSsugCPTKBv9qxsaMHOhTuC90TUqLcGg962VVyA&s=DZL_m0a73uef5Qgal1iFqc9dTdAuUd8J6eC0mZOQlFs&e= 
> >>>
> >>> Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
> >>> ---
> >>>
> >>> v2:
> >>> - Updated commit message.
> >>>
> >>>  lib/librte_ethdev/rte_ethdev_version.map | 62 ++++++++++++++++----------------
> >>>  lib/librte_ethdev/rte_tm.h               | 33 ++++++++++++++++-
> >>>  2 files changed, 64 insertions(+), 31 deletions(-)
> >>>
> >>> diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map
> >>> index 1212a17..3da4512 100644
> >>> --- a/lib/librte_ethdev/rte_ethdev_version.map
> >>> +++ b/lib/librte_ethdev/rte_ethdev_version.map
> >>> @@ -135,36 +135,6 @@ DPDK_20.0 {
> >>>  	rte_flow_isolate;
> >>>  	rte_flow_query;
> >>>  	rte_flow_validate;
> >>> -	rte_tm_capabilities_get;
> >>> -	rte_tm_get_number_of_leaf_nodes;
> >>> -	rte_tm_hierarchy_commit;
> >>> -	rte_tm_level_capabilities_get;
> >>> -	rte_tm_mark_ip_dscp;
> >>> -	rte_tm_mark_ip_ecn;
> >>> -	rte_tm_mark_vlan_dei;
> >>> -	rte_tm_node_add;
> >>> -	rte_tm_node_capabilities_get;
> >>> -	rte_tm_node_cman_update;
> >>> -	rte_tm_node_delete;
> >>> -	rte_tm_node_parent_update;
> >>> -	rte_tm_node_resume;
> >>> -	rte_tm_node_shaper_update;
> >>> -	rte_tm_node_shared_shaper_update;
> >>> -	rte_tm_node_shared_wred_context_update;
> >>> -	rte_tm_node_stats_read;
> >>> -	rte_tm_node_stats_update;
> >>> -	rte_tm_node_suspend;
> >>> -	rte_tm_node_type_get;
> >>> -	rte_tm_node_wfq_weight_mode_update;
> >>> -	rte_tm_node_wred_context_update;
> >>> -	rte_tm_shaper_profile_add;
> >>> -	rte_tm_shaper_profile_delete;
> >>> -	rte_tm_shared_shaper_add_update;
> >>> -	rte_tm_shared_shaper_delete;
> >>> -	rte_tm_shared_wred_context_add_update;
> >>> -	rte_tm_shared_wred_context_delete;
> >>> -	rte_tm_wred_profile_add;
> >>> -	rte_tm_wred_profile_delete;
> >>>  
> >>>  	local: *;
> >>>  };
> >>> @@ -241,6 +211,38 @@ EXPERIMENTAL {
> >>>  	__rte_ethdev_trace_rx_burst;
> >>>  	__rte_ethdev_trace_tx_burst;
> >>>  	rte_flow_get_aged_flows;
> >>> +
> >>> +	# Marked as experimental in 20.11
> >>> +	rte_tm_capabilities_get;
> >>> +	rte_tm_get_number_of_leaf_nodes;
> >>> +	rte_tm_hierarchy_commit;
> >>> +	rte_tm_level_capabilities_get;
> >>> +	rte_tm_mark_ip_dscp;
> >>> +	rte_tm_mark_ip_ecn;
> >>> +	rte_tm_mark_vlan_dei;
> >>> +	rte_tm_node_add;
> >>> +	rte_tm_node_capabilities_get;
> >>> +	rte_tm_node_cman_update;
> >>> +	rte_tm_node_delete;
> >>> +	rte_tm_node_parent_update;
> >>> +	rte_tm_node_resume;
> >>> +	rte_tm_node_shaper_update;
> >>> +	rte_tm_node_shared_shaper_update;
> >>> +	rte_tm_node_shared_wred_context_update;
> >>> +	rte_tm_node_stats_read;
> >>> +	rte_tm_node_stats_update;
> >>> +	rte_tm_node_suspend;
> >>> +	rte_tm_node_type_get;
> >>> +	rte_tm_node_wfq_weight_mode_update;
> >>> +	rte_tm_node_wred_context_update;
> >>> +	rte_tm_shaper_profile_add;
> >>> +	rte_tm_shaper_profile_delete;
> >>> +	rte_tm_shared_shaper_add_update;
> >>> +	rte_tm_shared_shaper_delete;
> >>> +	rte_tm_shared_wred_context_add_update;
> >>> +	rte_tm_shared_wred_context_delete;
> >>> +	rte_tm_wred_profile_add;
> >>> +	rte_tm_wred_profile_delete;
> >>>  };
> >> [SNIP]
> >>
> >> So I will re-interate what I said in April, all of these API have existed since DPDK 17.08.
> >> I find it hard to believe they are all at imminent risk of changing to degree they _all_ warrant EXPERIMENTAL status.
> > 
> > As discussed earlier and agreed by TM and Ethdev maintainers, __rte_experimental tag was introduced several
> > releases after TM spec was added and TM spec remained untouched ending up making it stable unintentionally. 
> 
> We discussed it I agree, but to identify how this happened.
> I am not sure we all agreed it was ok to give a blanket EXPERIMENTAL. 
> 
> This API has been largely unchanged for 3 years.
> How can we justify keeping EXPERIMENTAL without a specific reason?
> Can you be more specific about planned changes?

Basically the changes atleast which initiated this discussion were

#1 Support to configure shaper in pkt mode that helps ratelimiting in
PPS(Packets per Sec) as opposed to BPS(Bits per Sec).
Needs change to a lot of existing tm param and capability structs.

#2 Support dynamic offload flags based Tx offload for tm packet marking.

#3 Support TM node color stats that report per tm color(red, green, yellow) pkt stats.

All the above three changes though add significant features and doesn't break existing
PMD's. 

> 
> > 
> > Bruce and other maintainers pointed out that we cannot fix it as a "Fixes:" patch in order
> > to honor ABI commitments, and suggestion was to change the complete spec back to
> > experimental in next ABI change window and proceed with improvements that make
> > it stable API in subsequent releases.
> >>
> >> Ray K

  reply	other threads:[~2020-09-10 11:23 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-01 17:16 [dpdk-dev] [PATCH] doc: deprication notice to mark tm spec " Nithin Dabilpuram
2020-05-05  6:47 ` Ray Kinsella
2020-05-05  7:45   ` [dpdk-dev] [EXT] " Nithin Dabilpuram
2020-05-05  8:07 ` [dpdk-dev] [PATCH v2] " Nithin Dabilpuram
2020-05-05  8:10   ` Ray Kinsella
2020-05-05  8:55   ` Dumitrescu, Cristian
2020-05-21 10:49     ` Jerin Jacob
2020-05-24 20:58       ` Nithin Kumar D
2020-05-24 23:33       ` Thomas Monjalon
2020-09-09 17:22 ` [dpdk-dev] [PATCH] ethdev: mark all traffic manager API " Nithin Dabilpuram
2020-09-09 17:49   ` Dumitrescu, Cristian
2020-09-09 18:23   ` Ferruh Yigit
2020-09-10  8:05   ` [dpdk-dev] [PATCH v2] " Nithin Dabilpuram
2020-09-10  8:30     ` Kinsella, Ray
2020-09-10 10:56       ` [dpdk-dev] [EXT] " Nithin Dabilpuram
2020-09-10 11:01         ` Kinsella, Ray
2020-09-10 11:22           ` Nithin Dabilpuram [this message]
2020-09-10  8:36     ` [dpdk-dev] " Ferruh Yigit
2020-09-10  8:37       ` Dumitrescu, Cristian
2020-09-10  9:54         ` [dpdk-dev] [EXT] " Nithin Dabilpuram
2020-09-10  9:51       ` [dpdk-dev] [EXT] " Nithin Dabilpuram
2020-09-10 10:09   ` [dpdk-dev] [PATCH v3] " Nithin Dabilpuram
2020-09-10 11:34     ` Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200910112255.GD25338@outlook.office365.com \
    --to=ndabilpuram@marvell.com \
    --cc=arybchenko@solarflare.com \
    --cc=bluca@debian.org \
    --cc=bruce.richardson@intel.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=jasvinder.singh@intel.com \
    --cc=jerinj@marvell.com \
    --cc=ktraynor@redhat.com \
    --cc=mdr@ashroe.eu \
    --cc=nhorman@tuxdriver.com \
    --cc=ray.kinsella@intel.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).