From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id ABFF52BDD for ; Tue, 22 Mar 2016 06:50:32 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP; 21 Mar 2016 22:50:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,375,1455004800"; d="scan'208";a="929144481" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga001.fm.intel.com with ESMTP; 21 Mar 2016 22:50:32 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 21 Mar 2016 22:50:31 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 21 Mar 2016 22:50:30 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.136]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.18]) with mapi id 14.03.0248.002; Tue, 22 Mar 2016 13:50:28 +0800 From: "Qiu, Michael" To: Kyle Larose , "Richardson, Bruce" CC: Thomas Monjalon , "Zhang, Helin" , Stephen Hemminger , "dev@dpdk.org" Thread-Topic: [dpdk-dev] DPDK and HW offloads Thread-Index: AQHRgrNHrZMwEFSWME2cIx8wAcyncg== Date: Tue, 22 Mar 2016 05:50:28 +0000 Message-ID: <533710CFB86FA344BFBF2D6802E6028622F70D9D@SHSMSX101.ccr.corp.intel.com> References: <20160318101611.2df26ef6@xeon-e3> <10753400.05iPBPOT6f@xps13> <29795767.yLuRT7a5hO@xps13> <20160321145249.GA16732@bricha3-MOBL3> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] DPDK and HW offloads X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Mar 2016 05:50:33 -0000 On 3/21/2016 11:27 PM, Kyle Larose wrote:=0A= > On Mon, Mar 21, 2016 at 10:52 AM, Bruce Richardson=0A= > wrote:=0A= >> On Sun, Mar 20, 2016 at 08:18:57PM +0100, Thomas Monjalon wrote:=0A= >>> 2016-03-20 14:17, Zhang, Helin:=0A= >>>> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]=0A= >>>>> 2016-03-18 10:16, Stephen Hemminger:=0A= >>>>>> Right now, all those offload features are pretty much unusable in a= =0A= >>>>>> real product without lots and lots of extra codes and huge bug=0A= >>>>>> surface. It bothers me enough that I would recommend removing much o= f the=0A= >>>>> filter/offload/ptype stuff from DPDK!=0A= >>>>>=0A= >>>>> One of the biggest challenge is to think about a good filtering API.= =0A= >>>>> The offloading has some interaction with the mbuf struct.=0A= >>>>>=0A= >>>>> I would like to suggest rewriting ethdev API by keeping it as is for = some time for=0A= >>>>> compatibility while creating a new one. What about the prefix dpdk_ne= tdev_ to=0A= >>>>> progressively replace rte_eth_dev?=0A= >>>> I totally agree with to add new and generic APIs for user applications= . But I don't=0A= >>>> think we need to remove all current APIs. Generic APIs may not support= all advanced=0A= >>>> hardware features, while specific APIs can. Why not support all? One g= eneric APIs for=0A= >>>> common users, and others APIs for advanced users.=0A= >>> Yes we cannot access to every features of a device through generic API.= =0A= >>> Until now we were trying to add an ethdev API for every features even i= f it=0A= >>> is used by only one driver.=0A= >>> I think we should allow a direct access to the driver by the applicatio= ns and=0A= >>> work on generic API only for common features.=0A= >> Definite +1.=0A= >> I think that we need to start pushing driver-specific functionality to g= et exposed=0A= >> via a driver's header files. That allow users who want to extract the ma= x=0A= >> functionality from a particular NIC to do so via those APIs calls, while= not=0A= >> polluting the generic ethdev layer.=0A= >>=0A= > What sort of requirements on ABI/API compatibility would this place on=0A= > the drivers? I would hope that it would be treated like any other=0A= > public API within DPDK. I don't think this would be too onerous, but=0A= > it would require that the drivers be designed to deal with it. (I.e.=0A= > don't just expose any old internal driver function).=0A= =0A= Why not to implement one simple API with variable arguments, just like=0A= syscall ioctl() does. And drivers implement it's specific hardware=0A= features with a feature bit param, and other needed variable arguments.=0A= =0A= Thanks,=0A= Michael=0A= >> On the other hand, I don't like the idea of dpdk_netdev. I think we can = work=0A= >> within the existing rte_eth_dev framework.=0A= >>=0A= >> /Bruce=0A= >>=0A= =0A=