This patch adds symmetric crypto data-path APIs for Cryptodev. Direct symmetric crypto data-path APIs are a set of APIs that provide more HW friendly enqueue/dequeue data-path functions as an alternative approach to ``rte_cryptodev_enqueue_burst`` and ``rte_cryptodev_dequeue_burst``. The APIs are designed for external libraries/applications that want to use Cryptodev as symmetric crypto data-path accelerator but not necessarily mbuf data-path centric. With the APIs the cycle cost spent on conversion from their data structure to DPDK cryptodev operations/mbufs can be reduced, and the dependency on DPDK crypto operation mempool can be relieved.
It is expected that the user can develop close-to-native performance symmetric crypto data-path implementations with the functions provided in this patchset. Signed-off-by: Fan Zhang <roy.fan.zh...@intel.com> Signed-off-by: Piotr Bronowski <piotrx.bronow...@intel.com> v5: - Changed to use rte_crypto_sym_vec as input. - Changed to use public APIs instead of use function pointer. v4: - Added missed patch. v3: - Instead of QAT only API, moved the API to cryptodev. - Added cryptodev feature flags. v2: - Used a structure to simplify parameters. - Added unit tests. - Added documentation. Fan Zhang (4): cryptodev: add data-path APIs crypto/qat: add support to direct data-path APIs test/crypto: add unit-test for cryptodev direct APIs doc: add cryptodev direct APIs guide app/test/test_cryptodev.c | 367 +++++++- app/test/test_cryptodev.h | 6 + app/test/test_cryptodev_blockcipher.c | 50 +- doc/guides/prog_guide/cryptodev_lib.rst | 53 ++ doc/guides/rel_notes/release_20_08.rst | 8 + drivers/common/qat/Makefile | 1 + drivers/common/qat/qat_qp.h | 1 + drivers/crypto/qat/meson.build | 1 + drivers/crypto/qat/qat_sym.h | 3 + drivers/crypto/qat/qat_sym_hw_dp.c | 850 ++++++++++++++++++ drivers/crypto/qat/qat_sym_pmd.c | 7 +- lib/librte_cryptodev/rte_crypto_sym.h | 27 +- lib/librte_cryptodev/rte_cryptodev.c | 118 +++ lib/librte_cryptodev/rte_cryptodev.h | 256 +++++- lib/librte_cryptodev/rte_cryptodev_pmd.h | 90 +- .../rte_cryptodev_version.map | 5 + 16 files changed, 1795 insertions(+), 48 deletions(-) create mode 100644 drivers/crypto/qat/qat_sym_hw_dp.c -- 2.20.1