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 <ndabilpu...@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 via email to