From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 378DEA0598; Tue, 21 Apr 2020 19:25:30 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0EEB11C2ED; Tue, 21 Apr 2020 19:25:30 +0200 (CEST) Received: from new1-smtp.messagingengine.com (new1-smtp.messagingengine.com [66.111.4.221]) by dpdk.org (Postfix) with ESMTP id CC7B11C2AD for ; Tue, 21 Apr 2020 19:25:27 +0200 (CEST) Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailnew.nyi.internal (Postfix) with ESMTP id 39286580427; Tue, 21 Apr 2020 13:25:27 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Tue, 21 Apr 2020 13:25:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s=fm1; bh= KekSenRXdwnuLd0VWUYKYAvdqGtODGcBRezU98KEpKg=; b=jF001gmjpGwKFc1H 5kr56ls13KyG2uRT0HkuBqxFL0x6oBLLIdkppstST3mR5wV0Mt6FLcBARyVRSXUK wB4IUUWE8Kp1H2UUpD0TPiXS9J9x+KDbEXM3XF7nkOH3V4lSU5g4YkEiaLkQN8eg 42Q0PTbbVurZP/y8TWZTXUt3scf4FGTbaJpGVROktBI9BpjjXj3R+q6dLpIChChf QzEXr4H1XaG793xAFKb5TU1KhA9lHmIWIMMVw6yXNJNDLRf0GonzlhVmRH64s/G0 vQUB/twxLktJ9stGLdMRmTjLfNi2vUkgMkwlcNRah7roaaoE7MfIOPJh8mT/MQJZ CEsv1A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=KekSenRXdwnuLd0VWUYKYAvdqGtODGcBRezU98KEp Kg=; b=TxJ6lmg72p2u3FLLBfEWqLxtC4O2CgX0bWadL2Gj9W9gCSUJDokmCuxQf D8TV/gFqfyM3Zjwb2I80spXQamqYeRabPNeJeVCRvErT9W8BQI01IjlQoJRMGGCy U/SQTKvlQQ/td7Zjq0nJLmvHRVwX6EXbs1MiguGXf3pvEFfTD1A+Od9IOD2tECPy CJHOYXoEvCMAaOzJuuuPySRiMWPrCZc2tlSaQ/yKPI7jua+txRiuneg++MKsbrMm QxjA2S3O0jEWe9uDhNC8rHx+R0iK2TGj/epK3BaP8Y3xgcQV8y6x7rotBPUSOk1j wrp7YUHUEEInS49KSuA8VU8ueYoMQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrgeehgdduudduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkfgjfhgggfgtsehtufertddttddvnecuhfhrohhmpefvhhhomhgr shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecuff homhgrihhnpeguphgukhdrohhrghdpohhuthhlohhokhdrtghomhenucfkphepjeejrddu feegrddvtdefrddukeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth X-ME-Proxy: Received: from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 077D4328005D; Tue, 21 Apr 2020 13:25:22 -0400 (EDT) From: Thomas Monjalon To: "Doherty, Declan" , "Coyle, David" Cc: "Yigit, Ferruh" , "Trahe, Fiona" , "dev@dpdk.org" , "De Lara Guarch, Pablo" , "Ryan, Brendan" , "shreyansh.jain@nxp.com" , "hemant.agrawal@nxp.com" , "akhil.goyal@nxp.com" , Anoob Joseph , Ruifeng Wang , Liron Himi , Nagadheeraj Rottela , Srikanth Jampala , Gagandeep Singh , Jay Zhou , Ravi Kumar , "Richardson, Bruce" , olivier.matz@6wind.com, honnappa.nagarahalli@arm.com, Stephen Hemminger , alexr@mellanox.com, jerinj@marvell.com, Pavan Nikhilesh Date: Tue, 21 Apr 2020 19:25:20 +0200 Message-ID: <1617700.QkHrqEjB74@thomas> In-Reply-To: <45cf0e87-2021-cc8c-82b5-60c0b1e11fb7@intel.com> References: <20200410142757.31508-1-david.coyle@intel.com> <8017884.aoefvbuG5b@thomas> <45cf0e87-2021-cc8c-82b5-60c0b1e11fb7@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v3 0/4] add AESNI-MB rawdev for multi-function processing X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 21/04/2020 18:46, Doherty, Declan: > On 15/04/2020 11:33 PM, Thomas Monjalon wrote: > > 16/04/2020 00:19, Doherty, Declan: > >> On 14/04/2020 3:44 PM, Thomas Monjalon wrote: > >>> 14/04/2020 16:02, Trahe, Fiona: > >>>> From: Thomas Monjalon > >>>>> 14/04/2020 15:04, Trahe, Fiona: > >>>>>>> 14/04/2020 12:21, Ferruh Yigit: > >>>>>>> > >>>>> http://inbox.dpdk.org/dev/MN2PR11MB35507D4B96677A41E66440C5E3C30@MN2PR11MB3550.na > >>>>>>> mprd11.prod.outlook.com/ > >>>>>>> > >>>>>>> I am not convinced. > >>>>>>> I don't like rawdev in general. > >>>>>>> Rawdev is good only for hardware support which cannot be generic > >>>>>>> like SoC, FPGA management or DMA engine. > >>>>>> > >>>>>> [Fiona] CRC and BIP are not crypto algorithms, they are error detection processes. > >>>>>> So there is no class in DPDK that these readily fit into. > >>>>>> There was resistance to adding another xxxddev, and even if one had been added > >>>>>> for error_detection_dev, there would still have been another layer needed > >>>>>> to couple this with cryptodev. Various proposals for this have been discussed on the ML > >>>>>> in RFC and recent patches, there doesn't seem to be an appetite for this as a generic API. > >>>>>> So it seems that only Intel has software and hardware engines that provide this > >>>>>> specialised feature coupling. In that case rawdev seems like the most > >>>>>> appropriate vehicle to expose this. > >>>>> > >>>>> Adding some vendor-specific API is not a good answer. > >>>>> It will work in some cases, but it won't make DPDK better. > >>>>> What's the purpose of DPDK if it's not solving a common problem > >>>>> for different hardware? > >>>> > >> The current proposal in rawdev could easily be supported by any hardware > >> which supports chaining multiple functions/services into a single > >> operation, in this case symmetric crypto and error detection, but it > >> could conceivably support chaining symmetric/asymmetric crypto > >> operations or chaining symmetric crypto and compression operations. > >> > >>>> [Fiona] Based on that logic rawdev should be deprecated. > >>>> But the community has agreed that it has a place. > >>> > >>> No, as I said above, rawdev is good for SoC, FPGA management or DMA engine. > >> > >> I distinctly remember when rawdev was being proposed one of the uses > >> cases proposed was that a new classes of APIs could be prototyped and > >> developed under rawdev and when a solid consensus was reached then > >> migrated to a mainstream DPDK library. I think every effort has been > >> made here to engage the community to develop a generic approach. As > >> Fiona notes there hasn't really been much of an appetite for this. > >> > >> Therefore I think the option to use rawdev makes sense, it allows an > >> initial proposal to be deployed, without a generic solution agreement, > >> it will also give others in the community to see how this approach can > >> work and hopefully lead to more engagement on a generic solution. Also > >> as APIs in rawdev are essentially treated as private APIs the onus is on > >> Intel to support this going forward. > > > > Because hardware support is pending, > > we should accept an Intel-only "temporary" solution, > > opening the door to more vendor-specific APIs? > > > > What is the benefit for the DPDK project? > > Sorry I don't agree with this sentiment, David has made every attempt to > solicit feedback an to engage the community in this. Really? These are the recipients of the first patch: dev@dpdk.org, declan.doherty@intel.com, fiona.trahe@intel.com In next patches, only Intel and NXP are Cc'ed. Stephen and Jerin, who gave good comments on first patch, were not Cc'ed in next versions. Was it presented in an event? Was it brought to the techboard? Please don't exagerate and admit you are trying to push something which is specific and convenient for Intel QuickAssist. > I also don't agree in classifying this as a "temporary solution" as this > is a solid proposal for an approach to chaining multiple operations > together, but I guess the fact remains that we only currently have a > single use-case, but it is difficult to generate a generic solution in > this case. > > While there is only a single use case it is targeting two devices so > that drove the need for a common interface withing rawdev. > > The advantage of using rawdev is that it allows this to be consumed > through DPDK, which enables DPDK project consumers, but also leaves the > door open to other contributors to have their say on how this should > evolve. For example this exact process seems to be occurring with DMA > engines in rawdev today, with a critical mass of implementations which > now is giving the impetus to create a generic solution, as we would hope > can occur here too in the future. > > > >>>> And the common problem here is device exposure. > >>>> With a specialised service on top. > >>>> > >>>> > >>>>>>> Here the intent is to use rawdev because we don't find a good API. > >>>>>>> API defeat is a no-go. > >>>>>> > >>>>>> [Fiona] It's not that we haven't found a good API, but that there doesn't seem > >>>>>> to be a general requirement for such a specialised API > >>>>> > >>>>> There is a requirement to combine features of different classes. > >>>> > >>>> [Fiona] Can you point me to that requirement please? > >>> > >>> Yes, rte_security is trying to address this exact issue. > >>> > >> > >> I don't agree rte_security addresses the problem of different device > >> types supporting the same services. The problem being addressed here is > >> a single device which supports the chaining of multiple services (sym > >> crypto & error detection) > > > > Doing IPsec processing in Rx or Tx of a NIC is not chaining? > > I wouldn't consider an inline crypto offload or full IPsec offload a > chained operation in the vein being proposed here where completely > independent services (in the view of DPDK which are currently on > independent devices and APIs) are linked together. > > We did look at using rte_security here but it wasn't considered suitable > for a chaining of non-crypto operations such as CRC or possibly > compression in the future, as it would still run into the issue of > having to use the cryptodev enq/deq API in the lookaside offload case. Because rte_security is not a generic solution (that's why I don't like it). I think a good approach would be to check how to offload in HW the chaining done in frameworks like rte_pipeline or rte_graph. Stephen and Jerin already talked about it, but it was rejected by David, because harder to implement I think. Even worst, the team working on this patch did zero review of rte_graph. I think the chaining requirement is a real problem to solve, and it deserves a good architecture and API. Maybe this future API should be based on rte_graph.