[dpdk-dev] [PATCH v3] crypto/aesni_gcm: migration from MB library to ISA-L
Thomas Monjalon
thomas.monjalon at 6wind.com
Tue Jan 3 15:14:46 CET 2017
2017-01-03 14:02, Piotr Azarewicz:
> Current Cryptodev AES-NI GCM PMD is implemented using Multi Buffer
> Crypto library.This patch reimplement the device using ISA-L Crypto
> library: https://github.com/01org/isa-l_crypto.
>
> The migration entailed the following additional support for:
> * GMAC algorithm.
> * 256-bit cipher key.
> * Session-less mode.
> * Out-of place processing
> * Scatter-gatter support for chained mbufs (only out-of place and
> destination mbuf must be contiguous)
>
> Verified current unit tests and added new unit tests to verify new
> functionalities.
>
> Signed-off-by: Piotr Azarewicz <piotrx.t.azarewicz at intel.com>
[...]
> The AES-NI GCM PMD (**librte_pmd_aesni_gcm**) provides poll mode crypto driver
> -support for utilizing Intel multi buffer library (see AES-NI Multi-buffer PMD documentation
> -to learn more about it, including installation).
> -
> -The AES-NI GCM PMD has current only been tested on Fedora 21 64-bit with gcc.
> +support for utilizing Intel ISA-L crypto library, which provides operation acceleration
> +through the AES-NI instruction sets for AES-GCM authenticated cipher algorithm.
Please could you compare these libraries regarding the performance?
[...]
> Features
> --------
> @@ -49,16 +47,21 @@ Cipher algorithms:
> Authentication algorithms:
>
> * RTE_CRYPTO_AUTH_AES_GCM
> +* RTE_CRYPTO_AUTH_AES_GMAC
> +
> +Installation
> +------------
> +
> +To build DPDK with the AESNI_GCM_PMD the user is required to install
> +the ``libisal_crypto`` library in the build environment.
> +For download and more details please visit `<https://github.com/01org/isa-l_crypto>`_.
[...]
> Limitations
> -----------
>
> -* Chained mbufs are not supported.
> +* Chained mbufs are supported but only out-of-place (destination mbuf must be contiguous).
> * Hash only is not supported.
> * Cipher only is not supported.
> -* Only in-place is currently supported (destination address is the same as source address).
> -* Only supports session-oriented API implementation (session-less APIs are not supported).
> * Not performance tuned.
[...]
> --- a/drivers/crypto/aesni_gcm/Makefile
> +++ b/drivers/crypto/aesni_gcm/Makefile
> @@ -31,9 +31,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
> @@ -50,10 +47,7 @@ LIBABIVER := 1
> EXPORT_MAP := rte_pmd_aesni_gcm_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 += -lcrypto
> +LDLIBS += -lisal_crypto
You need to update the script test-build.sh.
Thanks
More information about the dev
mailing list