doc: add mlx5 design details

Some details about libibverbs were missing:
- automatic detection by meson
- main ways to access the device

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Raslan Darawsheh <rasland@mellanox.com>
This commit is contained in:
Thomas Monjalon 2019-08-05 17:32:21 +02:00 committed by Raslan Darawsheh
parent 499b461f90
commit bdc3a54225

View File

@ -20,12 +20,12 @@ There is also a `section dedicated to this poll mode driver
.. note::
Due to external dependencies, this driver is disabled by default. It must
be enabled manually by setting ``CONFIG_RTE_LIBRTE_MLX5_PMD=y`` and
recompiling DPDK.
Due to external dependencies, this driver is disabled in default configuration
of the "make" build. It can be enabled with ``CONFIG_RTE_LIBRTE_MLX5_PMD=y``
or by using "meson" build system which will detect dependencies.
Implementation details
----------------------
Design
------
Besides its dependency on libibverbs (that implies libmlx5 and associated
kernel support), librte_pmd_mlx5 relies heavily on system calls for control
@ -44,6 +44,16 @@ This means legacy linux control tools (for example: ethtool, ifconfig and
more) can operate on the same network interfaces that owned by the DPDK
application.
The PMD can use libibverbs and libmlx5 to access the device firmware
or directly the hardware components.
There are different levels of objects and bypassing abilities
to get the best performances:
- Verbs is a complete high-level generic API
- Direct Verbs is a device-specific API
- DevX allows to access firmware objects
- Direct Rules manages flow steering at low-level hardware layer
Enabling librte_pmd_mlx5 causes DPDK applications to be linked against
libibverbs.