[dpdk-dev] [PATCH v8 13/16] crypto/mlx5: add statistic get and reset operations

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou This commit adds mlx5 crypto statistic get and reset operations. Signed-off-by: Suanming Mou Signed-off-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 40 --- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/

[dpdk-dev] [PATCH v8 14/16] test/crypto: add mlx5 crypto driver

2021-07-15 Thread Shiri Kuzin
In order to test the new mlx5 crypto PMD, the driver is added to the crypto test application. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- app/test/test_cryptodev.c | 7 +++ app/test/test_cryptodev.h | 2 ++ doc/guides/cryptodevs/mlx5.rst | 3 +++ 3 files changed, 12

[dpdk-dev] [PATCH v8 12/16] crypto/mlx5: add enqueue and dequeue operations

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou The crypto operations are done with the WQE set which contains one UMR WQE and one rdma write WQE. Most segments of the WQE set are initialized properly during queue setup, only limited segments are initialized according to the crypto detail in the datapath process. This commi

[dpdk-dev] [PATCH v8 15/16] test/crypto: add data-unit and wrapped vectors

2021-07-15 Thread Shiri Kuzin
The AES-XTS algorithm supports using a wrapped key. In AES-XTS the data-unit defines the data block size to be encrypted\decrypted. Add AES-XTS vectors with a wrapped key. Add a variable stating whether the key is wrapped or not. Add the AES-XTS data-unit. Signed-off-by: Shiri Kuzin Acked-by

[dpdk-dev] [PATCH v8 16/16] test/crypto: add AES-XTS multi segment OOP tests

2021-07-15 Thread Shiri Kuzin
The AES-XTS algorithm can supports wrapped key and data-unit. The encryption/decryption can be done out of place and using multi segments. Add multi segment and out of place tests to the recently added AES-XTS vectors, which support using data-unit and a wrapped key. Signed-off-by: Shiri Kuzin

[dpdk-dev] [PATCH v8 09/16] crypto/mlx5: add keytag devarg

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou A keytag is a piece of data encrypted together with a DEK. When a DEK is referenced by an MKEY.bsf through its index, the keytag is also supplied in the BSF as plaintext. The HW will decrypt the DEK (and the attached keytag) and will fail the operation if the keytags don't mat

[dpdk-dev] [PATCH v8 11/16] crypto/mlx5: add WQE set initialization

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou Currently, HW handles the WQEs much faster than the software, Using the constant WQE set layout can initialize most of the WQE segments in advanced, and software only needs to configure very limited segments in datapath. This accelerates the software WQE organize in datapath.

[dpdk-dev] [PATCH v8 10/16] crypto/mlx5: add maximum segments devarg

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou The mlx5 HW crypto operations are done by attaching crypto property to a memory region. Once done, every access to the memory via the crypto-enabled memory region will result with in-line encryption or decryption of the data. As a result, the design choice is to provide two ty

[dpdk-dev] [PATCH v8 08/16] crypto/mlx5: create login object using DevX

2021-07-15 Thread Shiri Kuzin
-off-by: Shiri Kuzin Acked-by: Matan Azrad --- doc/guides/cryptodevs/mlx5.rst| 60 + drivers/crypto/mlx5/mlx5_crypto.c | 103 ++ drivers/crypto/mlx5/mlx5_crypto.h | 7 ++ 3 files changed, 170 insertions(+) diff --git a/doc/guides/cryptodevs/mlx5

[dpdk-dev] [PATCH v8 05/16] crypto/mlx5: add queue pairs operations

2021-07-15 Thread Shiri Kuzin
implementation for the release QP function to release all the QP resources. Added the ops structure that contains any operation which is supported by the cryptodev. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 129

[dpdk-dev] [PATCH v8 06/16] crypto/mlx5: add dev stop and start operations

2021-07-15 Thread Shiri Kuzin
Add the dev_start function that is used to start a configured device. Add the dev_stop function that is used to stop a configured device. Both functions set the dev parameter as used and return 0. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 17

[dpdk-dev] [PATCH v8 07/16] crypto/mlx5: add memory region management

2021-07-15 Thread Shiri Kuzin
g a system call. Add memory region cache management: - 2 level cache per queue-pair - no locks. - 1 shared cache between all the queues using a lock. Using this way, the MR key search per data-path address is optimized. Signed-off-by: Shiri Kuzin Signed-off-by: Michael Baum Acked

[dpdk-dev] [PATCH v8 04/16] crypto/mlx5: add basic operations

2021-07-15 Thread Shiri Kuzin
struct to user private data with the fields socket id, number of queue pairs and feature flags to be disabled. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 26 +++--- drivers/crypto/mlx5/mlx5_crypto.h | 1 + 2 files changed, 20

[dpdk-dev] [PATCH v8 00/16] drivers: introduce mlx5 crypto PMD

2021-07-15 Thread Shiri Kuzin
by error. Shiri Kuzin (11): 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 memor

[dpdk-dev] [PATCH v8 01/16] drivers: introduce mlx5 crypto PMD

2021-07-15 Thread Shiri Kuzin
adds the PCI probing, basic functions, build files and log utility. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- MAINTAINERS | 4 + doc/guides/cryptodevs/features/mlx5.ini | 27 +++ doc/guides/cryptodevs/index.rst | 1 + doc/guides/cryptodevs/mlx5

[dpdk-dev] [PATCH v8 03/16] crypto/mlx5: add session operations

2021-07-15 Thread Shiri Kuzin
: Shiri Kuzin Acked-by: Matan Azrad --- doc/guides/cryptodevs/features/mlx5.ini | 5 + doc/guides/cryptodevs/mlx5.rst | 10 ++ drivers/crypto/mlx5/mlx5_crypto.c | 172 +++- 3 files changed, 182 insertions(+), 5 deletions(-) diff --git a/doc/guides/cryptodevs

[dpdk-dev] [PATCH v8 02/16] crypto/mlx5: add DEK object management

2021-07-15 Thread Shiri Kuzin
routine. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/meson.build | 1 + drivers/crypto/mlx5/mlx5_crypto.c | 42 --- drivers/crypto/mlx5/mlx5_crypto.h | 51 drivers/crypto/mlx5/mlx5_crypto_dek.c | 161 ++ 4 files

[dpdk-dev] [PATCH v7 14/16] test/crypto: add mlx5 crypto driver

2021-07-15 Thread Shiri Kuzin
In order to test the new mlx5 crypto PMD, the driver is added to the crypto test application. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- app/test/test_cryptodev.c | 7 +++ app/test/test_cryptodev.h | 2 ++ doc/guides/cryptodevs/mlx5.rst | 3 +++ 3 files changed, 12

[dpdk-dev] [PATCH v7 15/16] test/crypto: add data-unit and wrapped vectors

2021-07-15 Thread Shiri Kuzin
The AES-XTS algorithm supports using a wrapped key. In AES-XTS the data-unit defines the data block size to be encrypted\decrypted. Add AES-XTS vectors with a wrapped key. Add a variable stating whether the key is wrapped or not. Add the AES-XTS data-unit. Signed-off-by: Shiri Kuzin Acked-by

[dpdk-dev] [PATCH v7 11/16] crypto/mlx5: add WQE set initialization

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou Currently, HW handles the WQEs much faster than the software, Using the constant WQE set layout can initialize most of the WQE segments in advanced, and software only needs to configure very limited segments in datapath. This accelerates the software WQE organize in datapath.

[dpdk-dev] [PATCH v7 13/16] crypto/mlx5: add statistic get and reset operations

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou This commit adds mlx5 crypto statistic get and reset operations. Signed-off-by: Suanming Mou Signed-off-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 40 --- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/

[dpdk-dev] [PATCH v7 16/16] test/crypto: add AES-XTS multi segment OOP tests

2021-07-15 Thread Shiri Kuzin
The AES-XTS algorithm can supports wrapped key and data-unit. The encryption/decryption can be done out of place and using multi segments. Add multi segment and out of place tests to the recently added AES-XTS vectors, which support using data-unit and a wrapped key. Signed-off-by: Shiri Kuzin

[dpdk-dev] [PATCH v7 08/16] crypto/mlx5: create login object using DevX

2021-07-15 Thread Shiri Kuzin
-off-by: Shiri Kuzin Acked-by: Matan Azrad --- doc/guides/cryptodevs/mlx5.rst| 60 + drivers/crypto/mlx5/mlx5_crypto.c | 103 ++ drivers/crypto/mlx5/mlx5_crypto.h | 7 ++ 3 files changed, 170 insertions(+) diff --git a/doc/guides/cryptodevs/mlx5

[dpdk-dev] [PATCH v7 12/16] crypto/mlx5: add enqueue and dequeue operations

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou The crypto operations are done with the WQE set which contains one UMR WQE and one rdma write WQE. Most segments of the WQE set are initialized properly during queue setup, only limited segments are initialized according to the crypto detail in the datapath process. This commi

[dpdk-dev] [PATCH v7 10/16] crypto/mlx5: add maximum segments devarg

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou The mlx5 HW crypto operations are done by attaching crypto property to a memory region. Once done, every access to the memory via the crypto-enabled memory region will result with in-line encryption or decryption of the data. As a result, the design choice is to provide two ty

[dpdk-dev] [PATCH v7 09/16] crypto/mlx5: add keytag devarg

2021-07-15 Thread Shiri Kuzin
From: Suanming Mou A keytag is a piece of data encrypted together with a DEK. When a DEK is referenced by an MKEY.bsf through its index, the keytag is also supplied in the BSF as plaintext. The HW will decrypt the DEK (and the attached keytag) and will fail the operation if the keytags don't mat

[dpdk-dev] [PATCH v7 06/16] crypto/mlx5: add dev stop and start operations

2021-07-15 Thread Shiri Kuzin
Add the dev_start function that is used to start a configured device. Add the dev_stop function that is used to stop a configured device. Both functions set the dev parameter as used and return 0. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 17

[dpdk-dev] [PATCH v7 07/16] crypto/mlx5: add memory region management

2021-07-15 Thread Shiri Kuzin
g a system call. Add memory region cache management: - 2 level cache per queue-pair - no locks. - 1 shared cache between all the queues using a lock. Using this way, the MR key search per data-path address is optimized. Signed-off-by: Shiri Kuzin Signed-off-by: Michael Baum Acked

[dpdk-dev] [PATCH v7 04/16] crypto/mlx5: add basic operations

2021-07-15 Thread Shiri Kuzin
struct to user private data with the fields socket id, number of queue pairs and feature flags to be disabled. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 26 +++--- drivers/crypto/mlx5/mlx5_crypto.h | 1 + 2 files changed, 20

[dpdk-dev] [PATCH v7 03/16] crypto/mlx5: add session operations

2021-07-15 Thread Shiri Kuzin
: Shiri Kuzin Acked-by: Matan Azrad --- doc/guides/cryptodevs/features/mlx5.ini | 5 + doc/guides/cryptodevs/mlx5.rst | 10 ++ drivers/crypto/mlx5/mlx5_crypto.c | 172 +++- 3 files changed, 182 insertions(+), 5 deletions(-) diff --git a/doc/guides/cryptodevs

[dpdk-dev] [PATCH v7 01/16] drivers: introduce mlx5 crypto PMD

2021-07-15 Thread Shiri Kuzin
adds the PCI probing, basic functions, build files and log utility. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- MAINTAINERS | 4 + doc/guides/cryptodevs/features/mlx5.ini | 27 +++ doc/guides/cryptodevs/index.rst | 1 + doc/guides/cryptodevs/mlx5

[dpdk-dev] [PATCH v7 05/16] crypto/mlx5: add queue pairs operations

2021-07-15 Thread Shiri Kuzin
implementation for the release QP function to release all the QP resources. Added the ops structure that contains any operation which is supported by the cryptodev. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 129

[dpdk-dev] [PATCH v7 02/16] crypto/mlx5: add DEK object management

2021-07-15 Thread Shiri Kuzin
routine. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/meson.build | 1 + drivers/crypto/mlx5/mlx5_crypto.c | 42 --- drivers/crypto/mlx5/mlx5_crypto.h | 51 drivers/crypto/mlx5/mlx5_crypto_dek.c | 161 ++ 4 files

[dpdk-dev] [PATCH v7 00/16] drivers: introduce mlx5 crypto PMD

2021-07-15 Thread Shiri Kuzin
nse. v6: - Rebase to new version. - Address David's comment and update log accordingly. - Update testing app commits as suggested by Akhil. v7: - Rebase to new version. - Add scatter gather and OOP test cases. Shiri Kuzin (11): drivers: introduce mlx5 crypto PMD crypto/mlx5: add DE

[dpdk-dev] [PATCH v6 15/15] test/crypto: add data-unit and wrapped vectors

2021-07-08 Thread Shiri Kuzin
The AES-XTS algorithm supports using a wrapped key. In AES-XTS the data-unit defines the data block size to be encrypted\decrypted. Add AES-XTS vectors with a wrapped key. Add a variable stating whether the key is wrapped or not. Add the AES-XTS data-unit. Signed-off-by: Shiri Kuzin --- app

[dpdk-dev] [PATCH v6 14/15] test/crypto: add mlx5 crypto driver

2021-07-08 Thread Shiri Kuzin
In order to test the new mlx5 crypto PMD, the driver is added to the crypto test application. Signed-off-by: Shiri Kuzin --- app/test/test_cryptodev.c | 7 +++ app/test/test_cryptodev.h | 1 + doc/guides/cryptodevs/mlx5.rst | 3 +++ 3 files changed, 11 insertions(+) diff --git a

[dpdk-dev] [PATCH v6 13/15] crypto/mlx5: add statistic get and reset operations

2021-07-08 Thread Shiri Kuzin
From: Suanming Mou This commit adds mlx5 crypto statistic get and reset operations. Signed-off-by: Suanming Mou Signed-off-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 40 --- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/

[dpdk-dev] [PATCH v6 12/15] crypto/mlx5: add enqueue and dequeue operations

2021-07-08 Thread Shiri Kuzin
From: Suanming Mou The crypto operations are done with the WQE set which contains one UMR WQE and one rdma write WQE. Most segments of the WQE set are initialized properly during queue setup, only limited segments are initialized according to the crypto detail in the datapath process. This commi

[dpdk-dev] [PATCH v6 11/15] crypto/mlx5: add WQE set initialization

2021-07-08 Thread Shiri Kuzin
From: Suanming Mou Currently, HW handles the WQEs much faster than the software, Using the constant WQE set layout can initialize most of the WQE segments in advanced, and software only needs to configure very limited segments in datapath. This accelerates the software WQE organize in datapath.

[dpdk-dev] [PATCH v6 10/15] crypto/mlx5: add maximum segments devarg

2021-07-08 Thread Shiri Kuzin
From: Suanming Mou The mlx5 HW crypto operations are done by attaching crypto property to a memory region. Once done, every access to the memory via the crypto-enabled memory region will result with in-line encryption or decryption of the data. As a result, the design choice is to provide two ty

[dpdk-dev] [PATCH v6 09/15] crypto/mlx5: add keytag devarg

2021-07-08 Thread Shiri Kuzin
From: Suanming Mou A keytag is a piece of data encrypted together with a DEK. When a DEK is referenced by an MKEY.bsf through its index, the keytag is also supplied in the BSF as plaintext. The HW will decrypt the DEK (and the attached keytag) and will fail the operation if the keytags don't mat

[dpdk-dev] [PATCH v6 08/15] crypto/mlx5: create login object using DevX

2021-07-08 Thread Shiri Kuzin
-off-by: Shiri Kuzin Acked-by: Matan Azrad --- doc/guides/cryptodevs/mlx5.rst| 60 + drivers/crypto/mlx5/mlx5_crypto.c | 103 ++ drivers/crypto/mlx5/mlx5_crypto.h | 7 ++ 3 files changed, 170 insertions(+) diff --git a/doc/guides/cryptodevs/mlx5

[dpdk-dev] [PATCH v6 07/15] crypto/mlx5: add memory region management

2021-07-08 Thread Shiri Kuzin
g a system call. Add memory region cache management: - 2 level cache per queue-pair - no locks. - 1 shared cache between all the queues using a lock. Using this way, the MR key search per data-path address is optimized. Signed-off-by: Shiri Kuzin Signed-off-by: Michael Baum Acked

[dpdk-dev] [PATCH v6 06/15] crypto/mlx5: add dev stop and start operations

2021-07-08 Thread Shiri Kuzin
Add the dev_start function that is used to start a configured device. Add the dev_stop function that is used to stop a configured device. Both functions set the dev parameter as used and return 0. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 17

[dpdk-dev] [PATCH v6 05/15] crypto/mlx5: add queue pairs operations

2021-07-08 Thread Shiri Kuzin
implementation for the release QP function to release all the QP resources. Added the ops structure that contains any operation which is supported by the cryptodev. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 129

[dpdk-dev] [PATCH v6 04/15] crypto/mlx5: add basic operations

2021-07-08 Thread Shiri Kuzin
struct to user private data with the fields socket id, number of queue pairs and feature flags to be disabled. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 26 +++--- drivers/crypto/mlx5/mlx5_crypto.h | 1 + 2 files changed, 20

[dpdk-dev] [PATCH v6 03/15] crypto/mlx5: add session operations

2021-07-08 Thread Shiri Kuzin
: Shiri Kuzin Acked-by: Matan Azrad --- doc/guides/cryptodevs/features/mlx5.ini | 5 + doc/guides/cryptodevs/mlx5.rst | 10 ++ drivers/crypto/mlx5/mlx5_crypto.c | 172 +++- 3 files changed, 182 insertions(+), 5 deletions(-) diff --git a/doc/guides/cryptodevs

[dpdk-dev] [PATCH v6 02/15] crypto/mlx5: add DEK object management

2021-07-08 Thread Shiri Kuzin
routine. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/meson.build | 1 + drivers/crypto/mlx5/mlx5_crypto.c | 42 +--- drivers/crypto/mlx5/mlx5_crypto.h | 51 ++ drivers/crypto/mlx5/mlx5_crypto_dek.c | 136 ++ 4

[dpdk-dev] [PATCH v6 01/15] drivers: introduce mlx5 crypto PMD

2021-07-08 Thread Shiri Kuzin
adds the PCI probing, basic functions, build files and log utility. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- MAINTAINERS | 4 + doc/guides/cryptodevs/features/mlx5.ini | 27 +++ doc/guides/cryptodevs/index.rst | 1 + doc/guides/cryptodevs/mlx5

[dpdk-dev] [PATCH v6 00/15] drivers: introduce mlx5 crypto PMD

2021-07-08 Thread Shiri Kuzin
v6: - Rebase to new version. - Address David's comment and update log accordingly. - Update testing app commits as suggested by Akhil. Shiri Kuzin (10): drivers: introduce mlx5 crypto PMD crypto/mlx5: add DEK object management crypto/mlx5: add session operations crypto/mlx5: a

Re: [dpdk-dev] [EXT] [PATCH v5 15/15] test/crypto: add mlx5 multi segment tests

2021-07-06 Thread Shiri Kuzin
> -Original Message- > From: Akhil Goyal > Sent: Tuesday, July 6, 2021 12:38 PM > To: Shiri Kuzin ; dev@dpdk.org > Cc: Matan Azrad ; Suanming Mou > > Subject: RE: [EXT] [PATCH v5 15/15] test/crypto: add mlx5 multi segment > tests > > > > >

Re: [dpdk-dev] [EXT] [PATCH v5 15/15] test/crypto: add mlx5 multi segment tests

2021-07-06 Thread Shiri Kuzin
> -Original Message- > From: Akhil Goyal > Sent: Tuesday, July 6, 2021 10:48 AM > To: Shiri Kuzin ; dev@dpdk.org > Cc: Matan Azrad ; Suanming Mou > > Subject: RE: [EXT] [PATCH v5 15/15] test/crypto: add mlx5 multi segment > tests > > > The crypto m

[dpdk-dev] [PATCH v5 14/15] test/crypto: add mlx5 crypto driver

2021-07-01 Thread Shiri Kuzin
and use a wrapped key. The added tests will test both data integrity and correct stat values. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- app/test/meson.build|1 + app/test/test_cryptodev.c | 334 ++- app/test/test_cryptodev.h

[dpdk-dev] [PATCH v5 13/15] crypto/mlx5: add statistic get and reset operations

2021-07-01 Thread Shiri Kuzin
From: Suanming Mou This commit adds mlx5 crypto statistic get and reset operations. Signed-off-by: Suanming Mou Signed-off-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 40 --- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/

[dpdk-dev] [PATCH v5 15/15] test/crypto: add mlx5 multi segment tests

2021-07-01 Thread Shiri Kuzin
The crypto mlx5 driver supports multi segment encryption and decryption operations. Added mlx5 multi segment encryption function and multi segment decryption function that will both use the mlx5 vectors. The added tests will test both data integrity and correct stat values. Signed-off-by: Shiri

[dpdk-dev] [PATCH v5 12/15] crypto/mlx5: add enqueue and dequeue operations

2021-07-01 Thread Shiri Kuzin
From: Suanming Mou The crypto operations are done with the WQE set which contains one UMR WQE and one rdma write WQE. Most segments of the WQE set are initialized properly during queue setup, only limited segments are initialized according to the crypto detail in the datapath process. This commi

[dpdk-dev] [PATCH v5 11/15] crypto/mlx5: add WQE set initialization

2021-07-01 Thread Shiri Kuzin
From: Suanming Mou Currently, HW handles the WQEs much faster than the software, Using the constant WQE set layout can initialize most of the WQE segments in advanced, and software only needs to configure very limited segments in datapath. This accelerates the software WQE organize in datapath.

[dpdk-dev] [PATCH v5 10/15] crypto/mlx5: add maximum segments devarg

2021-07-01 Thread Shiri Kuzin
From: Suanming Mou The mlx5 HW crypto operations are done by attaching crypto property to a memory region. Once done, every access to the memory via the crypto-enabled memory region will result with in-line encryption or decryption of the data. As a result, the design choice is to provide two ty

[dpdk-dev] [PATCH v5 09/15] crypto/mlx5: add keytag devarg

2021-07-01 Thread Shiri Kuzin
From: Suanming Mou A keytag is a piece of data encrypted together with a DEK. When a DEK is referenced by an MKEY.bsf through its index, the keytag is also supplied in the BSF as plaintext. The HW will decrypt the DEK (and the attached keytag) and will fail the operation if the keytags don't mat

[dpdk-dev] [PATCH v5 08/15] crypto/mlx5: create login object using DevX

2021-07-01 Thread Shiri Kuzin
-off-by: Shiri Kuzin Acked-by: Matan Azrad --- doc/guides/cryptodevs/mlx5.rst| 60 + drivers/crypto/mlx5/mlx5_crypto.c | 103 ++ drivers/crypto/mlx5/mlx5_crypto.h | 7 ++ 3 files changed, 170 insertions(+) diff --git a/doc/guides/cryptodevs/mlx5

[dpdk-dev] [PATCH v5 07/15] crypto/mlx5: add memory region management

2021-07-01 Thread Shiri Kuzin
g a system call. Add memory region cache management: - 2 level cache per queue-pair - no locks. - 1 shared cache between all the queues using a lock. Using this way, the MR key search per data-path address is optimized. Signed-off-by: Shiri Kuzin Signed-off-by: Michael Baum Acked

[dpdk-dev] [PATCH v5 06/15] crypto/mlx5: add dev stop and start operations

2021-07-01 Thread Shiri Kuzin
Add the dev_start function that is used to start a configured device. Add the dev_stop function that is used to stop a configured device. Both functions set the dev parameter as used and return 0. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 17

[dpdk-dev] [PATCH v5 05/15] crypto/mlx5: add queue pairs operations

2021-07-01 Thread Shiri Kuzin
implementation for the release QP function to release all the QP resources. Added the ops structure that contains any operation which is supported by the cryptodev. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 129

[dpdk-dev] [PATCH v5 04/15] crypto/mlx5: add basic operations

2021-07-01 Thread Shiri Kuzin
struct to user private data with the fields socket id, number of queue pairs and feature flags to be disabled. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 26 +++--- drivers/crypto/mlx5/mlx5_crypto.h | 1 + 2 files changed, 20

[dpdk-dev] [PATCH v5 03/15] crypto/mlx5: add session operations

2021-07-01 Thread Shiri Kuzin
: Shiri Kuzin Acked-by: Matan Azrad --- doc/guides/cryptodevs/features/mlx5.ini | 5 + doc/guides/cryptodevs/mlx5.rst | 10 ++ drivers/crypto/mlx5/mlx5_crypto.c | 172 +++- 3 files changed, 182 insertions(+), 5 deletions(-) diff --git a/doc/guides/cryptodevs

[dpdk-dev] [PATCH v5 02/15] crypto/mlx5: add DEK object management

2021-07-01 Thread Shiri Kuzin
routine. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/meson.build | 1 + drivers/crypto/mlx5/mlx5_crypto.c | 42 +--- drivers/crypto/mlx5/mlx5_crypto.h | 51 ++ drivers/crypto/mlx5/mlx5_crypto_dek.c | 136 ++ 4

[dpdk-dev] [PATCH v5 01/15] drivers: introduce mlx5 crypto PMD

2021-07-01 Thread Shiri Kuzin
adds the PCI probing, basic functions, build files and log utility. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- MAINTAINERS | 4 + doc/guides/cryptodevs/features/mlx5.ini | 27 +++ doc/guides/cryptodevs/index.rst | 1 + doc/guides/cryptodevs/mlx5

[dpdk-dev] [PATCH v5 00/15] drivers: introduce mlx5 crypto PMD

2021-07-01 Thread Shiri Kuzin
nse. 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 reg

Re: [dpdk-dev] [PATCH] net/mlx5: update GENEVE TLV option exist bit

2021-06-24 Thread Shiri Kuzin
This patch will be removed for now until FW support is fully done and be added when the support is completed. Regards, Shiri > -Original Message- > From: Raslan Darawsheh > Sent: Sunday, June 6, 2021 2:32 PM > To: Shiri Kuzin ; dev@dpdk.org > Cc: Matan Azrad ; Slava Ov

[dpdk-dev] [PATCH] net/mlx5: update GENEVE TLV option exist bit

2021-05-31 Thread Shiri Kuzin
option item. Signed-off-by: Shiri Kuzin Acked-by: Viacheslav Ovsiienko --- drivers/common/mlx5/mlx5_prm.h | 3 ++- drivers/net/mlx5/mlx5_flow_dv.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index 26761f5bd

[dpdk-dev] [PATCH] common/mlx5: fix mkey attributes initialization

2021-05-07 Thread Shiri Kuzin
entire mkey attributes struct to 0 which will prevent this issue from reoccurring if any fields are added to the mkey sturct in the future. Fixes: 0111a74e13dd ("common/mlx5: adjust DevX mkey fields for crypto") Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/common/ml

[dpdk-dev] [PATCH v2] examples/l2fwd-crypto: remove key size validation

2021-04-13 Thread Shiri Kuzin
RTE_CRYPTODEV_FF_CIPHER_WRAPPED_KEY feature flag is set, and kept in case the key should be generated by the application or RTE_CRYPTODEV_FF_CIPHER_WRAPPED_KEY is not set. [1] https://www.mail-archive.com/dev@dpdk.org/msg204836.html Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- V1->V2 -

[dpdk-dev] [PATCH 24/24] crypto/mlx5: adjust to the multiple data unit API

2021-04-08 Thread Shiri Kuzin
new field enables saving the data-unit size in the session structure to the block size pointer variable in order to support several data-unit sizes. [1] https://www.mail-archive.com/dev@dpdk.org/msg203590.html Signed-off-by: Shiri Kuzin --- drivers/crypto/mlx5/mlx5_crypto.c | 25

[dpdk-dev] [PATCH 21/24] crypto/mlx5: add dev stop and start operations

2021-04-08 Thread Shiri Kuzin
Add the dev_start function that is used to start a configured device. Add the dev_stop function that is used to stop a configured device. Both functions set the dev parameter as used and return 0. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 17

[dpdk-dev] [PATCH 23/24] crypto/mlx5: create login object using DevX

2021-04-08 Thread Shiri Kuzin
-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 89 +++ drivers/crypto/mlx5/mlx5_crypto.h | 1 + 2 files changed, 90 insertions(+) diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c index f71de5a724

[dpdk-dev] [PATCH 22/24] crypto/mlx5: add memory region management

2021-04-08 Thread Shiri Kuzin
g a system call. Add memory region cache management: - 2 level cache per queue-pair - no locks. - 1 shared cache between all the queues using a lock. Using this way, the MR key search per data-path address is optimized. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- driv

[dpdk-dev] [PATCH 20/24] crypto/mlx5: support queue pairs operations

2021-04-08 Thread Shiri Kuzin
implementation for the release QP function to release all the QP resources. Added the ops structure that contains any operation which is supported by the cryptodev. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 124

[dpdk-dev] [PATCH 18/24] crypto/mlx5: support session operations

2021-04-08 Thread Shiri Kuzin
: mlx5_crypto_sym_session_get_size- returns the size of the mlx5 session struct. mlx5_crypto_sym_session_configure- prepares the DEK hash-list and saves all the session data. mlx5_crypto_sym_session_clear - destroys the DEK hash-list. Signed-off-by: Shiri Kuzin Acked-by

[dpdk-dev] [PATCH 19/24] crypto/mlx5: add basic operations

2021-04-08 Thread Shiri Kuzin
get info function: -mlx5_crypto_dev_infos_get- function used to get specific information of a device. Added config struct to user private data with the fields socket id, number of queue pairs and feature flags to be disabled. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad

[dpdk-dev] [PATCH 14/24] common/mlx5: add crypto register structs and defs

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled Encryption key management requires use of several related registers. This patch adds the relevant structs and values, according to PRM definitions. Signed-off-by: Dekel Peled Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_prm.h | 41 ++ 1

[dpdk-dev] [PATCH 15/24] common/mlx5: support register write access

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled This patch adds support of write operation to NIC registers. Signed-off-by: Dekel Peled Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_devx_cmds.c | 67 +++- drivers/common/mlx5/mlx5_devx_cmds.h | 4 ++ drivers/common/mlx5/version.map | 20 +

[dpdk-dev] [PATCH 17/24] crypto/mlx5: add DEK object management

2021-04-08 Thread Shiri Kuzin
routine. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/crypto/mlx5/meson.build | 1 + drivers/crypto/mlx5/mlx5_crypto.c | 44 + drivers/crypto/mlx5/mlx5_crypto.h | 51 ++ drivers/crypto/mlx5/mlx5_crypto_dek.c | 135 ++ 4

[dpdk-dev] [PATCH 16/24] drivers: introduce mlx5 crypto PMD

2021-04-08 Thread Shiri Kuzin
the PCI probing, basic functions, build files and log utility. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- MAINTAINERS | 4 + drivers/common/mlx5/mlx5_common.h | 1 + drivers/common/mlx5/mlx5_common_pci.c | 14 ++ drivers/common/mlx5

[dpdk-dev] [PATCH 11/24] common/mlx5: share hash list tool

2021-04-08 Thread Shiri Kuzin
In order to use the hash list defined in net in other drivers, the hash list is moved to common utilities. In addition, the log definition was moved from the common utilities to a dedicated new log file in common in order to prevent a conflict. Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad

[dpdk-dev] [PATCH 12/24] common/mlx5: share get ib device match function

2021-04-08 Thread Shiri Kuzin
The get_ib_device_match function iterates over the list of ib devices returned by the get_device_list glue function and returns the ib device matching the provided address. Since this function is in use by several drivers, in this patch we share the function in common part. Signed-off-by: Shiri

[dpdk-dev] [PATCH 13/24] common/mlx5: support general obj CREDENTIAL create

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled CREDENTIAL object is used for any crypto operation in wrapped mode. This patch add support of CREDENTIAL object create operation. Add reading of CREDENTIAL support capability. Add function to create general object type CREDENTIAL, using DevX API. Signed-off-by: Dekel Peled Ac

[dpdk-dev] [PATCH 10/24] common/mlx5: add crypto BSF struct and defines

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled This patch adds the struct defining crypto BSF segment of UMR WQE, and the related value definitions and offsets. Signed-off-by: Dekel Peled Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_prm.h | 66 ++ 1 file changed, 66 insertions(+) di

[dpdk-dev] [PATCH 09/24] common/mlx5: support general obj CRYPTO LOGIN create

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled CRYPTO_LOGIN Object is used to login to the device as crypto user or crypto officer. Required in order to perform any crypto related control operations. This patch adds support of CRYPTO_LOGIN object create operation. Add reading of CRYPTO_LOGIN support capability. Add function

[dpdk-dev] [PATCH 08/24] common/mlx5: support general obj IMPORT KEK create

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled IMPORT_KEK object is used to wrap (encrypt) critical security parameters, such as other keys and credentials, when those need to be passed between the device and the software. This patch add support of IMPORT_KEK object create operation. Add reading of IMPORT_KEK support capabi

[dpdk-dev] [PATCH 07/24] common/mlx5: support umr en field in MKEY context

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled MKEY that will be used in UMR operations must be created with umr_en attribute. This patch adds support for setting umr_en attribute in MKEY context. Signed-off-by: Dekel Peled Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_devx_cmds.c | 1 + drivers/common/mlx5/mlx5_dev

[dpdk-dev] [PATCH 04/24] common/mlx5: add HCA cap for AES-XTS crypto

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled Update the PRM structure and HCA capabilities reading, to include relevant capabilities for AES-XTS crypto. Signed-off-by: Dekel Peled Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_devx_cmds.c | 3 +++ drivers/common/mlx5/mlx5_devx_cmds.h | 2 ++ drivers/common/mlx5/mlx

[dpdk-dev] [PATCH 06/24] common/mlx5: add crypto en field to MKEY context

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled MKEY that will be used for crypto purposes must be created with crypto_en attribute. This patch adds support for crypto_en attribute in MKEY context. Signed-off-by: Dekel Peled Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_devx_cmds.c | 1 + drivers/common/mlx5/mlx5_de

[dpdk-dev] [PATCH 05/24] common/mlx5: support general object DEK create op

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled Data Encryption Keys (DEKs) are the keys used for data encryption/decryption operations. Add reading of DEK support capability. Add function to create general object type DEK, using DevX API. Signed-off-by: Dekel Peled Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_devx

[dpdk-dev] [PATCH 03/24] common/mlx5: optimize read of general obj type caps

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled General object types support is indicated in bitmap general_obj_types, which is part of HCA capabilities list. Currently this bitmap is read multiple times, and each time a different bit is extracted. This patch optimizes the code, reading the bitmap once into a local variable,

[dpdk-dev] [PATCH 01/24] common/mlx5: remove redundant spaces in header file

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled File drivers/common/mlx5/mlx5_prm.h includes structs representing data items as defined in PRM document. Some of these structs were copied as-is from kernel file mlx5_ifc.h. As result the structs are not all aligned with the same spacing. This patch removes redundant spaces and

[dpdk-dev] [PATCH 00/24] drivers: introduce mlx5 crypto PMD

2021-04-08 Thread Shiri Kuzin
: 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

[dpdk-dev] [PATCH 02/24] common/mlx5: update GENEVE TLV OPT obj name

2021-04-08 Thread Shiri Kuzin
From: Dekel Peled Rename MLX5_OBJ_TYPE_GENEVE_TLV_OPT as MLX5_GENERAL_OBJ_TYPE_GENEVE_TLV_OPT, to align with other general objects names. Signed-off-by: Dekel Peled Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_devx_cmds.c | 2 +- drivers/common/mlx5/mlx5_prm.h | 4 ++-- 2 files ch

[dpdk-dev] [PATCH] examples/l2fwd-crypto: remove key size validation

2021-04-08 Thread Shiri Kuzin
should be generated by the application. [1] https://www.mail-archive.com/dev@dpdk.org/msg201281.html Signed-off-by: Shiri Kuzin --- examples/l2fwd-crypto/main.c | 8 +++- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c

[dpdk-dev] [PATCH] net/mlx5: fix refuse empty VLAN validation

2021-01-19 Thread Shiri Kuzin
issue a validation was added requiring ether type of VLAN will be followed with VLAN item. Fixes: 0b1edd21cd78 ("net/mlx5: refuse empty VLAN flow specification") Cc: sta...@dpdk.org Signed-off-by: Shiri Kuzin Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow_verbs.c | 8 1 fi

[dpdk-dev] [PATCH v7 9/9] doc: update GENEVE TLV option support

2021-01-17 Thread Shiri Kuzin
GENEVE TLV option support added to mlx5 PMD. The limitations and support were updated in documentation. Signed-off-by: Shiri Kuzin Acked-by: Viacheslav Ovsiienko --- doc/guides/nics/mlx5.rst | 26 +- doc/guides/rel_notes/release_21_02.rst | 5 + 2

  1   2   3   >