[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