numam-dpdk/config
Declan Doherty 924e84f873 aesni_mb: add driver for multi buffer based crypto
This patch provides the initial implementation of the AES-NI multi-buffer
based crypto poll mode driver using DPDK's new cryptodev framework.

This PMD is dependent on Intel's multibuffer library, see the whitepaper
"Fast Multi-buffer IPsec Implementations on Intel® Architecture
Processors", see ref 1 for details on the library's design and ref 2 to
download the library itself. This initial implementation is limited to
supporting the chained operations of "hash then cipher" or "cipher then
hash" for the following cipher and hash algorithms:

Cipher algorithms:
  - RTE_CRYPTO_CIPHER_AES_CBC (with 128-bit, 192-bit and 256-bit keys supported)

Authentication algorithms:
  - RTE_CRYPTO_AUTH_SHA1_HMAC
  - RTE_CRYPTO_AUTH_SHA256_HMAC
  - RTE_CRYPTO_AUTH_SHA512_HMAC
  - RTE_CRYPTO_AUTH_AES_XCBC_MAC

Important Note:
Due to the fact that the multi-buffer library is designed for
accelerating IPsec crypto operation, the digest's generated for the HMAC
functions are truncated to lengths specified by IPsec RFC's, ie RFC2404
for using HMAC-SHA-1 with IPsec specifies that the digest is truncate
from 20 to 12 bytes.

Build instructions:
To build DPDK with the AESNI_MB_PMD the user is required to download
(ref 2) and compile the multi-buffer library on there system before
building DPDK. The environmental variable AESNI_MULTI_BUFFER_LIB_PATH
must be exported with the path where you extracted and built the multi
buffer library and finally set CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y in
config/common_linuxapp.

Current status: It's doesn't support crypto operation
across chained mbufs, or cipher only or hash only operations.

ref 1:
https://www-ssl.intel.com/content/www/us/en/intelligent-systems/intel-technology/fast-multi-buffer-ipsec-implementations-ia-processors-p

ref 2: https://downloadcenter.intel.com/download/22972

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2015-11-25 19:18:04 +01:00
..
common_bsdapp aesni_mb: add driver for multi buffer based crypto 2015-11-25 19:18:04 +01:00
common_linuxapp aesni_mb: add driver for multi buffer based crypto 2015-11-25 19:18:04 +01:00
defconfig_arm64-armv8a-linuxapp-gcc mk: introduce ARMv8 architecture 2015-11-18 22:44:01 +01:00
defconfig_arm64-thunderx-linuxapp-gcc mk: add thunderx machine target based on armv8-a 2015-11-18 22:44:01 +01:00
defconfig_arm-armv7a-linuxapp-gcc mk: introduce ARMv7 architecture 2015-11-18 22:41:33 +01:00
defconfig_i686-native-linuxapp-gcc config: cleanup duplicated comments 2014-07-19 01:54:35 +02:00
defconfig_i686-native-linuxapp-icc config: cleanup duplicated comments 2014-07-19 01:54:35 +02:00
defconfig_ppc_64-power8-linuxapp-gcc config: turn off fm10k driver on IBM POWER 2015-11-04 18:49:41 +01:00
defconfig_tile-tilegx-linuxapp-gcc config: disable KNI module on tile 2015-11-19 10:01:17 +01:00
defconfig_x86_64-ivshmem-linuxapp-gcc remove trailing whitespaces 2014-06-11 00:29:34 +02:00
defconfig_x86_64-ivshmem-linuxapp-icc remove trailing whitespaces 2014-06-11 00:29:34 +02:00
defconfig_x86_64-native-bsdapp-clang config: add clang 2014-07-19 01:54:35 +02:00
defconfig_x86_64-native-bsdapp-gcc config: cleanup duplicated comments 2014-07-19 01:54:35 +02:00
defconfig_x86_64-native-linuxapp-clang mem: support layout of IBM Power 2014-11-26 21:50:10 +01:00
defconfig_x86_64-native-linuxapp-gcc mem: support layout of IBM Power 2014-11-26 21:50:10 +01:00
defconfig_x86_64-native-linuxapp-icc mem: support layout of IBM Power 2014-11-26 21:50:10 +01:00
defconfig_x86_x32-native-linuxapp-gcc mk: support x32 ABI 2015-02-18 20:26:33 +01:00