[dpdk-dev] [PATCH v3 13/16] cryptodev: replace mbuf scatter gather flag

Akhil Goyal akhil.goyal at nxp.com
Wed Jul 4 14:57:06 CEST 2018


Hi Pablo,

On 6/28/2018 6:23 AM, Pablo de Lara wrote:

> The current mbuf scatter gatter feature flag is
> too ambiguous, as it is not clear if input and/or output
> buffers can be scatter gather mbufs or not, plus
> if in-place and/or out-of-place is supported.
>
> Therefore, five new flags will replace this flag:
> - RTE_CRYPTODEV_FF_IN_PLACE_SGL
> - RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT
> - RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT
> - RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT
> - RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT

It is better to have OOP instead of OUT_OF_PLACE and IP for INPLACE?

I guess RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT is supported in most
of the drivers which support OOP,  I can see some of them are missing.

>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
> ---
>   doc/guides/rel_notes/deprecation.rst        |  2 --
>   doc/guides/rel_notes/release_18_08.rst      |  8 +++++
>   drivers/crypto/aesni_gcm/aesni_gcm_pmd.c    |  2 +-
>   drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  6 +++-
>   drivers/crypto/dpaa_sec/dpaa_sec.c          |  6 +++-
>   drivers/crypto/null/null_crypto_pmd.c       |  2 +-
>   drivers/crypto/openssl/rte_openssl_pmd.c    |  2 +-
>   drivers/crypto/qat/qat_sym_pmd.c            |  6 +++-
>   lib/librte_cryptodev/rte_cryptodev.c        | 12 ++++++--
>   lib/librte_cryptodev/rte_cryptodev.h        | 46 +++++++++++++++++++----------
>   test/test/test_cryptodev.c                  | 31 +++++++++++++------
>   test/test/test_cryptodev_blockcipher.c      | 21 ++++++++++---
>   12 files changed, 106 insertions(+), 38 deletions(-)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 9a73b1d8e..62d635b74 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -105,5 +105,3 @@ Deprecation Notices
>       ``rte_cryptodev_queue_pair_dettach_sym_session()`` will be deprecated from
>       18.05 and removed in 18.08, as there are no drivers doing anything useful
>       with them.
> -  - Some feature flags such as ``RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER`` are ambiguous,
> -    so some will be replaced by more explicit flags.
> diff --git a/doc/guides/rel_notes/release_18_08.rst b/doc/guides/rel_notes/release_18_08.rst
> index e482d3d5f..2a136d88c 100644
> --- a/doc/guides/rel_notes/release_18_08.rst
> +++ b/doc/guides/rel_notes/release_18_08.rst
> @@ -78,6 +78,14 @@ API Changes
>     - ``rte_cryptodev_get_private_session_size`` is replaced with
>       ``rte_cryptodev_sym_get_private_session_size``
>   
> +* cryptodev: Feature flag ``RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER`` is
> +  replaced with the following more explicit flags:
> +  - ``RTE_CRYPTODEV_FF_IN_PLACE_SGL``
> +  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT``
> +  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT``
> +  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT``
> +  - ``RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT``
> +
>   
>   ABI Changes
>   -----------
> diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
> index cd5b1952b..03917f220 100644
> --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
> +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c
> @@ -492,7 +492,7 @@ aesni_gcm_create(const char *name,
>   	dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
>   			RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
>   			RTE_CRYPTODEV_FF_CPU_AESNI |
> -			RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT;

RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT ??

>   
>   	switch (vector_mode) {
>   	case RTE_AESNI_GCM_SSE:
> diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> index 1b1c30d85..4daee5f59 100644
> --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> @@ -2762,7 +2762,11 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
>   			RTE_CRYPTODEV_FF_HW_ACCELERATED |
>   			RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
>   			RTE_CRYPTODEV_FF_SECURITY |
> -			RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
> +			RTE_CRYPTODEV_FF_IN_PLACE_SGL |
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT |
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT |
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT |
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT;
>   
>   	internals = cryptodev->data->dev_private;
>   
> diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
> index b96552c57..8ad25f2be 100644
> --- a/drivers/crypto/dpaa_sec/dpaa_sec.c
> +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
> @@ -2271,7 +2271,11 @@ dpaa_sec_dev_init(struct rte_cryptodev *cryptodev)
>   			RTE_CRYPTODEV_FF_HW_ACCELERATED |
>   			RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
>   			RTE_CRYPTODEV_FF_SECURITY |
> -			RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
> +			RTE_CRYPTODEV_FF_IN_PLACE_SGL |
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_SGL_OUT |
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT |
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_SGL_OUT |
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT;
>   
>   	internals = cryptodev->data->dev_private;
>   	internals->max_nb_queue_pairs = RTE_DPAA_MAX_NB_SEC_QPS;
> diff --git a/drivers/crypto/null/null_crypto_pmd.c b/drivers/crypto/null/null_crypto_pmd.c
> index 478ac0b62..224ba7233 100644
> --- a/drivers/crypto/null/null_crypto_pmd.c
> +++ b/drivers/crypto/null/null_crypto_pmd.c
> @@ -177,7 +177,7 @@ cryptodev_null_create(const char *name,
>   
>   	dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
>   			RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
> -			RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
> +			RTE_CRYPTODEV_FF_IN_PLACE_SGL;
>   
>   	internals = dev->data->dev_private;
>   
> diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
> index 972e2adfe..94b6e2de9 100644
> --- a/drivers/crypto/openssl/rte_openssl_pmd.c
> +++ b/drivers/crypto/openssl/rte_openssl_pmd.c
> @@ -1660,7 +1660,7 @@ cryptodev_openssl_create(const char *name,
>   	dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
>   			RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
>   			RTE_CRYPTODEV_FF_CPU_AESNI |
> -			RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER;
> +			RTE_CRYPTODEV_FF_OUT_OF_PLACE_SGL_IN_FB_OUT;

RTE_CRYPTODEV_FF_OUT_OF_PLACE_FB_IN_FB_OUT is supported here.




More information about the dev mailing list