crypto/mlx5: introduce Mellanox crypto driver
[dpdk.git] / doc / guides / cryptodevs / mlx5.rst
1 .. SPDX-License-Identifier: BSD-3-Clause
2    Copyright (c) 2021 NVIDIA Corporation & Affiliates
3
4 .. include:: <isonum.txt>
5
6 MLX5 Crypto Driver
7 ==================
8
9 The MLX5 crypto driver library
10 (**librte_crypto_mlx5**) provides support for **Mellanox ConnectX-6**
11 family adapters.
12
13 Overview
14 --------
15
16 The device can provide disk encryption services,
17 allowing data encryption and decryption towards a disk.
18 Having all encryption/decryption operations done in a single device
19 can reduce cost and overheads of the related FIPS certification,
20 as ConnectX-6 is FIPS 140-2 level-2 ready.
21 The encryption cipher is AES-XTS of 256/512 bit key size.
22
23 MKEY is a memory region object in the hardware,
24 that holds address translation information and attributes per memory area.
25 Its ID must be tied to addresses provided to the hardware.
26 The encryption operations are performed with MKEY read/write transactions,
27 when the MKEY is configured to perform crypto operations.
28
29 The encryption does not require text to be aligned to the AES block size (128b).
30
31 The PMD uses ``libibverbs`` and ``libmlx5`` to access the device firmware
32 or to access the hardware components directly.
33 There are different levels of objects and bypassing abilities.
34 To get the best performances:
35
36 - Verbs is a complete high-level generic API.
37 - Direct Verbs is a device-specific API.
38 - DevX allows to access firmware objects.
39
40 Enabling ``librte_crypto_mlx5`` causes DPDK applications
41 to be linked against libibverbs.
42
43
44 Driver options
45 --------------
46
47 - ``class`` parameter [string]
48
49   Select the class of the driver that should probe the device.
50   `crypto` for the mlx5 crypto driver.
51
52
53 Supported NICs
54 --------------
55
56 * Mellanox\ |reg| ConnectX\ |reg|-6 200G MCX654106A-HCAT (2x200G)
57
58 Prerequisites
59 -------------
60
61 - Mellanox OFED version: **5.3**
62   see :doc:`../../nics/mlx5` guide for more Mellanox OFED details.
63
64 - Compilation can be done also with rdma-core v15+.
65   see :doc:`../../nics/mlx5` guide for more rdma-core details.