1 .. SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB 2 .. include:: <isonum.txt> 3 4 ======================================= 5 Enabling the driver and kconfig options 6 ======================================= 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 flags 13 | 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 VF 20 | 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 be 34 | 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 rdma 46 | 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 through 54 | `tc-flower(8)`, are processed by the device, rather than the 55 | host. Actions that would then overwrite matching classification 56 | 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-4 63 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 defined 78 | 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 steering 89 | 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 allow 99 | 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 passing 111 | 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 option 118 | 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 subfunction 124 | port is managed through devlink. A subfunction supports RDMA, netdevice 125 | and vdpa device. It is similar to a SRIOV VF but it doesn't require 126 | 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 is 150 | 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 offloading 157 | of virtio net datapath such that descriptors put on the ring will 158 | be executed by the hardware. It also supports a variety of stateless 159 | 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 enabled 171 - CONFIG_VXLAN: When chosen, mlx5 vxlan support will be enabled.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.