This patch adds symmetric crypto data-path APIs for QAT PMD. QAT 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 QAT as symmetric crypto data-path accelerator but with their own data structures. With the APIs the cycle cost spent on conversion from their data structure to DPDK cryptodev operations can be reduced, and the dependency to DPDK crypto operation mempool can be reliefed.
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> v2: - Used a structure to simplify parameters. - Added unit tests. - Added documentation. Fan Zhang (3): crypto/qat: add data-path APIs test/crypto: add unit-test for QAT direct APIs doc: add QAT direct APIs guide app/test/Makefile | 4 + app/test/meson.build | 1 + app/test/test_cryptodev.c | 371 +++++++++- app/test/test_cryptodev.h | 6 + app/test/test_cryptodev_blockcipher.c | 50 +- doc/guides/prog_guide/cryptodev_lib.rst | 272 +++++++ drivers/common/qat/Makefile | 8 +- drivers/common/qat/qat_qp.c | 4 +- drivers/common/qat/qat_qp.h | 3 + drivers/compress/qat/rte_pmd_qat_version.map | 11 + drivers/crypto/qat/meson.build | 5 + drivers/crypto/qat/qat_sym.c | 1 - drivers/crypto/qat/qat_sym_frame.c | 701 +++++++++++++++++++ drivers/crypto/qat/qat_sym_frame.h | 242 +++++++ 14 files changed, 1636 insertions(+), 43 deletions(-) create mode 100644 drivers/crypto/qat/qat_sym_frame.c create mode 100644 drivers/crypto/qat/qat_sym_frame.h -- 2.20.1