193 строки
6.6 KiB
ReStructuredText
193 строки
6.6 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
|
|
|
|
=================================================
|
|
Mellanox ConnectX(R) mlx5 core VPI Network Driver
|
|
=================================================
|
|
|
|
Copyright (c) 2019, Mellanox Technologies LTD.
|
|
|
|
Contents
|
|
========
|
|
|
|
- `Enabling the driver and kconfig options`_
|
|
- `Devlink info`_
|
|
- `Devlink health reporters`_
|
|
|
|
Enabling the driver and kconfig options
|
|
================================================
|
|
|
|
| mlx5 core is modular and most of the major mlx5 core driver features can be selected (compiled in/out)
|
|
| at build time via kernel Kconfig flags.
|
|
| Basic features, ethernet net device rx/tx offloads and XDP, are available with the most basic flags
|
|
| CONFIG_MLX5_CORE=y/m and CONFIG_MLX5_CORE_EN=y.
|
|
| For the list of advanced features please see below.
|
|
|
|
**CONFIG_MLX5_CORE=(y/m/n)** (module mlx5_core.ko)
|
|
|
|
| The driver can be enabled by choosing CONFIG_MLX5_CORE=y/m in kernel config.
|
|
| This will provide mlx5 core driver for mlx5 ulps to interface with (mlx5e, mlx5_ib).
|
|
|
|
|
|
**CONFIG_MLX5_CORE_EN=(y/n)**
|
|
|
|
| Choosing this option will allow basic ethernet netdevice support with all of the standard rx/tx offloads.
|
|
| mlx5e is the mlx5 ulp driver which provides netdevice kernel interface, when chosen, mlx5e will be
|
|
| built-in into mlx5_core.ko.
|
|
|
|
|
|
**CONFIG_MLX5_EN_ARFS=(y/n)**
|
|
|
|
| Enables Hardware-accelerated receive flow steering (arfs) support, and ntuple filtering.
|
|
| https://community.mellanox.com/s/article/howto-configure-arfs-on-connectx-4
|
|
|
|
|
|
**CONFIG_MLX5_EN_RXNFC=(y/n)**
|
|
|
|
| Enables ethtool receive network flow classification, which allows user defined
|
|
| flow rules to direct traffic into arbitrary rx queue via ethtool set/get_rxnfc API.
|
|
|
|
|
|
**CONFIG_MLX5_CORE_EN_DCB=(y/n)**:
|
|
|
|
| Enables `Data Center Bridging (DCB) Support <https://community.mellanox.com/s/article/howto-auto-config-pfc-and-ets-on-connectx-4-via-lldp-dcbx>`_.
|
|
|
|
|
|
**CONFIG_MLX5_MPFS=(y/n)**
|
|
|
|
| Ethernet Multi-Physical Function Switch (MPFS) support in ConnectX NIC.
|
|
| MPFs is required for when `Multi-Host <http://www.mellanox.com/page/multihost>`_ configuration is enabled to allow passing
|
|
| user configured unicast MAC addresses to the requesting PF.
|
|
|
|
|
|
**CONFIG_MLX5_ESWITCH=(y/n)**
|
|
|
|
| Ethernet SRIOV E-Switch support in ConnectX NIC. E-Switch provides internal SRIOV packet steering
|
|
| and switching for the enabled VFs and PF in two available modes:
|
|
| 1) `Legacy SRIOV mode (L2 mac vlan steering based) <https://community.mellanox.com/s/article/howto-configure-sr-iov-for-connectx-4-connectx-5-with-kvm--ethernet-x>`_.
|
|
| 2) `Switchdev mode (eswitch offloads) <https://www.mellanox.com/related-docs/prod_software/ASAP2_Hardware_Offloading_for_vSwitches_User_Manual_v4.4.pdf>`_.
|
|
|
|
|
|
**CONFIG_MLX5_CORE_IPOIB=(y/n)**
|
|
|
|
| IPoIB offloads & acceleration support.
|
|
| Requires CONFIG_MLX5_CORE_EN to provide an accelerated interface for the rdma
|
|
| IPoIB ulp netdevice.
|
|
|
|
|
|
**CONFIG_MLX5_FPGA=(y/n)**
|
|
|
|
| Build support for the Innova family of network cards by Mellanox Technologies.
|
|
| Innova network cards are comprised of a ConnectX chip and an FPGA chip on one board.
|
|
| If you select this option, the mlx5_core driver will include the Innova FPGA core and allow
|
|
| building sandbox-specific client drivers.
|
|
|
|
|
|
**CONFIG_MLX5_EN_IPSEC=(y/n)**
|
|
|
|
| Enables `IPSec XFRM cryptography-offload accelaration <http://www.mellanox.com/related-docs/prod_software/Mellanox_Innova_IPsec_Ethernet_Adapter_Card_User_Manual.pdf>`_.
|
|
|
|
**CONFIG_MLX5_EN_TLS=(y/n)**
|
|
|
|
| TLS cryptography-offload accelaration.
|
|
|
|
|
|
**CONFIG_MLX5_INFINIBAND=(y/n/m)** (module mlx5_ib.ko)
|
|
|
|
| Provides low-level InfiniBand/RDMA and `RoCE <https://community.mellanox.com/s/article/recommended-network-configuration-examples-for-roce-deployment>`_ support.
|
|
|
|
|
|
**External options** ( Choose if the corresponding mlx5 feature is required )
|
|
|
|
- CONFIG_PTP_1588_CLOCK: When chosen, mlx5 ptp support will be enabled
|
|
- CONFIG_VXLAN: When chosen, mlx5 vxaln support will be enabled.
|
|
- CONFIG_MLXFW: When chosen, mlx5 firmware flashing support will be enabled (via devlink and ethtool).
|
|
|
|
Devlink info
|
|
============
|
|
|
|
The devlink info reports the running and stored firmware versions on device.
|
|
It also prints the device PSID which represents the HCA board type ID.
|
|
|
|
User command example::
|
|
|
|
$ devlink dev info pci/0000:00:06.0
|
|
pci/0000:00:06.0:
|
|
driver mlx5_core
|
|
versions:
|
|
fixed:
|
|
fw.psid MT_0000000009
|
|
running:
|
|
fw.version 16.26.0100
|
|
stored:
|
|
fw.version 16.26.0100
|
|
|
|
Devlink health reporters
|
|
========================
|
|
|
|
tx reporter
|
|
-----------
|
|
The tx reporter is responsible of two error scenarios:
|
|
|
|
- TX timeout
|
|
Report on kernel tx timeout detection.
|
|
Recover by searching lost interrupts.
|
|
- TX error completion
|
|
Report on error tx completion.
|
|
Recover by flushing the TX queue and reset it.
|
|
|
|
TX reporter also support Diagnose callback, on which it provides
|
|
real time information of its send queues status.
|
|
|
|
User commands examples:
|
|
|
|
- Diagnose send queues status::
|
|
|
|
$ devlink health diagnose pci/0000:82:00.0 reporter tx
|
|
|
|
- Show number of tx errors indicated, number of recover flows ended successfully,
|
|
is autorecover enabled and graceful period from last recover::
|
|
|
|
$ devlink health show pci/0000:82:00.0 reporter tx
|
|
|
|
fw reporter
|
|
-----------
|
|
The fw reporter implements diagnose and dump callbacks.
|
|
It follows symptoms of fw error such as fw syndrome by triggering
|
|
fw core dump and storing it into the dump buffer.
|
|
The fw reporter diagnose command can be triggered any time by the user to check
|
|
current fw status.
|
|
|
|
User commands examples:
|
|
|
|
- Check fw heath status::
|
|
|
|
$ devlink health diagnose pci/0000:82:00.0 reporter fw
|
|
|
|
- Read FW core dump if already stored or trigger new one::
|
|
|
|
$ devlink health dump show pci/0000:82:00.0 reporter fw
|
|
|
|
NOTE: This command can run only on the PF which has fw tracer ownership,
|
|
running it on other PF or any VF will return "Operation not permitted".
|
|
|
|
fw fatal reporter
|
|
-----------------
|
|
The fw fatal reporter implements dump and recover callbacks.
|
|
It follows fatal errors indications by CR-space dump and recover flow.
|
|
The CR-space dump uses vsc interface which is valid even if the FW command
|
|
interface is not functional, which is the case in most FW fatal errors.
|
|
The recover function runs recover flow which reloads the driver and triggers fw
|
|
reset if needed.
|
|
|
|
User commands examples:
|
|
|
|
- Run fw recover flow manually::
|
|
|
|
$ devlink health recover pci/0000:82:00.0 reporter fw_fatal
|
|
|
|
- Read FW CR-space dump if already strored or trigger new one::
|
|
|
|
$ devlink health dump show pci/0000:82:00.1 reporter fw_fatal
|
|
|
|
NOTE: This command can run only on PF.
|