Add a new PMD for Nvidia devices- crypto PMD. The crypto PMD will be supported on Nvidia ConnectX6-Dx and Bluefield 2.
The crypto PMD will add the support of encryption and decryption using the AES-XTS symmetric algorithm. The crypto PMD requires rdma-core and uses mlx5 DevX. This series includes control path PMD implementation. We are currently almost done working on the data path implementation and doing our best effort to send the data path for rc1, but we might be done for rc2. If there is a suggestion or need for the series earlier, we will make the effort to meet the requirement. Dekel Peled (13): common/mlx5: remove redundant spaces in header file common/mlx5: update GENEVE TLV OPT obj name common/mlx5: optimize read of general obj type caps common/mlx5: add HCA cap for AES-XTS crypto common/mlx5: support general object DEK create op common/mlx5: add crypto en field to MKEY context common/mlx5: support umr en field in MKEY context common/mlx5: support general obj IMPORT KEK create common/mlx5: support general obj CRYPTO LOGIN create common/mlx5: add crypto BSF struct and defines common/mlx5: support general obj CREDENTIAL create common/mlx5: add crypto register structs and defs common/mlx5: support register write access Shiri Kuzin (11): common/mlx5: share hash list tool common/mlx5: share get ib device match function drivers: introduce mlx5 crypto PMD crypto/mlx5: add DEK object management crypto/mlx5: support session operations crypto/mlx5: add basic operations crypto/mlx5: support queue pairs operations crypto/mlx5: add dev stop and start operations crypto/mlx5: add memory region management crypto/mlx5: create login object using DevX crypto/mlx5: adjust to the multiple data unit API MAINTAINERS | 4 + drivers/common/mlx5/linux/mlx5_common_os.c | 30 +- drivers/common/mlx5/linux/mlx5_common_os.h | 5 + drivers/common/mlx5/linux/mlx5_nl.c | 2 +- drivers/common/mlx5/meson.build | 1 + drivers/common/mlx5/mlx5_common.c | 2 +- drivers/common/mlx5/mlx5_common.h | 2 + drivers/common/mlx5/mlx5_common_devx.c | 2 +- drivers/common/mlx5/mlx5_common_log.h | 21 + drivers/common/mlx5/mlx5_common_mp.c | 2 +- drivers/common/mlx5/mlx5_common_mr.c | 2 +- drivers/common/mlx5/mlx5_common_pci.c | 17 +- drivers/common/mlx5/mlx5_common_pci.h | 21 +- drivers/common/mlx5/mlx5_common_utils.c | 221 ++++++ drivers/common/mlx5/mlx5_common_utils.h | 202 ++++- drivers/common/mlx5/mlx5_devx_cmds.c | 314 +++++++- drivers/common/mlx5/mlx5_devx_cmds.h | 66 ++ drivers/common/mlx5/mlx5_malloc.c | 2 +- drivers/common/mlx5/mlx5_prm.h | 545 +++++++++----- .../common/mlx5/rte_common_mlx5_exports.def | 7 + drivers/common/mlx5/version.map | 24 +- drivers/common/mlx5/windows/mlx5_common_os.c | 2 +- drivers/common/mlx5/windows/mlx5_glue.c | 2 +- drivers/compress/mlx5/mlx5_compress.c | 30 +- drivers/crypto/meson.build | 1 + drivers/crypto/mlx5/meson.build | 27 + drivers/crypto/mlx5/mlx5_crypto.c | 687 ++++++++++++++++++ drivers/crypto/mlx5/mlx5_crypto.h | 67 ++ drivers/crypto/mlx5/mlx5_crypto_dek.c | 135 ++++ drivers/crypto/mlx5/mlx5_crypto_utils.h | 19 + drivers/crypto/mlx5/version.map | 3 + drivers/net/mlx5/mlx5_utils.c | 209 ------ drivers/net/mlx5/mlx5_utils.h | 194 +---- drivers/regex/mlx5/mlx5_regex.c | 30 +- drivers/vdpa/mlx5/mlx5_vdpa.c | 32 +- 35 files changed, 2216 insertions(+), 714 deletions(-) create mode 100644 drivers/common/mlx5/mlx5_common_log.h create mode 100644 drivers/common/mlx5/mlx5_common_utils.c create mode 100644 drivers/crypto/mlx5/meson.build create mode 100644 drivers/crypto/mlx5/mlx5_crypto.c create mode 100644 drivers/crypto/mlx5/mlx5_crypto.h create mode 100644 drivers/crypto/mlx5/mlx5_crypto_dek.c create mode 100644 drivers/crypto/mlx5/mlx5_crypto_utils.h create mode 100644 drivers/crypto/mlx5/version.map -- 2.21.0