[dpdk-dev] [PATCH 4/8] common/cpt: add helper functions for asymmetric crypto

Anoob Joseph anoobj at marvell.com
Wed Oct 2 13:13:44 CEST 2019


Hi Akhil,

Please see inline.

Thanks,
Anoob

> -----Original Message-----
> From: Akhil Goyal <akhil.goyal at nxp.com>
> Sent: Tuesday, October 1, 2019 6:35 PM
> To: Anoob Joseph <anoobj at marvell.com>; Pablo de Lara
> <pablo.de.lara.guarch at intel.com>
> Cc: Kanaka Durga Kotamarthy <kkotamarthy at marvell.com>; Jerin Jacob
> Kollanukkaran <jerinj at marvell.com>; Narayana Prasad Raju Athreya
> <pathreya at marvell.com>; Fiona Trahe <fiona.trahe at intel.com>; Shally Verma
> <shallyv at marvell.com>; Sunila Sahu <ssahu at marvell.com>; dev at dpdk.org
> Subject: RE: [PATCH 4/8] common/cpt: add helper functions for asymmetric
> crypto
> 
> Hi Anoob,
> >
> > From: Kanaka Durga Kotamarthy <kkotamarthy at marvell.com>
> >
> > Add helper functions to get meta len for asymmetric operations
> >
> > Signed-off-by: Anoob Joseph <anoobj at marvell.com>
> > Signed-off-by: Kanaka Durga Kotamarthy <kkotamarthy at marvell.com>
> > Signed-off-by: Sunila Sahu <ssahu at 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.
 
> >
> >  	/* Allocate mempool */
> >
> > --
> > 2.7.4



More information about the dev mailing list