]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
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 | In 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 | |
46 | The corresponding device can be created only if the following features | |
47 | are supported by the CPU: | |
48 | ||
49 | * ``RTE_CPUFLAG_AES`` | |
50 | * ``RTE_CPUFLAG_SHA1`` | |
51 | * ``RTE_CPUFLAG_SHA2`` | |
52 | * ``RTE_CPUFLAG_NEON`` | |
53 | ||
54 | Initialization | |
55 | -------------- | |
56 | ||
57 | User can use app/test application to check how to use this PMD and to verify | |
58 | crypto processing. | |
59 | ||
60 | Test name is cryptodev_sw_armv8_autotest. | |
11fdf7f2 TL |
61 | |
62 | Limitations | |
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. |