[dpdk-dev] [PATCH v2 1/4] crypto/mrvl: add mrvl crypto pmd driver

Tomasz Duszynski tdu at semihalf.com
Fri Oct 6 09:24:20 CEST 2017


On Thu, Oct 05, 2017 at 03:01:33PM +0000, De Lara Guarch, Pablo wrote:
> Hi Tomasz,
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Tomasz Duszynski
> > Sent: Thursday, September 28, 2017 11:23 AM
> > To: dev at dpdk.org
> > Cc: mw at semihalf.com; dima at marvell.com; nsamsono at marvell.com;
> > Jianbo.liu at linaro.org; Tomasz Duszynski <tdu at semihalf.com>; Jacek Siuda
> > <jck at semihalf.com>
> > Subject: [dpdk-dev] [PATCH v2 1/4] crypto/mrvl: add mrvl crypto pmd
> > driver
> >
> > Add support for the Marvell Security Crypto Accelerator EIP197.
> > Driver is based on external, publicly available, Marvell MUSDK
> > library that provides access to the hardware with minimum overhead
> > and high performance.
> >
> > Driver comes with support for the following features:
> >
> > * Symmetric crypto
> > * Sym operation chaining
> > * AES CBC (128)
> > * AES CBC (192)
> > * AES CBC (256)
> > * AES CTR (128)
> > * AES CTR (192)
> > * AES CTR (256)
> > * 3DES CBC
> > * 3DES CTR
> > * MD5
> > * MD5 HMAC
> > * SHA1
> > * SHA1 HMAC
> > * SHA256
> > * SHA256 HMAC
> > * SHA384
> > * SHA384 HMAC
> > * SHA512
> > * SHA512 HMAC
> > * AES GCM (128)
> >
> > Driver was engineered cooperatively by Semihalf and Marvell teams.
> >
> > Semihalf:
> > Jacek Siuda <jck at semihalf.com>
> > Tomasz Duszynski <tdu at semihalf.com>
> >
> > Marvell:
> > Dmitri Epshtein <dima at marvell.com>
> > Natalie Samsonov <nsamsono at marvell.com>
> >
> > Signed-off-by: Jacek Siuda <jck at semihalf.com>
> > Signed-off-by: Tomasz Duszynski <tdu at semihalf.com>
>
> If the guys in Marvell has contributed with the code,
> they should sign off too. Up to you.
>
> There is a script to test compilation (devtools/test-build.sh).
> You should also modify it to include the dependency with LIBMUSDK.
>

ACK

> ...
>
> > diff --git a/drivers/crypto/mrvl/rte_mrvl_pmd.c
> > b/drivers/crypto/mrvl/rte_mrvl_pmd.c
> > new file mode 100644
> > index 0000000..63f8daa
> > --- /dev/null
> > +++ b/drivers/crypto/mrvl/rte_mrvl_pmd.c
>
> ...
>
> > +
> > +/* Register the driver in constructor. */
> > +RTE_PMD_REGISTER_VDEV(CRYPTODEV_NAME_MRVL_PMD,
> > cryptodev_mrvl_pmd_drv);
> > +RTE_PMD_REGISTER_ALIAS(CRYPTODEV_NAME_MRVL_PMD,
> > cryptodev_mrvl_pmd);
>
> You can remove this alias, as this is a new PMD,
> we should be using the primary convention "crypto_mrvl".
>

ACK

>
> > +RTE_PMD_REGISTER_PARAM_STRING(CRYPTODEV_NAME_MRVL_PMD,
> > +	"max_nb_queue_pairs=<int> "
> > +	"max_nb_sessions=<int> "
> > +	"socket_id=<int>");
> > +RTE_PMD_REGISTER_CRYPTO_DRIVER(cryptodev_mrvl_pmd_drv,
> > cryptodev_driver_id);
> > diff --git a/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c
> > b/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c
> > new file mode 100644
> > index 0000000..f7374f8
> > --- /dev/null
> > +++ b/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c
>
> ...
>
> > + */
> > +static const struct rte_cryptodev_capabilities
> > +	mrvl_crypto_pmd_capabilities[] = {
> > +	{	/* MD5 HMAC */
> > +		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
> > +		{.sym = {
> > +			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
> > +			{.auth = {
> > +				.algo = RTE_CRYPTO_AUTH_MD5_HMAC,
> > +				.block_size = 64,
> > +				.key_size = {
> > +					.min = 64,
> > +					.max = 64,
> > +					.increment = 0
> > +				},
> > +				.digest_size = {
> > +					.min = 16,
> > +					.max = 16,
> > +					.increment = 0
> > +				},
> > +				.aad_size = { 0 }
>
> You can remove this aad_size, as it is only applicable to AEAD algorithms (GCM in your case).
>

ACK

> > +			}, }
> > +		}, }
> > +	},
>
> ...
>
> > +	{	/* SHA1 HMAC */
> > +		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
> > +			{.sym = {
> > +				.xform_type =
> > RTE_CRYPTO_SYM_XFORM_AUTH,
> > +				{.auth = {
> > +					.algo =
> > RTE_CRYPTO_AUTH_SHA1_HMAC,
> > +					.block_size = 64,
> > +					.key_size = {
> > +						.min = 16,
> > +						.max = 128,
> > +						.increment = 0
>
> If min and max values are different, increment cannot be 0.

ACK

Thanks for comments.

--
- Tomasz Duszyński


More information about the dev mailing list