172 lines · plain
1.. SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB2.. include:: <isonum.txt>3 4=======================================5Enabling the driver and kconfig options6=======================================7 8:Copyright: |copy| 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.9 10| mlx5 core is modular and most of the major mlx5 core driver features can be selected (compiled in/out)11| at build time via kernel Kconfig flags.12| Basic features, ethernet net device rx/tx offloads and XDP, are available with the most basic flags13| CONFIG_MLX5_CORE=y/m and CONFIG_MLX5_CORE_EN=y.14| For the list of advanced features, please see below.15 16**CONFIG_MLX5_BRIDGE=(y/n)**17 18| Enable :ref:`Ethernet Bridging (BRIDGE) offloading support <mlx5_bridge_offload>`.19| This will provide the ability to add representors of mlx5 uplink and VF20| ports to Bridge and offloading rules for traffic between such ports.21| Supports VLANs (trunk and access modes).22 23 24**CONFIG_MLX5_CORE=(y/m/n)** (module mlx5_core.ko)25 26| The driver can be enabled by choosing CONFIG_MLX5_CORE=y/m in kernel config.27| This will provide mlx5 core driver for mlx5 ulps to interface with (mlx5e, mlx5_ib).28 29 30**CONFIG_MLX5_CORE_EN=(y/n)**31 32| Choosing this option will allow basic ethernet netdevice support with all of the standard rx/tx offloads.33| mlx5e is the mlx5 ulp driver which provides netdevice kernel interface, when chosen, mlx5e will be34| built-in into mlx5_core.ko.35 36 37**CONFIG_MLX5_CORE_EN_DCB=(y/n)**:38 39| Enables `Data Center Bridging (DCB) Support <https://enterprise-support.nvidia.com/s/article/howto-auto-config-pfc-and-ets-on-connectx-4-via-lldp-dcbx>`_.40 41 42**CONFIG_MLX5_CORE_IPOIB=(y/n)**43 44| IPoIB offloads & acceleration support.45| Requires CONFIG_MLX5_CORE_EN to provide an accelerated interface for the rdma46| IPoIB ulp netdevice.47 48 49**CONFIG_MLX5_CLS_ACT=(y/n)**50 51| Enables offload support for TC classifier action (NET_CLS_ACT).52| Works in both native NIC mode and Switchdev SRIOV mode.53| Flow-based classifiers, such as those registered through54| `tc-flower(8)`, are processed by the device, rather than the55| host. Actions that would then overwrite matching classification56| results would then be instant due to the offload.57 58 59**CONFIG_MLX5_EN_ARFS=(y/n)**60 61| Enables Hardware-accelerated receive flow steering (arfs) support, and ntuple filtering.62| https://enterprise-support.nvidia.com/s/article/howto-configure-arfs-on-connectx-463 64 65**CONFIG_MLX5_EN_IPSEC=(y/n)**66 67| Enables :ref:`IPSec XFRM cryptography-offload acceleration <xfrm_device>`.68 69 70**CONFIG_MLX5_MACSEC=(y/n)**71 72| Build support for MACsec cryptography-offload acceleration in the NIC.73 74 75**CONFIG_MLX5_EN_RXNFC=(y/n)**76 77| Enables ethtool receive network flow classification, which allows user defined78| flow rules to direct traffic into arbitrary rx queue via ethtool set/get_rxnfc API.79 80 81**CONFIG_MLX5_EN_TLS=(y/n)**82 83| TLS cryptography-offload acceleration.84 85 86**CONFIG_MLX5_ESWITCH=(y/n)**87 88| Ethernet SRIOV E-Switch support in ConnectX NIC. E-Switch provides internal SRIOV packet steering89| and switching for the enabled VFs and PF in two available modes:90| 1) `Legacy SRIOV mode (L2 mac vlan steering based) <https://enterprise-support.nvidia.com/s/article/HowTo-Configure-SR-IOV-for-ConnectX-4-ConnectX-5-ConnectX-6-with-KVM-Ethernet>`_.91| 2) :ref:`Switchdev mode (eswitch offloads) <switchdev>`.92 93 94**CONFIG_MLX5_FPGA=(y/n)**95 96| Build support for the Innova family of network cards by Mellanox Technologies.97| Innova network cards are comprised of a ConnectX chip and an FPGA chip on one board.98| If you select this option, the mlx5_core driver will include the Innova FPGA core and allow99| building sandbox-specific client drivers.100 101 102**CONFIG_MLX5_INFINIBAND=(y/n/m)** (module mlx5_ib.ko)103 104| Provides low-level InfiniBand/RDMA and `RoCE <https://enterprise-support.nvidia.com/s/article/recommended-network-configuration-examples-for-roce-deployment>`_ support.105 106 107**CONFIG_MLX5_MPFS=(y/n)**108 109| Ethernet Multi-Physical Function Switch (MPFS) support in ConnectX NIC.110| MPFs is required for when `Multi-Host <https://www.nvidia.com/en-us/networking/multi-host/>`_ configuration is enabled to allow passing111| user configured unicast MAC addresses to the requesting PF.112 113 114**CONFIG_MLX5_SF=(y/n)**115 116| Build support for subfunction.117| Subfunctons are more light weight than PCI SRIOV VFs. Choosing this option118| will enable support for creating subfunction devices.119 120 121**CONFIG_MLX5_SF_MANAGER=(y/n)**122 123| Build support for subfuction port in the NIC. A Mellanox subfunction124| port is managed through devlink. A subfunction supports RDMA, netdevice125| and vdpa device. It is similar to a SRIOV VF but it doesn't require126| SRIOV support.127 128 129**CONFIG_MLX5_SW_STEERING=(y/n)**130 131| Build support for software-managed steering in the NIC.132 133**CONFIG_MLX5_HW_STEERING=(y/n)**134 135| Build support for hardware-managed steering in the NIC.136 137**CONFIG_MLX5_TC_CT=(y/n)**138 139| Support offloading connection tracking rules via tc ct action.140 141 142**CONFIG_MLX5_TC_SAMPLE=(y/n)**143 144| Support offloading sample rules via tc sample action.145 146 147**CONFIG_MLX5_VDPA=(y/n)**148 149| Support library for Mellanox VDPA drivers. Provides code that is150| common for all types of VDPA drivers. The following drivers are planned:151| net, block.152 153 154**CONFIG_MLX5_VDPA_NET=(y/n)**155 156| VDPA network driver for ConnectX6 and newer. Provides offloading157| of virtio net datapath such that descriptors put on the ring will158| be executed by the hardware. It also supports a variety of stateless159| offloads depending on the actual device used and firmware version.160 161 162**CONFIG_MLX5_VFIO_PCI=(y/n)**163 164| This provides migration support for MLX5 devices using the VFIO framework.165 166 167**External options** ( Choose if the corresponding mlx5 feature is required )168 169- CONFIG_MLXFW: When chosen, mlx5 firmware flashing support will be enabled (via devlink and ethtool).170- CONFIG_PTP_1588_CLOCK: When chosen, mlx5 ptp support will be enabled171- CONFIG_VXLAN: When chosen, mlx5 vxlan support will be enabled.172