]> git.proxmox.com Git - ceph.git/blame - ceph/src/spdk/dpdk/doc/guides/cryptodevs/armv8.rst
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / dpdk / doc / guides / cryptodevs / armv8.rst
CommitLineData
11fdf7f2
TL
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
29In order to enable this virtual crypto PMD, user must:
30
f67539c2
TL
31* Download AArch64 crypto library source code from
32 `here <https://github.com/ARM-software/AArch64cryptolib>`_
11fdf7f2
TL
33
34* Export the environmental variable ARMV8_CRYPTO_LIB_PATH with
f67539c2 35 the path to ``AArch64cryptolib`` library.
11fdf7f2
TL
36
37* Build the library by invoking:
38
39.. code-block:: console
40
41 make -C $ARMV8_CRYPTO_LIB_PATH/
42
43* Set CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=y in
9f95a23c 44 config/defconfig_arm64-armv8a-linux-gcc
11fdf7f2
TL
45
46The corresponding device can be created only if the following features
47are supported by the CPU:
48
49* ``RTE_CPUFLAG_AES``
50* ``RTE_CPUFLAG_SHA1``
51* ``RTE_CPUFLAG_SHA2``
52* ``RTE_CPUFLAG_NEON``
53
54Initialization
55--------------
56
57User can use app/test application to check how to use this PMD and to verify
58crypto processing.
59
60Test name is cryptodev_sw_armv8_autotest.
11fdf7f2
TL
61
62Limitations
63-----------
64
65* Maximum number of sessions is 2048.
66* Only chained operations are supported.
67* AES-128-CBC is the only supported cipher variant.
68* Cipher input data has to be a multiple of 16 bytes.
69* Digest input data has to be a multiple of 8 bytes.