#
bdce2564 |
| 04-Oct-2022 |
Akhil Goyal <gakhil@marvell.com> |
cryptodev: rework session framework
As per current design, rte_cryptodev_sym_session_create() and rte_cryptodev_sym_session_init() use separate mempool objects for a single session. And structure rt
cryptodev: rework session framework
As per current design, rte_cryptodev_sym_session_create() and rte_cryptodev_sym_session_init() use separate mempool objects for a single session. And structure rte_cryptodev_sym_session is not directly used by the application, it may cause ABI breakage if the structure is modified in future.
To address these two issues, the rte_cryptodev_sym_session_create will take one mempool object that the session and session private data are virtually/physically contiguous, and initializes both fields. The API rte_cryptodev_sym_session_init is removed.
rte_cryptodev_sym_session_create will now return an opaque session pointer which will be used by the app and other APIs.
In data path, opaque session pointer is attached to rte_crypto_op and the PMD can call an internal library API to get the session private data pointer based on the driver id.
Note: currently single session may be used by different device drivers, given it is initialized by them. After the change the session created by one device driver cannot be used or reinitialized by another driver.
Signed-off-by: Akhil Goyal <gakhil@marvell.com> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com> Acked-by: Kai Ji <kai.ji@intel.com> Tested-by: Gagandeep Singh <g.singh@nxp.com> Tested-by: David Coyle <david.coyle@intel.com> Tested-by: Kevin O'Sullivan <kevin.osullivan@intel.com>
show more ...
|
#
06c047b6 |
| 09-Feb-2022 |
Stephen Hemminger <stephen@networkplumber.org> |
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free functions found by nullfree.cocci
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
#
af668035 |
| 10-Aug-2021 |
Akhil Goyal <gakhil@marvell.com> |
cryptodev: expose driver interface as internal
The rte_cryptodev_pmd.* files are for drivers only and should be private to DPDK, and not installed for app use.
Signed-off-by: Akhil Goyal <gakhil@ma
cryptodev: expose driver interface as internal
The rte_cryptodev_pmd.* files are for drivers only and should be private to DPDK, and not installed for app use.
Signed-off-by: Akhil Goyal <gakhil@marvell.com> Acked-by: Matan Azrad <matan@nvidia.com> Acked-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
show more ...
|
#
728aaeff |
| 06-Mar-2020 |
Artur Trybula <arturx.trybula@intel.com> |
cryptodev: remove unused operation for queue count
This commit removes unused function pointer (queue_pair_count) from struct rte_cryptodev_ops. Related functions removed as well.
Signed-off-by: Ar
cryptodev: remove unused operation for queue count
This commit removes unused function pointer (queue_pair_count) from struct rte_cryptodev_ops. Related functions removed as well.
Signed-off-by: Artur Trybula <arturx.trybula@intel.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com> Acked-by: Anoob Joseph <anoobj@marvell.com>
show more ...
|
#
bde43e8a |
| 23-Jan-2020 |
Ruifeng Wang <ruifeng.wang@arm.com> |
crypto/armv8: link to library hosted by Arm
Armv8 crypto PMD linked to armv8_crypto library created by Marvell. Maintenance of armv8_crypto library will be discontinued. Change Armv8 PMD to link to
crypto/armv8: link to library hosted by Arm
Armv8 crypto PMD linked to armv8_crypto library created by Marvell. Maintenance of armv8_crypto library will be discontinued. Change Armv8 PMD to link to AArch64 crypto library hosted by Arm.
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com> Reviewed-by: Ola Liljedahl <ola.liljedahl@arm.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
b28f28ae |
| 22-Oct-2019 |
Dharmik Thakkar <dharmik.thakkar@arm.com> |
rename private header files
Some of the internal header files have 'rte_' prefix and some don't. Remove 'rte_' prefix from all internal header files.
Suggested-by: Thomas Monjalon <thomas@monjalon.
rename private header files
Some of the internal header files have 'rte_' prefix and some don't. Remove 'rte_' prefix from all internal header files.
Suggested-by: Thomas Monjalon <thomas@monjalon.net> Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com> Reviewed-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
show more ...
|
#
725d2a7f |
| 10-Jan-2019 |
Fan Zhang <roy.fan.zhang@intel.com> |
cryptodev: change queue pair configure structure
This patch changes the cryptodev queue pair configure structure to enable two mempool passed into cryptodev PMD simutaneously.
Signed-off-by: Fan Zh
cryptodev: change queue pair configure structure
This patch changes the cryptodev queue pair configure structure to enable two mempool passed into cryptodev PMD simutaneously.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
012c5076 |
| 05-Jul-2018 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
cryptodev: rename PMD symmetric session API
The PMD specific API to configure, clear and obtain session private size is renamed, including the word _sym_ to clarify that it is API for symmetric sess
cryptodev: rename PMD symmetric session API
The PMD specific API to configure, clear and obtain session private size is renamed, including the word _sym_ to clarify that it is API for symmetric sessions, so there will not be any conflicts for asymmetric and other type of sessions in the future.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
62303e43 |
| 05-Jul-2018 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
cryptodev: remove queue start/stop functions
Removed cryptodev queue start/stop functions, as they were marked deprecated in 18.05, since they were not implemented by any driver.
Signed-off-by: Pab
cryptodev: remove queue start/stop functions
Removed cryptodev queue start/stop functions, as they were marked deprecated in 18.05, since they were not implemented by any driver.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
e1fc5b76 |
| 05-Jul-2018 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
cryptodev: remove max number of sessions parameter
Most crypto PMDs do not have a limitation of the number of the sessions that can be handled internally. The value that was set before was not actua
cryptodev: remove max number of sessions parameter
Most crypto PMDs do not have a limitation of the number of the sessions that can be handled internally. The value that was set before was not actually used at all, since the sessions are created at the application level. Therefore, this value is not parsed from the initial crypto parameters anymore and it is set to 0, meaning that there is no actual limit.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
670c6dab |
| 29-May-2018 |
Anoob Joseph <anoob.joseph@caviumnetworks.com> |
crypto/armv8: fix HMAC supported digest sizes
For HMAC algorithms (SHAx-HMAC), the supported digest sizes are not a fixed value, but a range between 1 and the maximum digest size for those algorithm
crypto/armv8: fix HMAC supported digest sizes
For HMAC algorithms (SHAx-HMAC), the supported digest sizes are not a fixed value, but a range between 1 and the maximum digest size for those algorithms.
Fixes: 0f89def76127 ("crypto/armv8: fix HMAC supported key sizes") Cc: stable@dpdk.org
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com> Signed-off-by: Sachin Saxena <sachin.saxena@nxp.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
aaf4363e |
| 08-Jan-2018 |
Jerin Jacob <jerin.jacob@caviumnetworks.com> |
drivers: use SPDX tag for Cavium copyright files
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
|
#
6ab25e63 |
| 11-Oct-2017 |
Tomasz Duszynski <tdu@semihalf.com> |
drivers/crypto: use snprintf return value correctly
snprintf return value is the length of was encoded into destination array excluding '\0'. Thus return value equal to the length of the destination
drivers/crypto: use snprintf return value correctly
snprintf return value is the length of was encoded into destination array excluding '\0'. Thus return value equal to the length of the destination array or more means truncation.
This commit fixes improper use of the return value.
Fixes: eec136f3c54f ("aesni_gcm: add driver for AES-GCM crypto operations") Fixes: 924e84f87306 ("aesni_mb: add driver for multi buffer based crypto") Fixes: 0f548b50a160 ("crypto/aesni_mb: process crypto op on dequeue") Fixes: 169ca3db550c ("crypto/armv8: add PMD optimized for ARMv8 processors") Fixes: 2773c86d061a ("crypto/kasumi: add driver for KASUMI library") Fixes: 94b0ad8e0aa5 ("null_crypto: add driver for null crypto operations") Fixes: d61f70b4c918 ("crypto/libcrypto: add driver for OpenSSL library") Fixes: 3aafc423cf4d ("snow3g: add driver for SNOW 3G library") Fixes: cf7685d68f00 ("crypto/zuc: add driver for ZUC library") Cc: stable@dpdk.org
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
0f89def7 |
| 30-Jul-2017 |
Srisivasubramanian S <ssrinivasan@caviumnetworks.com> |
crypto/armv8: fix HMAC supported key sizes
For HMAC algorithms (SHAx-HMAC), the supported key sizes are not a fixed value, but a range between 1 and the block size.
Fixes: 169ca3db550c ("crypto/arm
crypto/armv8: fix HMAC supported key sizes
For HMAC algorithms (SHAx-HMAC), the supported key sizes are not a fixed value, but a range between 1 and the block size.
Fixes: 169ca3db550c ("crypto/armv8: add PMD optimized for ARMv8 processors") Cc: stable@dpdk.org
Signed-off-by: Srisivasubramanian S <ssrinivasan@caviumnetworks.com> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
show more ...
|
#
27391b53 |
| 25-Jul-2017 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
cryptodev: fix session init return value
When calling rte_cryptodev_sym_session_init(), if there was an error, it returned -1, instead of returning the specific error code, which can be valuable for
cryptodev: fix session init return value
When calling rte_cryptodev_sym_session_init(), if there was an error, it returned -1, instead of returning the specific error code, which can be valuable for the application for error handling.
Fixes: b3bbd9e5f265 ("cryptodev: support device independent sessions")
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com>
show more ...
|
#
7b3880fd |
| 11-Jul-2017 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
cryptodev: remove AAD size in auth capabilities
Additional Authenticated Data (AAD) was removed from the authentication parameters, but still the supported size was part of the authentication capabi
cryptodev: remove AAD size in auth capabilities
Additional Authenticated Data (AAD) was removed from the authentication parameters, but still the supported size was part of the authentication capabilities of a PMD.
Fixes: 4428eda8bb75 ("cryptodev: remove AAD from authentication structure")
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Declan Doherty <declan.doherty@intel.com>
show more ...
|
#
3abcd29f |
| 08-Jul-2017 |
Jerin Jacob <jerin.jacob@caviumnetworks.com> |
update Cavium Inc copyright headers
Replace the incorrect reference to "Cavium Networks", "Cavium Ltd" company name with correct the "Cavium, Inc" company name in copyright headers.
Signed-off-by:
update Cavium Inc copyright headers
Replace the incorrect reference to "Cavium Networks", "Cavium Ltd" company name with correct the "Cavium, Inc" company name in copyright headers.
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
show more ...
|
#
f7db6f82 |
| 05-Jul-2017 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
cryptodev: add mempool pointer in queue pair setup
The session mempool pointer is needed in each queue pair, if session-less operations are being handled. Therefore, the API is changed to accept thi
cryptodev: add mempool pointer in queue pair setup
The session mempool pointer is needed in each queue pair, if session-less operations are being handled. Therefore, the API is changed to accept this parameter, as the session mempool is created outside the device configuration function, similar to what ethdev does with the rx queues.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Declan Doherty <declan.doherty@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
b3bbd9e5 |
| 05-Jul-2017 |
Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com> |
cryptodev: support device independent sessions
Change crypto device's session management to make it device independent and simplify architecture when session is intended to be used on more than one
cryptodev: support device independent sessions
Change crypto device's session management to make it device independent and simplify architecture when session is intended to be used on more than one device.
Sessions private data is agnostic to underlying device by adding an indirection in the sessions private data using the crypto driver identifier. A single session can contain indirections to multiple device types.
New function rte_cryptodev_sym_session_init has been created, to initialize the driver private session data per driver to be used on a same session, and rte_cryptodev_sym_session_clear to clear this data before calling rte_cryptodev_sym_session_free.
Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Declan Doherty <declan.doherty@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
7a364fae |
| 30-Jun-2017 |
Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com> |
cryptodev: remove crypto device type enumeration
Changes device type identification to be based on a unique driver id replacing the current device type enumeration, which needed library changes ever
cryptodev: remove crypto device type enumeration
Changes device type identification to be based on a unique driver id replacing the current device type enumeration, which needed library changes every time a new crypto driver was added.
The driver id is assigned dynamically during driver registration using the new macro RTE_PMD_REGISTER_CRYPTO_DRIVER which returns a unique uint8_t identifier for that driver. New APIs are also introduced to allow retrieval of the driver id using the driver name.
Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Declan Doherty <declan.doherty@intel.com>
show more ...
|
#
acf86169 |
| 02-Jul-2017 |
Pablo de Lara <pablo.de.lara.guarch@intel.com> |
cryptodev: add auth IV
Authentication algorithms, such as AES-GMAC or the wireless algorithms (like SNOW3G) use IV, like cipher algorithms. So far, AES-GMAC has used the IV from the cipher structure
cryptodev: add auth IV
Authentication algorithms, such as AES-GMAC or the wireless algorithms (like SNOW3G) use IV, like cipher algorithms. So far, AES-GMAC has used the IV from the cipher structure, and the wireless algorithms have used the AAD field, which is not technically correct.
Therefore, authentication IV parameters have been added, so API is more correct. Like cipher IV, auth IV is expected to be copied after the crypto operation.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Declan Doherty <declan.doherty@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com>
show more ...
|
#
60e686c2 |
| 17-Feb-2017 |
Fan Zhang <roy.fan.zhang@intel.com> |
cryptodev: change device configuration API
This patch changes the device configuration API for rte_cryptodev_ops function prototype, and update all cryptodev PMDs for this change.
Signed-off-by: Fa
cryptodev: change device configuration API
This patch changes the device configuration API for rte_cryptodev_ops function prototype, and update all cryptodev PMDs for this change.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Acked-by: Declan Doherty <declan.doherty@intel.com>
show more ...
|
#
636e7392 |
| 27-Mar-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
drivers/crypto: use ring size function
Rather than reading the size directly from the ring structure, use the dedicated ring function for that purpose. Previous commits to do this only did so for th
drivers/crypto: use ring size function
Rather than reading the size directly from the ring structure, use the dedicated ring function for that purpose. Previous commits to do this only did so for the null crypto driver which was the only one compiled in by default, but all other drivers need to be similarly updated.
Fixes: b11c78a2e0c6 ("crypto/null: use ring size function")
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
169ca3db |
| 18-Jan-2017 |
Zbigniew Bodek <zbigniew.bodek@caviumnetworks.com> |
crypto/armv8: add PMD optimized for ARMv8 processors
This patch introduces crypto poll mode driver using ARMv8 cryptographic extensions. CPU compatibility with this driver is detected in run-time an
crypto/armv8: add PMD optimized for ARMv8 processors
This patch introduces crypto poll mode driver using ARMv8 cryptographic extensions. CPU compatibility with this driver is detected in run-time and virtual crypto device will not be created if CPU doesn't provide: AES, SHA1, SHA2 and NEON.
This PMD is optimized to provide performance boost for chained crypto operations processing, such as encryption + HMAC generation, decryption + HMAC validation. In particular, cipher only or hash only operations are not provided.
The driver currently supports AES-128-CBC in combination with: SHA256 HMAC and SHA1 HMAC and relies on the external armv8_crypto library: https://github.com/caviumnetworks/armv8_crypto
Build ARMv8 crypto PMD if compiling for ARM64 and CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO option is enable in the configuration file. ARMV8_CRYPTO_LIB_PATH environment variable will point to the appropriate library directory.
Signed-off-by: Zbigniew Bodek <zbigniew.bodek@caviumnetworks.com> Reviewed-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
show more ...
|