xref: /dpdk/doc/guides/nics/mana.rst (revision b583b9a1bb49e86aa0937d55415713282000c536)
1..  SPDX-License-Identifier: BSD-3-Clause
2    Copyright 2022 Microsoft Corporation
3
4MANA poll mode driver library
5=============================
6
7The MANA poll mode driver library (**librte_net_mana**) implements support
8for Microsoft Azure Network Adapter VF in SR-IOV context.
9
10Prerequisites
11-------------
12
13This driver relies on external libraries and kernel drivers
14for resources allocations and initialization.
15The following dependencies are not part of DPDK
16and must be installed separately:
17
18- **libibverbs** (provided by rdma-core package)
19
20  User space verbs framework used by librte_net_mana.
21  This library provides a generic interface between the kernel
22  and low-level user space drivers such as libmana.
23
24  It allows slow and privileged operations
25  (context initialization, hardware resources allocations)
26  to be managed by the kernel and fast operations to never leave user space.
27  The minimum required rdma-core version is v44.
28
29  In most cases, rdma-core is shipped as a package with an OS distribution.
30  User can also install the upstream version of the rdma-core from
31  https://github.com/linux-rdma/rdma-core.
32
33- **libmana** (provided by rdma-core package)
34
35  Low-level user space driver library
36  for Microsoft Azure Network Adapter devices,
37  it is automatically loaded by libibverbs.
38  The minimum required version of rdma-core with libmana is v44.
39
40- **Kernel modules**
41
42  They provide the kernel-side verbs API and low level device drivers
43  that manage actual hardware initialization
44  and resources sharing with user space processes.
45  The minimum required Linux kernel version is 6.2.
46
47  Unlike most other PMDs, these modules must remain loaded
48  and bound to their devices:
49
50  - mana: Ethernet device driver that provides kernel network interfaces.
51  - mana_ib: InifiniBand device driver.
52  - ib_uverbs: user space driver for verbs (entry point for libibverbs).
53
54Driver compilation and testing
55------------------------------
56
57Refer to the document
58:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>` for details.
59
60Runtime Configuration
61---------------------
62
63The user can specify below argument in devargs.
64
65#.  ``mac``:
66
67    Specify the MAC address for this device.
68    If it is set, the driver probes and loads the NIC
69    with a matching MAC address.
70    If it is not set, the driver probes on all the NICs on the PCI device.
71    The default value is not set,
72    meaning all the NICs will be probed and loaded.
73    User can specify multiple mac=xx:xx:xx:xx:xx:xx arguments for up to 8 NICs.
74