1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright(c) 2017 Cavium, Inc 3 4ARMv8 Crypto Poll Mode Driver 5============================= 6 7This code provides the initial implementation of the ARMv8 crypto PMD. 8The driver uses ARMv8 cryptographic extensions to process chained crypto 9operations in an optimized way. The core functionality is provided by 10a low-level library, written in the assembly code. 11 12Features 13-------- 14 15ARMv8 Crypto PMD has support for the following algorithm pairs: 16 17Supported cipher algorithms: 18 19* ``RTE_CRYPTO_CIPHER_AES_CBC`` 20 21Supported authentication algorithms: 22 23* ``RTE_CRYPTO_AUTH_SHA1_HMAC`` 24* ``RTE_CRYPTO_AUTH_SHA256_HMAC`` 25 26Installation 27------------ 28 29To build DPDK with this virtual crypto PMD, the user is required to: 30 31* Download AArch64 crypto library source code from 32 `here <https://github.com/ARM-software/AArch64cryptolib>`_. 33 34* Build the ``AArch64cryptolib`` library: 35 36.. code-block:: console 37 38 make 39 40* Add path to `libAArch64crypto.pc` in `PKG_CONFIG_PATH` environment variable: 41 42.. code-block:: console 43 44 export PKG_CONFIG_PATH=<path_to_AArch64cryptolib>/pkgconfig/:$PKG_CONFIG_PATH 45 46* Build DPDK: 47 48.. code-block:: console 49 50 meson setup build 51 ninja -C build 52 53The corresponding device can be created only if the following features 54are supported by the CPU: 55 56* ``RTE_CPUFLAG_AES`` 57* ``RTE_CPUFLAG_SHA1`` 58* ``RTE_CPUFLAG_SHA2`` 59* ``RTE_CPUFLAG_NEON`` 60 61Initialization 62-------------- 63 64Use ``--vdev "crypto_armv8"`` in the EAL options to create virtual crypto device. 65 66User can use app/test application to check how to use this PMD and to verify 67crypto processing. 68 69Test name is cryptodev_sw_armv8_autotest. 70 71Limitations 72----------- 73 74* Maximum number of sessions is 2048. 75* Only chained operations are supported. 76* AES-128-CBC is the only supported cipher variant. 77* Cipher input data has to be a multiple of 16 bytes. 78* Digest input data has to be a multiple of 8 bytes. 79