From 7a34c21557164e2a9d2bb6915281dff12a3f4741 Mon Sep 17 00:00:00 2001 From: Fiona Trahe Date: Fri, 13 Jul 2018 03:28:11 +0100 Subject: [PATCH] compress/qat: add empty driver Add Makefiles, meson files, and empty source files for compression PMD. Handle cases for building either symmetric crypto PMD or compression PMD or both and the common files both depend on. Signed-off-by: Fiona Trahe Signed-off-by: Tomasz Jozwiak --- MAINTAINERS | 5 ++ config/common_base | 3 +- drivers/common/qat/Makefile | 60 +++++++++++++------- drivers/compress/meson.build | 2 +- drivers/compress/qat/meson.build | 18 ++++++ drivers/compress/qat/qat_comp.c | 5 ++ drivers/compress/qat/qat_comp.h | 14 +++++ drivers/compress/qat/qat_comp_pmd.c | 5 ++ drivers/compress/qat/qat_comp_pmd.h | 14 +++++ drivers/compress/qat/rte_pmd_qat_version.map | 3 + drivers/crypto/qat/meson.build | 14 ++--- drivers/crypto/qat/rte_pmd_qat_version.map | 3 - mk/rte.app.mk | 8 ++- test/test/test_cryptodev.c | 6 +- 14 files changed, 119 insertions(+), 41 deletions(-) create mode 100644 drivers/compress/qat/meson.build create mode 100644 drivers/compress/qat/qat_comp.c create mode 100644 drivers/compress/qat/qat_comp.h create mode 100644 drivers/compress/qat/qat_comp_pmd.c create mode 100644 drivers/compress/qat/qat_comp_pmd.h create mode 100644 drivers/compress/qat/rte_pmd_qat_version.map delete mode 100644 drivers/crypto/qat/rte_pmd_qat_version.map diff --git a/MAINTAINERS b/MAINTAINERS index 227e32caa3..31b7fea85c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -861,6 +861,11 @@ Compression Drivers M: Pablo de Lara T: git://dpdk.org/next/dpdk-next-crypto +Intel QuickAssist +M: Fiona Trahe +F: drivers/compress/qat/ +F: drivers/common/qat/ + ISA-L M: Lee Daly F: drivers/compress/isal/ diff --git a/config/common_base b/config/common_base index 201cdf698f..db6d39fcbf 100644 --- a/config/common_base +++ b/config/common_base @@ -493,7 +493,8 @@ CONFIG_RTE_LIBRTE_DPAA_MAX_CRYPTODEV=4 # # Compile PMD for QuickAssist based devices # -CONFIG_RTE_LIBRTE_PMD_QAT=n +CONFIG_RTE_LIBRTE_PMD_QAT=y +CONFIG_RTE_LIBRTE_PMD_QAT_SYM=n # # Max. number of QuickAssist devices, which can be detected and attached # diff --git a/drivers/common/qat/Makefile b/drivers/common/qat/Makefile index 02e83f9f06..c68a032a52 100644 --- a/drivers/common/qat/Makefile +++ b/drivers/common/qat/Makefile @@ -3,48 +3,64 @@ include $(RTE_SDK)/mk/rte.vars.mk -# library name -LIB = librte_pmd_qat.a - -# library version -LIBABIVER := 1 - -# build flags -CFLAGS += $(WERROR_FLAGS) -CFLAGS += -O3 - # build directories QAT_CRYPTO_DIR := $(RTE_SDK)/drivers/crypto/qat -VPATH=$(QAT_CRYPTO_DIR) +QAT_COMPRESS_DIR := $(RTE_SDK)/drivers/compress/qat +VPATH=$(QAT_CRYPTO_DIR):$(QAT_COMPRESS_DIR) # external library include paths CFLAGS += -I$(SRCDIR)/qat_adf CFLAGS += -I$(SRCDIR) CFLAGS += -I$(QAT_CRYPTO_DIR) +CFLAGS += -I$(QAT_COMPRESS_DIR) -# library common source files -SRCS-y += qat_device.c -SRCS-y += qat_common.c -SRCS-y += qat_logs.c -SRCS-y += qat_qp.c + +ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y) + CFLAGS += -DALLOW_EXPERIMENTAL_API + LDLIBS += -lrte_compressdev + SRCS-y += qat_comp.c + SRCS-y += qat_comp_pmd.c + build_qat = yes +endif # library symmetric crypto source files ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y) +ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT_SYM),y) LDLIBS += -lrte_cryptodev LDLIBS += -lcrypto CFLAGS += -DBUILD_QAT_SYM SRCS-y += qat_sym.c SRCS-y += qat_sym_session.c SRCS-y += qat_sym_pmd.c + build_qat = yes +endif endif -LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -LDLIBS += -lrte_pci -lrte_bus_pci +ifdef build_qat -# export include files -SYMLINK-y-include += + # library name + LIB = librte_pmd_qat.a -# versioning export map -EXPORT_MAP := ../../crypto/qat/rte_pmd_qat_version.map + # library version + LIBABIVER := 1 + # build flags + CFLAGS += $(WERROR_FLAGS) + CFLAGS += -O3 + + # library common source files + SRCS-y += qat_device.c + SRCS-y += qat_common.c + SRCS-y += qat_logs.c + SRCS-y += qat_qp.c + + LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool + LDLIBS += -lrte_pci -lrte_bus_pci + + # export include files + SYMLINK-y-include += + + # versioning export map + EXPORT_MAP := ../../compress/qat/rte_pmd_qat_version.map +endif include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/compress/meson.build b/drivers/compress/meson.build index fb136e1b28..2352ad5bc0 100644 --- a/drivers/compress/meson.build +++ b/drivers/compress/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -drivers = ['isal'] +drivers = ['isal', 'qat'] std_deps = ['compressdev'] # compressdev pulls in all other needed deps config_flag_fmt = 'RTE_LIBRTE_@0@_PMD' diff --git a/drivers/compress/qat/meson.build b/drivers/compress/qat/meson.build new file mode 100644 index 0000000000..9d15076dc6 --- /dev/null +++ b/drivers/compress/qat/meson.build @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2017-2018 Intel Corporation + + +# Add our sources files to the list +allow_experimental_apis = true +qat_sources += files('qat_comp_pmd.c', + 'qat_comp.c') +qat_includes += include_directories('.') +qat_deps += 'compressdev' +qat_ext_deps += dep + +# build the whole driver +sources += qat_sources +cflags += qat_cflags +deps += qat_deps +ext_deps += qat_ext_deps +includes += qat_includes diff --git a/drivers/compress/qat/qat_comp.c b/drivers/compress/qat/qat_comp.c new file mode 100644 index 0000000000..caa115806c --- /dev/null +++ b/drivers/compress/qat/qat_comp.c @@ -0,0 +1,5 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Intel Corporation + */ + +#include "qat_comp.h" diff --git a/drivers/compress/qat/qat_comp.h b/drivers/compress/qat/qat_comp.h new file mode 100644 index 0000000000..89c475ee6d --- /dev/null +++ b/drivers/compress/qat/qat_comp.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2015-2018 Intel Corporation + */ + +#ifndef _QAT_COMP_H_ +#define _QAT_COMP_H_ + +#ifdef RTE_LIBRTE_COMPRESSDEV + +#include +#include + +#endif +#endif diff --git a/drivers/compress/qat/qat_comp_pmd.c b/drivers/compress/qat/qat_comp_pmd.c new file mode 100644 index 0000000000..fb035d1ee4 --- /dev/null +++ b/drivers/compress/qat/qat_comp_pmd.c @@ -0,0 +1,5 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2015-2018 Intel Corporation + */ + +#include "qat_comp_pmd.h" diff --git a/drivers/compress/qat/qat_comp_pmd.h b/drivers/compress/qat/qat_comp_pmd.h new file mode 100644 index 0000000000..56b5f1816b --- /dev/null +++ b/drivers/compress/qat/qat_comp_pmd.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2015-2018 Intel Corporation + */ + +#ifndef _QAT_COMP_PMD_H_ +#define _QAT_COMP_PMD_H_ + +#ifdef RTE_LIBRTE_COMPRESSDEV + +#include +#include + +#endif +#endif /* _QAT_COMP_PMD_H_ */ diff --git a/drivers/compress/qat/rte_pmd_qat_version.map b/drivers/compress/qat/rte_pmd_qat_version.map new file mode 100644 index 0000000000..ad6e191e49 --- /dev/null +++ b/drivers/compress/qat/rte_pmd_qat_version.map @@ -0,0 +1,3 @@ +DPDK_18.08 { + local: *; +}; diff --git a/drivers/crypto/qat/meson.build b/drivers/crypto/qat/meson.build index 2873637def..9cc98d2c27 100644 --- a/drivers/crypto/qat/meson.build +++ b/drivers/crypto/qat/meson.build @@ -1,24 +1,18 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017-2018 Intel Corporation +# this does not build the QAT driver, instead that is done in the compression +# driver which comes later. Here we just add our sources files to the list build = false dep = dependency('libcrypto', required: false) +qat_includes += include_directories('.') +qat_deps += 'cryptodev' if dep.found() # Add our sources files to the list qat_sources += files('qat_sym_pmd.c', 'qat_sym.c', 'qat_sym_session.c') - qat_includes += include_directories('.') - qat_deps += 'cryptodev' qat_ext_deps += dep pkgconfig_extra_libs += '-lcrypto' qat_cflags += '-DBUILD_QAT_SYM' - - # build the whole driver - sources += qat_sources - cflags += qat_cflags - deps += qat_deps - ext_deps += qat_ext_deps - includes += qat_includes - build = true endif diff --git a/drivers/crypto/qat/rte_pmd_qat_version.map b/drivers/crypto/qat/rte_pmd_qat_version.map deleted file mode 100644 index bbaf1c8500..0000000000 --- a/drivers/crypto/qat/rte_pmd_qat_version.map +++ /dev/null @@ -1,3 +0,0 @@ -DPDK_2.2 { - local: *; -}; \ No newline at end of file diff --git a/mk/rte.app.mk b/mk/rte.app.mk index d21fb5719c..1590838abd 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -199,7 +199,9 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += -lIPSec_MB _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_CCP) += -lrte_pmd_ccp -lcrypto _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += -lrte_pmd_openssl -lcrypto _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += -lrte_pmd_null_crypto -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += -lrte_pmd_qat -lcrypto +ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT),y) +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT_SYM) += -lrte_pmd_qat -lcrypto +endif # CONFIG_RTE_LIBRTE_PMD_QAT _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += -lrte_pmd_snow3g _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += -L$(LIBSSO_SNOW3G_PATH)/build -lsso_snow3g _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += -lrte_pmd_kasumi @@ -222,6 +224,10 @@ endif # CONFIG_RTE_LIBRTE_CRYPTODEV ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y) _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += -lrte_pmd_isal_comp _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_ISAL) += -lisal +# Link QAT driver if it has not been linked yet +ifeq ($(CONFIG_RTE_LIBRTE_PMD_QAT_SYM),n) +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += -lrte_pmd_qat +endif # CONFIG_RTE_LIBRTE_PMD_QAT_SYM endif # CONFIG_RTE_LIBRTE_COMPRESSDEV ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y) diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c index b759e08119..cbbdb15185 100644 --- a/test/test/test_cryptodev.c +++ b/test/test/test_cryptodev.c @@ -9938,9 +9938,9 @@ test_cryptodev_qat(void /*argv __rte_unused, int argc __rte_unused*/) RTE_STR(CRYPTODEV_NAME_QAT_SYM_PMD)); if (gbl_driver_id == -1) { - RTE_LOG(ERR, USER1, "QAT PMD must be loaded. Check if " - "CONFIG_RTE_LIBRTE_PMD_QAT is enabled " - "in config file to run this testsuite.\n"); + RTE_LOG(ERR, USER1, "QAT PMD must be loaded. Check that both " + "CONFIG_RTE_LIBRTE_PMD_QAT and CONFIG_RTE_LIBRTE_PMD_QAT_SYM " + "are enabled in config file to run this testsuite.\n"); return TEST_SKIPPED; } -- 2.20.1