df1982df8b
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>
81 lines
2.5 KiB
ReStructuredText
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.
|