Hi Akhil, Minor correction. Please see inline.
Thanks, Anoob > -----Original Message----- > From: Anoob Joseph > Sent: Wednesday, October 2, 2019 4:44 PM > To: Akhil Goyal <akhil.go...@nxp.com>; Pablo de Lara > <pablo.de.lara.gua...@intel.com> > Cc: Kanaka Durga Kotamarthy <kkotamar...@marvell.com>; Jerin Jacob > Kollanukkaran <jer...@marvell.com>; Narayana Prasad Raju Athreya > <pathr...@marvell.com>; Fiona Trahe <fiona.tr...@intel.com>; Shally > Verma <shal...@marvell.com>; Sunila Sahu <ss...@marvell.com>; > dev@dpdk.org > Subject: RE: [PATCH 4/8] common/cpt: add helper functions for asymmetric > crypto > > Hi Akhil, > > Please see inline. > > Thanks, > Anoob > > > -----Original Message----- > > From: Akhil Goyal <akhil.go...@nxp.com> > > Sent: Tuesday, October 1, 2019 6:35 PM > > To: Anoob Joseph <ano...@marvell.com>; Pablo de Lara > > <pablo.de.lara.gua...@intel.com> > > Cc: Kanaka Durga Kotamarthy <kkotamar...@marvell.com>; Jerin Jacob > > Kollanukkaran <jer...@marvell.com>; Narayana Prasad Raju Athreya > > <pathr...@marvell.com>; Fiona Trahe <fiona.tr...@intel.com>; Shally > > Verma <shal...@marvell.com>; Sunila Sahu <ss...@marvell.com>; > > dev@dpdk.org > > Subject: RE: [PATCH 4/8] common/cpt: add helper functions for > > asymmetric crypto > > > > Hi Anoob, > > > > > > From: Kanaka Durga Kotamarthy <kkotamar...@marvell.com> > > > > > > Add helper functions to get meta len for asymmetric operations > > > > > > Signed-off-by: Anoob Joseph <ano...@marvell.com> > > > Signed-off-by: Kanaka Durga Kotamarthy <kkotamar...@marvell.com> > > > Signed-off-by: Sunila Sahu <ss...@marvell.com> > > > --- > > > > <snip> > > > > > diff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c > > > b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c > > > index ad64bf4..0543494 100644 > > > --- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c > > > +++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c > > > @@ -412,24 +412,34 @@ otx_cpt_metabuf_mempool_create(const > struct > > > rte_cryptodev *dev, > > > int nb_elements) > > > { > > > char mempool_name[RTE_MEMPOOL_NAMESIZE]; > > > - int sg_mlen, lb_mlen, max_mlen, ret; > > > struct cpt_qp_meta_info *meta_info; > > > struct rte_mempool *pool; > > > + int max_mlen = 0; > > > + int sg_mlen = 0; > > > + int lb_mlen = 0; > > > + int ret; > > > > > > - /* Get meta len for scatter gather mode */ > > > - sg_mlen = cpt_pmd_ops_helper_get_mlen_sg_mode(); > > > + if (dev->feature_flags & RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO) > { > > > > > > - /* Extra 32B saved for future considerations */ > > > - sg_mlen += 4 * sizeof(uint64_t); > > > + /* Get meta len for scatter gather mode */ > > > + sg_mlen = cpt_pmd_ops_helper_get_mlen_sg_mode(); > > > > > > - /* Get meta len for linear buffer (direct) mode */ > > > - lb_mlen = cpt_pmd_ops_helper_get_mlen_direct_mode(); > > > + /* Extra 32B saved for future considerations */ > > > + sg_mlen += 4 * sizeof(uint64_t); > > > > > > - /* Extra 32B saved for future considerations */ > > > - lb_mlen += 4 * sizeof(uint64_t); > > > + /* Get meta len for linear buffer (direct) mode */ > > > + lb_mlen = cpt_pmd_ops_helper_get_mlen_direct_mode(); > > > > > > - /* Check max requirement for meta buffer */ > > > - max_mlen = RTE_MAX(lb_mlen, sg_mlen); > > > + /* Extra 32B saved for future considerations */ > > > + lb_mlen += 4 * sizeof(uint64_t); > > > + > > > + /* Check max requirement for meta buffer */ > > > + max_mlen = RTE_MAX(lb_mlen, sg_mlen); > > > + } else if (dev->feature_flags & > > > RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO) { > > > + > > > + /* Get meta len for asymmetric operations */ > > > + max_mlen = cpt_pmd_ops_helper_asym_get_mlen(); > > > + } > > > > I am not sure how this is working. > > In your octeontx device, you will have both > > RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO > > and RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO will be set together. So it > will > > not go in else in any case. > > Please check in rest of the PMD also if this assumption is made > > somewhere else also. > > > > [Anoob] The crypto VFs on octeontx would be either sym/asym and cannot > be both. Hence the above would work. But, you are right. In the above, it > should be, > > sym_lens = 0; > asym_lens = 0; > > If (SYM) { > /* set various lens for sym */ > } > > If (ASYM) { > /* set various lens for asym */ > } > > len = MAX(sym_len, asym_len); > > I'll make the required changes in v2. Hope this clarifies. [Anoob] The above code snippet is only applicable for crypto_octeontx PMD. And hence the current code should be fine. Initially, I mistook that the suggestion was for a common routine. Nevertheless, I'll add a comment stating that only one feature is supported. > > > > > > > /* Allocate mempool */ > > > > > > -- > > > 2.7.4