From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergio Gonzalez Monroy Subject: Re: [PATCH v2 2/2] examples/ipsec-secgw: attach session-qp Date: Thu, 23 Mar 2017 10:30:40 +0000 Message-ID: <1db2a8d1-e59c-b4ae-7496-6b59e28adba3@intel.com> References: <20170317084510.2120-1-akhil.goyal@nxp.com> <20170323080648.7149-1-akhil.goyal@nxp.com> <20170323080648.7149-2-akhil.goyal@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: declan.doherty@intel.com, pablo.de.lara.guarch@intel.com, fiona.trahe@intel.com, hemant.agrawal@nxp.com To: akhil.goyal@nxp.com, dev@dpdk.org Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 0AA4D1B53 for ; Thu, 23 Mar 2017 11:30:43 +0100 (CET) In-Reply-To: <20170323080648.7149-2-akhil.goyal@nxp.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" That was simpler than I thought. For some reason I understood that the device will support thousands of queues and single session per queue which would have needed more app changes. On 23/03/2017 08:06, akhil.goyal@nxp.com wrote: > From: Akhil Goyal > > adding support for attaching session to queue pairs. > This is required as underlying crypto driver may only > support limited number of sessions per queue pair > if max_nb_sessions_per_qp > 0, session should be > attached to a particular qp. > > Signed-off-by: Akhil Goyal > --- > examples/ipsec-secgw/ipsec.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/examples/ipsec-secgw/ipsec.c b/examples/ipsec-secgw/ipsec.c > index 144f0aa..b35b30f 100644 > --- a/examples/ipsec-secgw/ipsec.c > +++ b/examples/ipsec-secgw/ipsec.c > @@ -47,6 +47,7 @@ > static inline int > create_session(struct ipsec_ctx *ipsec_ctx __rte_unused, struct ipsec_sa *sa) > { > + struct rte_cryptodev_info cdev_info; > unsigned long cdev_id_qp = 0; > int32_t ret; > struct cdev_key key = { 0 }; > @@ -73,6 +74,17 @@ create_session(struct ipsec_ctx *ipsec_ctx __rte_unused, struct ipsec_sa *sa) > sa->crypto_session = rte_cryptodev_sym_session_create( > ipsec_ctx->tbl[cdev_id_qp].id, sa->xforms); > > + rte_cryptodev_info_get(ipsec_ctx->tbl[cdev_id_qp].id, &cdev_info); > + if (cdev_info.sym.max_nb_sessions_per_qp > 0) { > + ret = rte_cryptodev_queue_pair_attach_sym_session( > + ipsec_ctx->tbl[cdev_id_qp].qp, > + sa->crypto_session); > + if (ret < 0) { > + RTE_LOG(ERR, IPSEC, "Session cannot be attached" > + " to qp %u ", ipsec_ctx->tbl[cdev_id_qp].qp); Guideline is to keep error strings in single line to facilitate grep. Other than that: Acked-by: Sergio Gonzalez Monroy > + return -1; > + } > + } > sa->cdev_id_qp = cdev_id_qp; > > return 0;