Add a new PMD for Nvidia devices- crypto PMD. The crypto PMD will be supported on Nvidia ConnectX6. 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.
v2: Add data-path part. v3: Rebase. v4: - Rebase + Address the following Akhil comments: - Set HW feature flag in the capability patch. - Fix mp object release in session clear. - Some spelling and word missing in doc. - Squash data-unit adjustment to the session operations commit. - Wording: device argument -> devarg. v5: - Add mlx5 crypto tests into test library. - Update documentation according to Akhil comments. - Fix memory region management. - Fix multi segment case in data-path code. - Split documentation to the correct commits according to Akhil comments. - Rebase to new version. - Change license to Nvidia license. Shiri Kuzin (10): drivers: introduce mlx5 crypto PMD crypto/mlx5: add DEK object management crypto/mlx5: add session operations crypto/mlx5: add basic operations crypto/mlx5: add queue pairs operations crypto/mlx5: add dev stop and start operations crypto/mlx5: add memory region management crypto/mlx5: create login object using DevX test/crypto: add mlx5 crypto driver test/crypto: add mlx5 multi segment tests Suanming Mou (5): crypto/mlx5: add keytag devarg crypto/mlx5: add maximum segments devarg crypto/mlx5: add WQE set initialization crypto/mlx5: add enqueue and dequeue operations crypto/mlx5: add statistic get and reset operations MAINTAINERS | 4 + app/test/meson.build | 1 + app/test/test_cryptodev.c | 611 ++++- app/test/test_cryptodev.h | 3 +- app/test/test_cryptodev_mlx5_test_vectors.h | 2499 +++++++++++++++++++ doc/guides/cryptodevs/features/mlx5.ini | 37 + doc/guides/cryptodevs/index.rst | 1 + doc/guides/cryptodevs/mlx5.rst | 150 ++ doc/guides/rel_notes/release_21_08.rst | 5 + drivers/common/mlx5/mlx5_common.h | 1 + drivers/common/mlx5/mlx5_common_pci.c | 14 + drivers/common/mlx5/mlx5_common_pci.h | 21 +- drivers/crypto/meson.build | 1 + drivers/crypto/mlx5/meson.build | 27 + drivers/crypto/mlx5/mlx5_crypto.c | 1177 +++++++++ drivers/crypto/mlx5/mlx5_crypto.h | 91 + drivers/crypto/mlx5/mlx5_crypto_dek.c | 136 + drivers/crypto/mlx5/mlx5_crypto_utils.h | 19 + drivers/crypto/mlx5/version.map | 3 + 19 files changed, 4774 insertions(+), 27 deletions(-) create mode 100644 app/test/test_cryptodev_mlx5_test_vectors.h create mode 100644 doc/guides/cryptodevs/features/mlx5.ini create mode 100644 doc/guides/cryptodevs/mlx5.rst 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.27.0