crypto/armv8: replace meson option with pkg-config support
[dpdk.git] / doc / guides / cryptodevs / armv8.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright(c) 2017 Cavium, Inc
3
4 ARMv8 Crypto Poll Mode Driver
5 =============================
6
7 This code provides the initial implementation of the ARMv8 crypto PMD.
8 The driver uses ARMv8 cryptographic extensions to process chained crypto
9 operations in an optimized way. The core functionality is provided by
10 a low-level library, written in the assembly code.
11
12 Features
13 --------
14
15 ARMv8 Crypto PMD has support for the following algorithm pairs:
16
17 Supported cipher algorithms:
18
19 * ``RTE_CRYPTO_CIPHER_AES_CBC``
20
21 Supported authentication algorithms:
22
23 * ``RTE_CRYPTO_AUTH_SHA1_HMAC``
24 * ``RTE_CRYPTO_AUTH_SHA256_HMAC``
25
26 Installation
27 ------------
28
29 To 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 build
51    ninja -C build
52
53 The corresponding device can be created only if the following features
54 are supported by the CPU:
55
56 * ``RTE_CPUFLAG_AES``
57 * ``RTE_CPUFLAG_SHA1``
58 * ``RTE_CPUFLAG_SHA2``
59 * ``RTE_CPUFLAG_NEON``
60
61 Initialization
62 --------------
63
64 Use ``--vdev "crypto_armv8"`` in the EAL options to create virtual crypto device.
65
66 User can use app/test application to check how to use this PMD and to verify
67 crypto processing.
68
69 Test name is cryptodev_sw_armv8_autotest.
70
71 Limitations
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.