[EXT] [PATCH v2 0/9] crypto/mlx5: support AES-GCM

Akhil Goyal gakhil at marvell.com
Wed Jun 14 20:11:43 CEST 2023


> AES-GCM provides both authenticated encryption and the ability to check
> the integrity and authentication of additional authenticated data (AAD)
> that is sent in the clear.
> 
> The crypto operations are performed with crypto WQE. If the input
> buffers(AAD, mbuf, digest) are not contiguous and there is no enough
> headroom or tailroom for AAD or digest, as the requirement from FW, an
> UMR WQE is needed to generate contiguous address space for crypto WQE.
> The UMR WQE and crypto WQE are handled in two different QPs.
> 
> The QP for UMR operation contains two types of WQE, UMR and SEND_EN
> WQE. The WQEs are built dynamically according to the crypto operation
> buffer address. Crypto operation with non-contiguous buffers will
> have its own UMR WQE, while the operation with contiguous buffers
> doesn't need the UMR WQE. Once the all the operations WQE in the
> enqueue burst built finishes, if any UMR WQEs are built, additional
> SEND_EN WQE will be as the final WQE of the burst in the UMR QP.
> The purpose of that SEND_EN WQE is to trigger the crypto QP processing
> with the UMR ready input memory address space buffers.
> 
> The QP for crypto operations contains only the crypto WQE and the QP
> WQEs are built as fixed in QP setup. The QP processing is triggered
> by doorbell ring or the SEND_EN WQE from UMR QP.
> \
Change log missing.

Please get it reviewed from PMD maintainer.
Also rebase the patchset, and fix checkpatch issues.


> Suanming Mou (9):
>   common/mlx5: export memory region lookup by address
>   crypto/mlx5: split AES-XTS
>   crypto/mlx5: add AES-GCM query and initialization
>   crypto/mlx5: add AES-GCM encryption key
>   crypto/mlx5: add AES-GCM session configure
>   common/mlx5: add WQE-based QP synchronous basics
>   crypto/mlx5: add queue pair setup for GCM
>   crypto/mlx5: add enqueue and dequeue operations
>   crypto/mlx5: enable AES-GCM capability
> 
>  doc/guides/cryptodevs/mlx5.rst         |  48 +-
>  doc/guides/rel_notes/release_23_07.rst |   1 +
>  drivers/common/mlx5/mlx5_common_mr.c   |   2 +-
>  drivers/common/mlx5/mlx5_common_mr.h   |   5 +
>  drivers/common/mlx5/mlx5_devx_cmds.c   |  21 +
>  drivers/common/mlx5/mlx5_devx_cmds.h   |  16 +
>  drivers/common/mlx5/mlx5_prm.h         |  65 +-
>  drivers/common/mlx5/version.map        |   3 +
>  drivers/crypto/mlx5/meson.build        |   2 +
>  drivers/crypto/mlx5/mlx5_crypto.c      | 673 ++---------------
>  drivers/crypto/mlx5/mlx5_crypto.h      | 101 ++-
>  drivers/crypto/mlx5/mlx5_crypto_dek.c  | 102 ++-
>  drivers/crypto/mlx5/mlx5_crypto_gcm.c  | 995 +++++++++++++++++++++++++
>  drivers/crypto/mlx5/mlx5_crypto_xts.c  | 645 ++++++++++++++++
>  14 files changed, 2014 insertions(+), 665 deletions(-)
>  create mode 100644 drivers/crypto/mlx5/mlx5_crypto_gcm.c
>  create mode 100644 drivers/crypto/mlx5/mlx5_crypto_xts.c
> 
> --
> 2.25.1



More information about the dev mailing list