8e196c08 | 20-Jul-2021 |
Suanming Mou <suanmingm@nvidia.com> |
crypto/mlx5: support enqueue/dequeue operations
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 proper
crypto/mlx5: support enqueue/dequeue operations
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 commit adds the enqueue and dequeue operations and updates the WQE set segments accordingly.
Signed-off-by: Suanming Mou <suanmingm@nvidia.com> Signed-off-by: Matan Azrad <matan@nvidia.com> Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
1004be3c | 20-Jul-2021 |
Shiri Kuzin <shirik@nvidia.com> |
crypto/mlx5: support session operations
Sessions are used in symmetric transformations in order to prepare objects and data for packet processing stage.
A mlx5 session includes iv_offset, pointer t
crypto/mlx5: support session operations
Sessions are used in symmetric transformations in order to prepare objects and data for packet processing stage.
A mlx5 session includes iv_offset, pointer to mlx5_crypto_dek struct, bsf_size, bsf_p_type, block size index, encryption_order and encryption standard.
Implement the next session operations: 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 <shirik@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
546dff20 | 25-Jun-2021 |
Tejasree Kondoj <ktejasree@marvell.com> |
crypto/cnxk: add KASUMI decryption
Add KASUMI decrypt support.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Signed-off-by: Anoob Joseph <anoobj@marvell.com> Signed-off-by: Archana Muniganti
crypto/cnxk: add KASUMI decryption
Add KASUMI decrypt support.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Signed-off-by: Anoob Joseph <anoobj@marvell.com> Signed-off-by: Archana Muniganti <marchana@marvell.com> Signed-off-by: Tejasree Kondoj <ktejasree@marvell.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
0c83c9ab | 25-Jun-2021 |
Tejasree Kondoj <ktejasree@marvell.com> |
crypto/cnxk: add ZUC and SNOW3G decryption
Add PDCP opcode which handles ZUC and SNOW3G.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Signed-off-by: Anoob Joseph <anoobj@marvell.com> Signed-
crypto/cnxk: add ZUC and SNOW3G decryption
Add PDCP opcode which handles ZUC and SNOW3G.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Signed-off-by: Anoob Joseph <anoobj@marvell.com> Signed-off-by: Archana Muniganti <marchana@marvell.com> Signed-off-by: Tejasree Kondoj <ktejasree@marvell.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
d014dddb | 14-Apr-2021 |
Matan Azrad <matan@nvidia.com> |
cryptodev: support multiple cipher data-units
In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called blocks.
A block cipher consists of two pa
cryptodev: support multiple cipher data-units
In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called blocks.
A block cipher consists of two paired algorithms, one for encryption and the other for decryption. Both algorithms accept two inputs: an input block of size n bits and a key of size k bits; and both yield an n-bit output block. The decryption algorithm is defined to be the inverse function of the encryption.
For AES standard the block size is 16 bytes. For AES in XTS mode, the data to be encrypted\decrypted does not have to be multiple of 16B size, the unit of data is called data-unit. The data-unit size can be any size in range [16B, 2^24B], so, in this case, a data stream is divided into N amount of equal data-units and must be encrypted\decrypted in the same data-unit resolution.
For ABI compatibility reason, the size is limited to 64K (16-bit field). The new field dataunit_len is inserted in a struct padding hole, which is only 2 bytes long in 32-bit build. It could be moved and extended later during an ABI-breakage window.
The current cryptodev API doesn't allow the user to select a specific data-unit length supported by the devices. In addition, there is no definition how the IV is detected per data-unit when single operation includes more than one data-unit.
That causes applications to use single operation per data-unit even though all the data is continuous in memory what reduces datapath performance.
Add a new feature flag to support multiple data-unit sizes, called RTE_CRYPTODEV_FF_CIPHER_MULTIPLE_DATA_UNITS. Add a new field in cipher capability, called dataunit_set, where the devices can report the range of the supported data-unit sizes. Add a new cipher transformation field, called dataunit_len, where the user can select the data-unit length for all the operations.
All the new fields do not change the size of their structures, by filling some struct padding holes. They are added as exceptions in the ABI check file libabigail.abignore.
Using a bitmap to report the supported data-unit sizes capability allows the devices to report a range simply as same as the user to read it simply. also, thus sizes are usually common and probably will be shared among different devices.
Signed-off-by: Matan Azrad <matan@nvidia.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
8bd1040a | 27-Oct-2020 |
Didier Pallard <didier.pallard@6wind.com> |
crypto/octeontx2: fix out-of-place support
Out of place with linear buffers is supported by octeontx2 while not advertised.
Fixes: 6aa9ceaddf1d ("crypto/octeontx2: add symmetric capabilities") Cc:
crypto/octeontx2: fix out-of-place support
Out of place with linear buffers is supported by octeontx2 while not advertised.
Fixes: 6aa9ceaddf1d ("crypto/octeontx2: add symmetric capabilities") Cc: stable@dpdk.org
Signed-off-by: Didier Pallard <didier.pallard@6wind.com> Acked-by: Ankur Dwivedi <adwivedi@marvell.com>
show more ...
|