From 2a1e2da1bb34c7cc0145fdd8940047ae325277bc Mon Sep 17 00:00:00 2001 From: Marko Kovacevic Date: Tue, 27 Mar 2018 13:14:29 +0100 Subject: [PATCH] crypto/aesni_mb: support IPsec Multi-buffer lib v0.49 Adds support for the v0.49 of the IPsec Multi-buffer lib, which now gets compiled and installed as a shared object. Therefore, there is no need to pass the AESNI_MULTI_BUFFER_LIB_PATH Signed-off-by: Marko Kovacevic Acked-by: Pablo de Lara --- devtools/test-build.sh | 4 +++- doc/guides/cryptodevs/aesni_mb.rst | 13 ++++++------- drivers/crypto/aesni_mb/Makefile | 10 +--------- drivers/crypto/aesni_mb/aesni_mb_ops.h | 3 +-- drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 12 ++++++------ mk/rte.app.mk | 2 +- 6 files changed, 18 insertions(+), 26 deletions(-) diff --git a/devtools/test-build.sh b/devtools/test-build.sh index 28e0324171..11357c7d4e 100755 --- a/devtools/test-build.sh +++ b/devtools/test-build.sh @@ -43,6 +43,7 @@ default_path=$PATH # - DPDK_DEP_NUMA ([y]/n) # - DPDK_DEP_PCAP (y/[n]) # - DPDK_DEP_SSL (y/[n]) +# - DPDK_DEP_IPSEC_MB (y/[n]) # - DPDK_DEP_SZE (y/[n]) # - DPDK_DEP_ZLIB (y/[n]) # - DPDK_MAKE_JOBS (int) @@ -127,6 +128,7 @@ reset_env () unset DPDK_DEP_NUMA unset DPDK_DEP_PCAP unset DPDK_DEP_SSL + unset DPDK_DEP_IPSEC_MB unset DPDK_DEP_SZE unset DPDK_DEP_ZLIB unset AESNI_MULTI_BUFFER_LIB_PATH @@ -182,7 +184,7 @@ config () # sed -ri 's,(PCAP=)n,\1y,' $1/.config test -z "$ARMV8_CRYPTO_LIB_PATH" || \ sed -ri 's,(PMD_ARMV8_CRYPTO=)n,\1y,' $1/.config - test -z "$AESNI_MULTI_BUFFER_LIB_PATH" || \ + test "$DPDK_DEP_IPSEC_MB" != y || \ sed -ri 's,(PMD_AESNI_MB=)n,\1y,' $1/.config test -z "$AESNI_MULTI_BUFFER_LIB_PATH" || \ sed -ri 's,(PMD_AESNI_GCM=)n,\1y,' $1/.config diff --git a/doc/guides/cryptodevs/aesni_mb.rst b/doc/guides/cryptodevs/aesni_mb.rst index 3950daae08..1680c4aa14 100644 --- a/doc/guides/cryptodevs/aesni_mb.rst +++ b/doc/guides/cryptodevs/aesni_mb.rst @@ -56,12 +56,13 @@ Installation To build DPDK with the AESNI_MB_PMD the user is required to download the multi-buffer library from `here `_ and compile it on their user system before building DPDK. -The latest version of the library supported by this PMD is v0.48, which -can be downloaded from ``_. +The latest version of the library supported by this PMD is v0.49, which +can be downloaded from ``_. .. code-block:: console - make + make + make install As a reference, the following table shows a mapping between the past DPDK versions and the Multi-Buffer library version supported by them: @@ -77,7 +78,8 @@ and the Multi-Buffer library version supported by them: 17.02 0.44 17.05 - 17.08 0.45 - 0.48 17.11 0.47 - 0.48 - 18.02+ 0.48 + 18.02 0.48 + 18.05 0.49 ============== ============================ @@ -86,9 +88,6 @@ Initialization In order to enable this virtual crypto PMD, user must: -* Export the environmental variable AESNI_MULTI_BUFFER_LIB_PATH with the path where - the library was extracted. - * Build the multi buffer library (explained in Installation section). * Set CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y in config/common_base. diff --git a/drivers/crypto/aesni_mb/Makefile b/drivers/crypto/aesni_mb/Makefile index d9f8fb9830..806a95eb8f 100644 --- a/drivers/crypto/aesni_mb/Makefile +++ b/drivers/crypto/aesni_mb/Makefile @@ -3,12 +3,6 @@ include $(RTE_SDK)/mk/rte.vars.mk -ifneq ($(MAKECMDGOALS),clean) -ifeq ($(AESNI_MULTI_BUFFER_LIB_PATH),) -$(error "Please define AESNI_MULTI_BUFFER_LIB_PATH environment variable") -endif -endif - # library name LIB = librte_pmd_aesni_mb.a @@ -23,9 +17,7 @@ LIBABIVER := 1 EXPORT_MAP := rte_pmd_aesni_mb_version.map # external library dependencies -CFLAGS += -I$(AESNI_MULTI_BUFFER_LIB_PATH) -CFLAGS += -I$(AESNI_MULTI_BUFFER_LIB_PATH)/include -LDLIBS += -L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB +LDLIBS += -lIPSec_MB LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring LDLIBS += -lrte_cryptodev LDLIBS += -lrte_bus_vdev diff --git a/drivers/crypto/aesni_mb/aesni_mb_ops.h b/drivers/crypto/aesni_mb/aesni_mb_ops.h index 4d596e85ab..56fd829957 100644 --- a/drivers/crypto/aesni_mb/aesni_mb_ops.h +++ b/drivers/crypto/aesni_mb/aesni_mb_ops.h @@ -9,8 +9,7 @@ #define LINUX #endif -#include -#include +#include enum aesni_mb_vector_mode { RTE_AESNI_MB_NOT_SUPPORTED = 0, diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c index cb97175cc2..6f06ec4291 100644 --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c @@ -2,7 +2,7 @@ * Copyright(c) 2015-2017 Intel Corporation */ -#include +#include #include #include @@ -517,15 +517,15 @@ set_mb_job_params(JOB_AES_HMAC *job, struct aesni_mb_qp *qp, /* Set authentication parameters */ job->hash_alg = session->auth.algo; if (job->hash_alg == AES_XCBC) { - job->_k1_expanded = session->auth.xcbc.k1_expanded; - job->_k2 = session->auth.xcbc.k2; - job->_k3 = session->auth.xcbc.k3; + job->u.XCBC._k1_expanded = session->auth.xcbc.k1_expanded; + job->u.XCBC._k2 = session->auth.xcbc.k2; + job->u.XCBC._k3 = session->auth.xcbc.k3; } else if (job->hash_alg == AES_CCM) { job->u.CCM.aad = op->sym->aead.aad.data + 18; job->u.CCM.aad_len_in_bytes = session->aead.aad_len; } else { - job->hashed_auth_key_xor_ipad = session->auth.pads.inner; - job->hashed_auth_key_xor_opad = session->auth.pads.outer; + job->u.HMAC._hashed_auth_key_xor_ipad = session->auth.pads.inner; + job->u.HMAC._hashed_auth_key_xor_opad = session->auth.pads.outer; } /* Mutable crypto operation parameters */ diff --git a/mk/rte.app.mk b/mk/rte.app.mk index 8bab901fcf..f3900478d5 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -203,7 +203,7 @@ endif # CONFIG_RTE_LIBRTE_BBDEV ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y) _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lrte_pmd_aesni_mb -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += -lIPSec_MB _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += -lrte_pmd_aesni_gcm _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_GCM) += -L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_OPENSSL) += -lrte_pmd_openssl -lcrypto -- 2.20.1