qat: add driver for QuickAssist devices
authorDeclan Doherty <declan.doherty@intel.com>
Wed, 25 Nov 2015 13:25:14 +0000 (13:25 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 25 Nov 2015 18:18:04 +0000 (19:18 +0100)
commit1703e94ac5cee1014dcf4d6d9e72547a1e5aecaa
tree7c956c9ae7f56a26b4934b163ebb97f00eaf60ee
parent78c8709b5ddb3c683285218490a5a7c9334358ff
qat: add driver for QuickAssist devices

This patch adds a PMD for the Intel Quick Assist Technology DH895xxC
hardware accelerator.

This patch depends on a QAT PF driver for device initialization. See
the file docs/guides/cryptodevs/qat.rst for configuration details

This patch supports a limited subset of QAT device functionality,
currently supporting chaining of cipher and hash operations for the
following algorithmsd:

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

Hash algorithms:
  - RTE_CRYPTO_AUTH_SHA1_HMAC
  - RTE_CRYPTO_AUTH_SHA256_HMAC
  - RTE_CRYPTO_AUTH_SHA512_HMAC
  - RTE_CRYPTO_AUTH_AES_XCBC_MAC

Some limitation on this patchset which shall be contributed in a
subsequent release:
 - Chained mbufs are not supported.
 - Hash only is not supported.
 - Cipher only is not supported.
 - Only in-place is currently supported (destination address is
   the same as source address).
 - Only supports session-oriented API implementation (session-less
   APIs are not supported).

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: John Griffin <john.griffin@intel.com>
Signed-off-by: Des O Dea <des.j.o.dea@intel.com>
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
22 files changed:
MAINTAINERS
config/common_bsdapp
config/common_linuxapp
doc/guides/cryptodevs/index.rst [new file with mode: 0644]
doc/guides/cryptodevs/qat.rst [new file with mode: 0644]
doc/guides/index.rst
drivers/Makefile
drivers/crypto/Makefile [new file with mode: 0644]
drivers/crypto/qat/Makefile [new file with mode: 0644]
drivers/crypto/qat/qat_adf/adf_transport_access_macros.h [new file with mode: 0644]
drivers/crypto/qat/qat_adf/icp_qat_fw.h [new file with mode: 0644]
drivers/crypto/qat/qat_adf/icp_qat_fw_la.h [new file with mode: 0644]
drivers/crypto/qat/qat_adf/icp_qat_hw.h [new file with mode: 0644]
drivers/crypto/qat/qat_adf/qat_algs.h [new file with mode: 0644]
drivers/crypto/qat/qat_adf/qat_algs_build_desc.c [new file with mode: 0644]
drivers/crypto/qat/qat_crypto.c [new file with mode: 0644]
drivers/crypto/qat/qat_crypto.h [new file with mode: 0644]
drivers/crypto/qat/qat_logs.h [new file with mode: 0644]
drivers/crypto/qat/qat_qp.c [new file with mode: 0644]
drivers/crypto/qat/rte_pmd_qat_version.map [new file with mode: 0644]
drivers/crypto/qat/rte_qat_cryptodev.c [new file with mode: 0644]
mk/rte.app.mk