Enabling the driver and kconfig options¶
- Copyright
© 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
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.
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.
CONFIG_MLX5_MPFS=(y/n)
Ethernet Multi-Physical Function Switch (MPFS) support in ConnectX NIC.
MPFs is required for when Multi-Host 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:
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)
CONFIG_MLX5_EN_TLS=(y/n)
TLS cryptography-offload acceleration.
CONFIG_MLX5_INFINIBAND=(y/n/m) (module mlx5_ib.ko)
Provides low-level InfiniBand/RDMA and RoCE support.
CONFIG_MLX5_SF=(y/n)
Build support for subfunction.
Subfunctons are more light weight than PCI SRIOV VFs. Choosing this option
will enable support for creating subfunction devices.
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 vxlan support will be enabled.
CONFIG_MLXFW: When chosen, mlx5 firmware flashing support will be enabled (via devlink and ethtool).