| # SPDX-License-Identifier: GPL-2.0-only |
| # |
| # Mellanox driver configuration |
| # |
| |
| config MLX5_CORE |
| tristate "Mellanox 5th generation network adapters (ConnectX series) core driver" |
| depends on PCI |
| select AUXILIARY_BUS |
| select NET_DEVLINK |
| depends on VXLAN || !VXLAN |
| depends on MLXFW || !MLXFW |
| depends on PTP_1588_CLOCK_OPTIONAL |
| depends on PCI_HYPERV_INTERFACE || !PCI_HYPERV_INTERFACE |
| help |
| Core driver for low level functionality of the ConnectX-4 and |
| Connect-IB cards by Mellanox Technologies. |
| |
| config MLX5_ACCEL |
| bool |
| |
| config MLX5_FPGA |
| bool "Mellanox Technologies Innova support" |
| depends on MLX5_CORE |
| select MLX5_ACCEL |
| help |
| 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_CORE_EN |
| bool "Mellanox 5th generation network adapters (ConnectX series) Ethernet support" |
| depends on NETDEVICES && ETHERNET && INET && PCI && MLX5_CORE |
| select PAGE_POOL |
| select DIMLIB |
| help |
| Ethernet support in Mellanox Technologies ConnectX-4 NIC. |
| |
| config MLX5_EN_ARFS |
| bool "Mellanox MLX5 ethernet accelerated receive flow steering (ARFS) support" |
| depends on MLX5_CORE_EN && RFS_ACCEL |
| default y |
| help |
| Mellanox MLX5 ethernet hardware-accelerated receive flow steering support, |
| Enables ethernet netdevice arfs support and ntuple filtering. |
| |
| config MLX5_EN_RXNFC |
| bool "Mellanox MLX5 ethernet rx nfc flow steering support" |
| depends on MLX5_CORE_EN |
| default y |
| help |
| Mellanox MLX5 ethernet rx nfc flow steering support |
| 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_MPFS |
| bool "Mellanox Technologies MLX5 MPFS support" |
| depends on MLX5_CORE_EN |
| default y |
| help |
| Mellanox Technologies Ethernet Multi-Physical Function Switch (MPFS) |
| support in ConnectX NIC. MPFs is required for when multi-PF configuration |
| is enabled to allow passing user configured unicast MAC addresses to the |
| requesting PF. |
| |
| config MLX5_ESWITCH |
| bool "Mellanox Technologies MLX5 SRIOV E-Switch support" |
| depends on MLX5_CORE_EN && NET_SWITCHDEV |
| default y |
| help |
| Mellanox Technologies 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: |
| Legacy SRIOV mode (L2 mac vlan steering based). |
| Switchdev mode (eswitch offloads). |
| |
| config MLX5_BRIDGE |
| bool |
| depends on MLX5_ESWITCH && BRIDGE |
| default y |
| help |
| mlx5 ConnectX offloads support for Ethernet Bridging (BRIDGE). |
| Enable adding representors of mlx5 uplink and VF ports to Bridge and |
| offloading rules for traffic between such ports. Supports VLANs (trunk and |
| access modes). |
| |
| config MLX5_CLS_ACT |
| bool "MLX5 TC classifier action support" |
| depends on MLX5_ESWITCH && NET_CLS_ACT |
| default y |
| help |
| mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT), |
| works in both native NIC mode and Switchdev SRIOV mode. |
| Actions get attached to a Hardware offloaded classifiers and are |
| invoked after a successful classification. Actions are used to |
| overwrite the classification result, instantly drop or redirect and/or |
| reformat packets in wire speeds without involving the host cpu. |
| |
| If set to N, TC offloads in both NIC and switchdev modes will be disabled. |
| If unsure, set to Y |
| |
| config MLX5_TC_CT |
| bool "MLX5 TC connection tracking offload support" |
| depends on MLX5_CLS_ACT && NF_FLOW_TABLE && NET_ACT_CT && NET_TC_SKB_EXT |
| default y |
| help |
| Say Y here if you want to support offloading connection tracking rules |
| via tc ct action. |
| |
| If unsure, set to Y |
| |
| config MLX5_TC_SAMPLE |
| bool "MLX5 TC sample offload support" |
| depends on MLX5_CLS_ACT |
| default y |
| help |
| Say Y here if you want to support offloading sample rules via tc |
| sample action. |
| If set to N, will not be able to configure tc rules with sample |
| action. |
| |
| If unsure, set to Y |
| |
| config MLX5_CORE_EN_DCB |
| bool "Data Center Bridging (DCB) Support" |
| default y |
| depends on MLX5_CORE_EN && DCB |
| help |
| Say Y here if you want to use Data Center Bridging (DCB) in the |
| driver. |
| If set to N, will not be able to configure QoS and ratelimit attributes. |
| This flag is depended on the kernel's DCB support. |
| |
| If unsure, set to Y |
| |
| config MLX5_CORE_IPOIB |
| bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support" |
| depends on MLX5_CORE_EN |
| help |
| MLX5 IPoIB offloads & acceleration support. |
| |
| config MLX5_FPGA_IPSEC |
| bool "Mellanox Technologies IPsec Innova support" |
| depends on MLX5_CORE |
| depends on MLX5_FPGA |
| help |
| Build IPsec 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_IPSEC |
| bool "Mellanox Technologies IPsec Connect-X support" |
| depends on MLX5_CORE_EN |
| depends on XFRM_OFFLOAD |
| depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD |
| select MLX5_ACCEL |
| help |
| Build IPsec support for the Connect-X family of network cards by Mellanox |
| Technologies. |
| Note: If you select this option, the mlx5_core driver will include |
| IPsec support for the Connect-X family. |
| |
| config MLX5_EN_IPSEC |
| bool "IPSec XFRM cryptography-offload acceleration" |
| depends on MLX5_CORE_EN |
| depends on XFRM_OFFLOAD |
| depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD |
| depends on MLX5_FPGA_IPSEC || MLX5_IPSEC |
| help |
| Build support for IPsec cryptography-offload acceleration in the NIC. |
| Note: Support for hardware with this capability needs to be selected |
| for this option to become available. |
| |
| config MLX5_FPGA_TLS |
| bool "Mellanox Technologies TLS Innova support" |
| depends on TLS_DEVICE |
| depends on TLS=y || MLX5_CORE=m |
| depends on MLX5_CORE_EN |
| depends on MLX5_FPGA |
| select MLX5_EN_TLS |
| help |
| Build TLS 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_TLS |
| bool "Mellanox Technologies TLS Connect-X support" |
| depends on TLS_DEVICE |
| depends on TLS=y || MLX5_CORE=m |
| depends on MLX5_CORE_EN |
| select MLX5_ACCEL |
| select MLX5_EN_TLS |
| help |
| Build TLS support for the Connect-X family of network cards by Mellanox |
| Technologies. |
| |
| config MLX5_EN_TLS |
| bool |
| help |
| Build support for TLS cryptography-offload acceleration in the NIC. |
| Note: Support for hardware with this capability needs to be selected |
| for this option to become available. |
| |
| config MLX5_SW_STEERING |
| bool "Mellanox Technologies software-managed steering" |
| depends on MLX5_CORE_EN && MLX5_ESWITCH |
| select CRC32 |
| default y |
| help |
| Build support for software-managed steering in the NIC. |
| |
| config MLX5_SF |
| bool "Mellanox Technologies subfunction device support using auxiliary device" |
| depends on MLX5_CORE && MLX5_CORE_EN |
| help |
| Build support for subfuction device in the NIC. A Mellanox subfunction |
| device can support RDMA, netdevice and vdpa device. |
| It is similar to a SRIOV VF but it doesn't require SRIOV support. |
| |
| config MLX5_SF_MANAGER |
| bool |
| depends on MLX5_SF && MLX5_ESWITCH |
| default y |
| help |
| Build support for subfuction port in the NIC. A Mellanox subfunction |
| port is managed through devlink. A subfunction supports RDMA, netdevice |
| and vdpa device. It is similar to a SRIOV VF but it doesn't require |
| SRIOV support. |