From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Dumitrescu, Cristian" Subject: Re: [PATCH v3 2/2] ethdev: add hierarchical scheduler API Date: Mon, 6 Mar 2017 16:59:07 +0000 Message-ID: <3EB4FA525960D640B5BDFFD6A3D891265275A053@IRSMSX108.ger.corp.intel.com> References: <1488589820-206947-1-git-send-email-cristian.dumitrescu@intel.com> <1488589820-206947-3-git-send-email-cristian.dumitrescu@intel.com> <6158991.OypYtkqGNY@xps13> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "dev@dpdk.org" , "jerin.jacob@caviumnetworks.com" , "balasubramanian.manoharan@cavium.com" , "hemant.agrawal@nxp.com" , "shreyansh.jain@nxp.com" , "Wiles, Keith" , "Richardson, Bruce" To: Thomas Monjalon Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 09583FA5C for ; Mon, 6 Mar 2017 17:59:10 +0100 (CET) In-Reply-To: <6158991.OypYtkqGNY@xps13> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > Sent: Monday, March 6, 2017 10:39 AM > To: Dumitrescu, Cristian > Cc: dev@dpdk.org; jerin.jacob@caviumnetworks.com; > balasubramanian.manoharan@cavium.com; hemant.agrawal@nxp.com; > shreyansh.jain@nxp.com > Subject: Re: [PATCH v3 2/2] ethdev: add hierarchical scheduler API >=20 > 2017-03-04 01:10, Cristian Dumitrescu: > > This patch introduces the generic ethdev API for the traffic manager > > capability, which includes: hierarchical scheduling, traffic shaping, > > congestion management, packet marking. >=20 > We already have some API for QoS. Why integrating them in ethdev? > ethdev is an interface for networking drivers. > I think the QoS has nothing to do with drivers. > If there are some operations to offload in drivers, please identify them > and let's add the operations to ethdev. >=20 The reason to add to ethdev is because QoS traffic management/hierarchical = scheduling is just another TX offload for Ethernet devices. This TX offload= is present in NICs, NPUs and SoCs from Broadcom, Cavium, Intel, Mellanox, = Netronome, NXP, others. The API we currently have in DPDK (librte_sched) is great, but it refers to= an implementation for a fixed set of features for a BRAS-like hierarchy. T= he current abstraction layer proposal is intended to support pretty much an= y hierarchy and traffic management features such as hierarchical scheduling= , traffic shaping, congestion management, marking under the same API. It ta= rgets pretty much any implementation, either HW, SW or hybrid; it does supp= ort the existing librte_sched library feature set, but it is not limited to= it. > > Main features: > > - Exposed as ethdev plugin capability (similar to rte_flow approach) >=20 > I do not know what you call an ethdev plugin. > rte_flow is a part of the driver interface. We extend the ethdev feature set using a feature-specific name space and se= parate files (module/plugin-like) as opposed to simply adding new functions= in structure eth_dev_ops in file rte_ethdev.h (IMO monolithic approach), s= imilar to rte_flow, which is already part of DPDK.