crypto/armv8: add PMD optimized for ARMv8 processors
authorZbigniew Bodek <zbigniew.bodek@caviumnetworks.com>
Wed, 18 Jan 2017 20:01:54 +0000 (21:01 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 19 Jan 2017 00:00:55 +0000 (01:00 +0100)
commit169ca3db550c3ab05a635a620292dd3df390ca95
treeaf59425f18d7477eb15d5c8f5bca1c5b13a61e10
parentda696d56636526b65f3894f0cc7122ae190e3e5e
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>
MAINTAINERS
config/common_base
devtools/test-build.sh
drivers/crypto/Makefile
drivers/crypto/armv8/Makefile [new file with mode: 0644]
drivers/crypto/armv8/rte_armv8_pmd.c [new file with mode: 0644]
drivers/crypto/armv8/rte_armv8_pmd_ops.c [new file with mode: 0644]
drivers/crypto/armv8/rte_armv8_pmd_private.h [new file with mode: 0644]
drivers/crypto/armv8/rte_armv8_pmd_version.map [new file with mode: 0644]
lib/librte_cryptodev/rte_cryptodev.h
mk/rte.app.mk