numam-dpdk/doc/guides/nics/mana.rst
Thomas Monjalon df1982df8b net/mana: fix dependencies
The reason for not building is updated
to be consistent with other drivers.

The libibverbs was not detected through pkg-config.
The method dependency() needs to be used first.

The support in rdma-core and Linux is not released yet,
so the documentation is updated.

Fixes: 517ed6e2d5 ("net/mana: add basic driver with build environment")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2022-10-11 01:34:07 +02:00

81 lines
2.5 KiB
ReStructuredText

.. SPDX-License-Identifier: BSD-3-Clause
Copyright 2022 Microsoft Corporation
MANA poll mode driver library
=============================
The MANA poll mode driver library (**librte_net_mana**) implements support
for Microsoft Azure Network Adapter VF in SR-IOV context.
Features
--------
Features of the MANA Ethdev PMD are:
Prerequisites
-------------
This driver relies on external libraries and kernel drivers
for resources allocations and initialization.
The following dependencies are not part of DPDK
and must be installed separately:
- **libibverbs** (provided by rdma-core package)
User space verbs framework used by librte_net_mana.
This library provides a generic interface between the kernel
and low-level user space drivers such as libmana.
It allows slow and privileged operations
(context initialization, hardware resources allocations)
to be managed by the kernel and fast operations to never leave user space.
In most cases, rdma-core is shipped as a package with an OS distribution.
User can also install the upstream version of the rdma-core from
https://github.com/linux-rdma/rdma-core.
- **libmana** (provided by rdma-core package)
Low-level user space driver library
for Microsoft Azure Network Adapter devices,
it is automatically loaded by libibverbs.
The support of MANA is not merged in rdma-core 42.
- **Kernel modules**
They provide the kernel-side verbs API and low level device drivers
that manage actual hardware initialization
and resources sharing with user space processes.
The minimum required Linux kernel version is 6.1.
Unlike most other PMDs, these modules must remain loaded
and bound to their devices:
- mana: Ethernet device driver that provides kernel network interfaces.
- mana_ib: InifiniBand device driver.
- ib_uverbs: user space driver for verbs (entry point for libibverbs).
The support of MANA is planned in Linux 6.2.
Driver compilation and testing
------------------------------
Refer to the document
:ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>` for details.
MANA PMD arguments
------------------
The user can specify below argument in devargs.
#. ``mac``:
Specify the MAC address for this device.
If it is set, the driver probes and loads the NIC
with a matching MAC address.
If it is not set, the driver probes on all the NICs on the PCI device.
The default value is not set,
meaning all the NICs will be probed and loaded.
User can specify multiple mac=xx:xx:xx:xx:xx:xx arguments for up to 8 NICs.