From 1cdeb1c512067a0661f9c92b705d022adbc2b793 Mon Sep 17 00:00:00 2001 From: Pablo de Lara Date: Thu, 30 Mar 2017 16:04:18 +0100 Subject: [PATCH] crypto/aesni_mb: support IPSec Multi-buffer lib v0.45 IPSec Multi-buffer library v0.45 has been released, which includes, among other features, support for DOCSIS BPI specification and include AVX512 optimizations. This new version added const qualifiers to some of the function prototypes, so the PMD has been updated to include these changes. Signed-off-by: Pablo de Lara Acked-by: Declan Doherty --- doc/guides/cryptodevs/aesni_mb.rst | 20 ++++++++++++++++++-- drivers/crypto/aesni_mb/aesni_mb_ops.h | 20 ++++++++++---------- drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 4 ++-- 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/doc/guides/cryptodevs/aesni_mb.rst b/doc/guides/cryptodevs/aesni_mb.rst index a0d13ca382..f4c0b4821f 100644 --- a/doc/guides/cryptodevs/aesni_mb.rst +++ b/doc/guides/cryptodevs/aesni_mb.rst @@ -75,13 +75,29 @@ 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.44, which -can be downloaded in ``_. +The latest version of the library supported by this PMD is v0.45, which +can be downloaded in ``_. .. code-block:: console make +As a reference, the following table shows a mapping between the past DPDK versions +and the Multi-Buffer library version supported by them: + +.. _table_aesni_mb_versions: + +.. table:: DPDK and Multi-Buffer library version compatibility + + ============= ============================ + DPDK version Multi-buffer library version + ============= ============================ + 2.2 - 16.11 0.43 - 0.44 + 17.02 0.44 + 17.05 0.45 + ============= ============================ + + Initialization -------------- diff --git a/drivers/crypto/aesni_mb/aesni_mb_ops.h b/drivers/crypto/aesni_mb/aesni_mb_ops.h index 3307c0b195..59c3ee1e9e 100644 --- a/drivers/crypto/aesni_mb/aesni_mb_ops.h +++ b/drivers/crypto/aesni_mb/aesni_mb_ops.h @@ -48,23 +48,23 @@ enum aesni_mb_vector_mode { RTE_AESNI_MB_AVX512 }; -typedef void (*md5_one_block_t)(void *data, void *digest); +typedef void (*md5_one_block_t)(const void *data, void *digest); -typedef void (*sha1_one_block_t)(void *data, void *digest); -typedef void (*sha224_one_block_t)(void *data, void *digest); -typedef void (*sha256_one_block_t)(void *data, void *digest); -typedef void (*sha384_one_block_t)(void *data, void *digest); -typedef void (*sha512_one_block_t)(void *data, void *digest); +typedef void (*sha1_one_block_t)(const void *data, void *digest); +typedef void (*sha224_one_block_t)(const void *data, void *digest); +typedef void (*sha256_one_block_t)(const void *data, void *digest); +typedef void (*sha384_one_block_t)(const void *data, void *digest); +typedef void (*sha512_one_block_t)(const void *data, void *digest); typedef void (*aes_keyexp_128_t) - (void *key, void *enc_exp_keys, void *dec_exp_keys); + (const void *key, void *enc_exp_keys, void *dec_exp_keys); typedef void (*aes_keyexp_192_t) - (void *key, void *enc_exp_keys, void *dec_exp_keys); + (const void *key, void *enc_exp_keys, void *dec_exp_keys); typedef void (*aes_keyexp_256_t) - (void *key, void *enc_exp_keys, void *dec_exp_keys); + (const void *key, void *enc_exp_keys, void *dec_exp_keys); typedef void (*aes_xcbc_expand_key_t) - (void *key, void *exp_k1, void *k2, void *k3); + (const void *key, void *exp_k1, void *k2, void *k3); /** Multi-buffer library function pointer table */ struct aesni_mb_op_fns { diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c index 096a947d49..0fab81ef56 100644 --- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c +++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c @@ -40,8 +40,8 @@ #include "rte_aesni_mb_pmd_private.h" -typedef void (*hash_one_block_t)(void *data, void *digest); -typedef void (*aes_keyexp_t)(void *key, void *enc_exp_keys, void *dec_exp_keys); +typedef void (*hash_one_block_t)(const void *data, void *digest); +typedef void (*aes_keyexp_t)(const void *key, void *enc_exp_keys, void *dec_exp_keys); /** * Calculate the authentication pre-computes -- 2.20.1