From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [RFC] eventdev: add crypto adapter API header Date: Tue, 19 Dec 2017 14:17:43 +0530 Message-ID: <20171219084742.GB19364@jerin> References: <1510210453-61428-1-git-send-email-abhinandan.gujjar@intel.com> <20171129114153.GA16467@jerin> <9184057F7FC11744A2107296B6B8EB1E2BB1B296@FMSMSX108.amr.corp.intel.com> <20171214024910.GA10018@jerin> <9184057F7FC11744A2107296B6B8EB1E2BB1B9FF@FMSMSX108.amr.corp.intel.com> <20171218063012.GA12857@jerin> <9184057F7FC11744A2107296B6B8EB1E2BB29E9A@FMSMSX108.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "Gujjar, Abhinandan S" , "dev@dpdk.org" , "Vangati, Narender" , "Rao, Nikhil" , "hemant.agrawal@nxp.com" , "Doherty, Declan" , "nidadavolu.murthy@cavium.com" , "nithin.dabilpuram@cavium.com" , "narayanaprasad.athreya@cavium.com" To: "Eads, Gage" Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0083.outbound.protection.outlook.com [104.47.34.83]) by dpdk.org (Postfix) with ESMTP id 8C039E5D for ; Tue, 19 Dec 2017 09:48:09 +0100 (CET) Content-Disposition: inline In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E2BB29E9A@FMSMSX108.amr.corp.intel.com> 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----- > Date: Mon, 18 Dec 2017 16:33:53 +0000 > From: "Eads, Gage" > To: Jerin Jacob > CC: "Gujjar, Abhinandan S" , "dev@dpdk.org" > , "Vangati, Narender" , "Rao, > Nikhil" , "hemant.agrawal@nxp.com" > , "Doherty, Declan" , > "nidadavolu.murthy@cavium.com" , > "nithin.dabilpuram@cavium.com" , > "narayanaprasad.athreya@cavium.com" > Subject: RE: [RFC] eventdev: add crypto adapter API header > > > > > -----Original Message----- > > From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com] > > Sent: Monday, December 18, 2017 12:30 AM > > To: Eads, Gage > > Cc: Gujjar, Abhinandan S ; dev@dpdk.org; > > Vangati, Narender ; Rao, Nikhil > > ; hemant.agrawal@nxp.com; Doherty, Declan > > ; nidadavolu.murthy@cavium.com; > > nithin.dabilpuram@cavium.com; narayanaprasad.athreya@cavium.com > > Subject: Re: [RFC] eventdev: add crypto adapter API header > > > > -----Original Message----- > > > Date: Thu, 14 Dec 2017 18:52:02 +0000 > > > From: "Eads, Gage" > > > To: Jerin Jacob > > > CC: "Gujjar, Abhinandan S" , "dev@dpdk.org" > > > , "Vangati, Narender" , > > > "Rao, Nikhil" , "hemant.agrawal@nxp.com" > > > , "Doherty, Declan" > > > , "nidadavolu.murthy@cavium.com" > > > , "nithin.dabilpuram@cavium.com" > > > , "narayanaprasad.athreya@cavium.com" > > > > > > Subject: RE: [RFC] eventdev: add crypto adapter API header > > > > > > > > > > > > > -----Original Message----- > > > > From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com] > > > > Sent: Wednesday, December 13, 2017 8:49 PM > > > > To: Eads, Gage > > > > Cc: Gujjar, Abhinandan S ; > > > > dev@dpdk.org; Vangati, Narender ; Rao, > > > > Nikhil ; hemant.agrawal@nxp.com; Doherty, > > > > Declan ; nidadavolu.murthy@cavium.com; > > > > nithin.dabilpuram@cavium.com; narayanaprasad.athreya@cavium.com > > > > Subject: Re: [RFC] eventdev: add crypto adapter API header > > > > > > > > -----Original Message----- > > > > > Date: Wed, 13 Dec 2017 23:35:48 +0000 > > > > > From: "Eads, Gage" > > > > > To: Jerin Jacob , "Gujjar, Abhinandan > > S" > > > > > > > > > > CC: "dev@dpdk.org" , "Vangati, Narender" > > > > > , "Rao, Nikhil" > > > > > , "hemant.agrawal@nxp.com" > > , "Doherty, Declan" > > > > > , "nidadavolu.murthy@cavium.com" > > > > > , "nithin.dabilpuram@cavium.com" > > > > > , > > "narayanaprasad.athreya@cavium.com" > > > > > > > > > > Subject: RE: [RFC] eventdev: add crypto adapter API header > > > > > > > > > > Hey Jerin, > > > > > > > > Hey Gage, > > > > > > > > > > > > > > > > > > > > > > > > > > + > > > > > > > + /** > > > > > > > + * @warning > > > > > > > + * @b EXPERIMENTAL: this enum may change without prior notice > > > > > > > + * > > > > > > > + * Crypto event adapter type > > > > > > > + */ > > > > > > > +enum rte_event_crypto_adapter_type { > > > > > > > + RTE_EVENT_CRYPTO_ADAPTER_RX_ONLY = 1, > > > > > > > + /**< Start only Rx part of crypto adapter. > > > > > > > + * Packets dequeued from cryptodev are new to eventdev and > > > > > > > + * events will be treated as RTE_EVENT_OP_NEW */ > > > > > > > + RTE_EVENT_CRYPTO_ADAPTER_RX_TX, > > > > > > > + /**< Start both Rx & Tx part of crypto adapter. > > > > > > > + * Packet's event context will be retained and > > > > > > > + * event will be treated as RTE_EVENT_OP_FORWARD */ }; > > > > > > > > > > > > How about leveraging ev.op based schematics as mentioned above? > > > > > > > > > > That could work, but perhaps the ev.op should be configured once > > > > > up front, as > > > > I see it being a function of the application architecture. A couple > > > > possible designs, for example: > > > > > - Worker enqueues into cryptodev, adapter polls for response: the > > > > > adapter > > > > port would always use OP_NEW here. > > > > > - Worker sends a crypto request event to the adapter, which gives > > > > > the request to the cryptodev and polls for response: the adapter > > > > > port would always use OP_FWD here. (This ties in with my implicit > > > > > release patch > > > > > (http://dpdk.org/ml/archives/dev/2017-December/083535.html)) > > > > > - Etc. > > > > > > > > Yes. Semantically both approaches will work. I was trying to avoid > > > > extra clutter(enum rte_event_crypto_adapter_type) in adapter API. > > > > I don't see any problem in moving ev.op to adapter configuration > > > > time if it helps the SW driver. > > > > > > > > IMO, We can change RTE_EVENT_CRYPTO_ADAPTER_RX_ONLY and > > > > RTE_EVENT_CRYPTO_ADAPTER_RX_TX to more appropriate name, > > something > > > > like, > > RTE_EVENT_CRYPTO_ADAPTER_TYPE_OP_NEW/RTE_EVENT_CRYPTO_ADAPTE > > > > R_TYPE_OP_FWD > > > > or something like that. > > > > > > > > > > I agree that the two naming schemes are equivalent, but since this option > > would control the adapter's behavior (Rx only vs. Rx + Tx), (IMO) I think > > Abhinandan's original names do a better job of conveying what effect these two > > options have on the adapter, compared to the op type names. > > > > The only concern with Rx/Tx terminology was, It is mostly used in the ethdev > > domain. > > In crypto domain, typically, we use enqueue/dequeue. > > The only difference between two modes is if adapter enqueue the events with > > RTE_EVENT_OP_NEW vs RTE_EVENT_OP_FORWARD then (IMO) we can change > > something related to that name to avoid adding a new terminology. > > > > Oh, sure -- enqueue/dequeue makes sense here. I'd still prefer DEQ_ONLY or DEQ_ENQ, but the event_op names work just as well. I prefer event_op name but enqueue/dequeue name work as well. > > Speaking of the crypto domain, the cryptodev enqueue and dequeue operations both take crypto op pointers. The original RFC had the request event pointing to an mbuf (which had a crypto_op pointer in its private metadata), but with the suggested opaque eventdev metadata changes it makes more sense for the request event to point to a crypto op. And the RFC didn't specify what the response event would point to (mbuf or crypto op), but to match the cryptodev dequeue operation then a crypto op makes sense. Will this work with your hardware? Yes. crypto op will work with Cavium HW. NXP guys can comment on their HW. We are treating rte_event.event_ptr as opaque event pointer so it can carry crypto_op or mbuf pointer.I think, For crypto operation, rte_crypto_op make sense as it has "status" etc. May be for inline ipsec, mbuf would make sense. So I think, we can support both options by reserving size of struct rte_event as eventdev metadata in crypto area. > > > BTW, Based on the earlier discussion, if we need to add opaque eventdev > > metadata to cryptodev then it may change ABI.If so, I think, we need to > > announce ABI change notice for cryptodev and plan cryptodev adapter for > > v18.05. > > Personally I'd prefer to get this right/agreed-upon the first time around -- even if that means breaking ABI and pushing this adapter out to 18.05. I agree and that makes sense too.