1# SPDX-License-Identifier: GPL-2.0-only 2# 3# Mellanox driver configuration 4# 5 6config MLX5_CORE 7 tristate "Mellanox 5th generation network adapters (ConnectX series) core driver" 8 depends on PCI 9 select AUXILIARY_BUS 10 select NET_DEVLINK 11 depends on VXLAN || !VXLAN 12 depends on MLXFW || !MLXFW 13 depends on PTP_1588_CLOCK_OPTIONAL 14 depends on PCI_HYPERV_INTERFACE || !PCI_HYPERV_INTERFACE 15 help 16 Core driver for low level functionality of the ConnectX-4 and 17 Connect-IB cards by Mellanox Technologies. 18 19config MLX5_FPGA 20 bool "Mellanox Technologies Innova support" 21 depends on MLX5_CORE 22 help 23 Build support for the Innova family of network cards by Mellanox 24 Technologies. Innova network cards are comprised of a ConnectX chip 25 and an FPGA chip on one board. If you select this option, the 26 mlx5_core driver will include the Innova FPGA core and allow building 27 sandbox-specific client drivers. 28 29config MLX5_CORE_EN 30 bool "Mellanox 5th generation network adapters (ConnectX series) Ethernet support" 31 depends on NETDEVICES && ETHERNET && INET && PCI && MLX5_CORE 32 select PAGE_POOL 33 select DIMLIB 34 help 35 Ethernet support in Mellanox Technologies ConnectX-4 NIC. 36 37config MLX5_EN_ARFS 38 bool "Mellanox MLX5 ethernet accelerated receive flow steering (ARFS) support" 39 depends on MLX5_CORE_EN && RFS_ACCEL 40 default y 41 help 42 Mellanox MLX5 ethernet hardware-accelerated receive flow steering support, 43 Enables ethernet netdevice arfs support and ntuple filtering. 44 45config MLX5_EN_RXNFC 46 bool "Mellanox MLX5 ethernet rx nfc flow steering support" 47 depends on MLX5_CORE_EN 48 default y 49 help 50 Mellanox MLX5 ethernet rx nfc flow steering support 51 Enables ethtool receive network flow classification, which allows user defined 52 flow rules to direct traffic into arbitrary rx queue via ethtool set/get_rxnfc 53 API. 54 55config MLX5_MPFS 56 bool "Mellanox Technologies MLX5 MPFS support" 57 depends on MLX5_CORE_EN 58 default y 59 help 60 Mellanox Technologies Ethernet Multi-Physical Function Switch (MPFS) 61 support in ConnectX NIC. MPFs is required for when multi-PF configuration 62 is enabled to allow passing user configured unicast MAC addresses to the 63 requesting PF. 64 65config MLX5_ESWITCH 66 bool "Mellanox Technologies MLX5 SRIOV E-Switch support" 67 depends on MLX5_CORE_EN && NET_SWITCHDEV 68 default y 69 help 70 Mellanox Technologies Ethernet SRIOV E-Switch support in ConnectX NIC. 71 E-Switch provides internal SRIOV packet steering and switching for the 72 enabled VFs and PF in two available modes: 73 Legacy SRIOV mode (L2 mac vlan steering based). 74 Switchdev mode (eswitch offloads). 75 76config MLX5_BRIDGE 77 bool 78 depends on MLX5_ESWITCH && BRIDGE 79 default y 80 help 81 mlx5 ConnectX offloads support for Ethernet Bridging (BRIDGE). 82 Enable adding representors of mlx5 uplink and VF ports to Bridge and 83 offloading rules for traffic between such ports. Supports VLANs (trunk and 84 access modes). 85 86config MLX5_CLS_ACT 87 bool "MLX5 TC classifier action support" 88 depends on MLX5_ESWITCH && NET_CLS_ACT 89 default y 90 help 91 mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT), 92 works in both native NIC mode and Switchdev SRIOV mode. 93 Actions get attached to a Hardware offloaded classifiers and are 94 invoked after a successful classification. Actions are used to 95 overwrite the classification result, instantly drop or redirect and/or 96 reformat packets in wire speeds without involving the host cpu. 97 98 If set to N, TC offloads in both NIC and switchdev modes will be disabled. 99 If unsure, set to Y 100 101config MLX5_TC_CT 102 bool "MLX5 TC connection tracking offload support" 103 depends on MLX5_CLS_ACT && NF_FLOW_TABLE && NET_ACT_CT && NET_TC_SKB_EXT 104 default y 105 help 106 Say Y here if you want to support offloading connection tracking rules 107 via tc ct action. 108 109 If unsure, set to Y 110 111config MLX5_TC_SAMPLE 112 bool "MLX5 TC sample offload support" 113 depends on MLX5_CLS_ACT 114 depends on PSAMPLE=y || PSAMPLE=n || MLX5_CORE=m 115 default y 116 help 117 Say Y here if you want to support offloading sample rules via tc 118 sample action. 119 If set to N, will not be able to configure tc rules with sample 120 action. 121 122 If unsure, set to Y 123 124config MLX5_CORE_EN_DCB 125 bool "Data Center Bridging (DCB) Support" 126 default y 127 depends on MLX5_CORE_EN && DCB 128 help 129 Say Y here if you want to use Data Center Bridging (DCB) in the 130 driver. 131 If set to N, will not be able to configure QoS and ratelimit attributes. 132 This flag is depended on the kernel's DCB support. 133 134 If unsure, set to Y 135 136config MLX5_CORE_IPOIB 137 bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support" 138 depends on MLX5_CORE_EN 139 help 140 MLX5 IPoIB offloads & acceleration support. 141 142config MLX5_EN_MACSEC 143 bool "Connect-X support for MACSec offload" 144 depends on MLX5_CORE_EN 145 depends on MACSEC 146 default n 147 help 148 Build support for MACsec cryptography-offload acceleration in the NIC. 149 150config MLX5_EN_IPSEC 151 bool "Mellanox Technologies IPsec Connect-X support" 152 depends on MLX5_CORE_EN 153 depends on XFRM_OFFLOAD 154 depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD 155 help 156 Build support for IPsec cryptography-offload acceleration in the NIC. 157 158config MLX5_EN_TLS 159 bool "Mellanox Technologies TLS Connect-X support" 160 depends on TLS_DEVICE 161 depends on TLS=y || MLX5_CORE=m 162 depends on MLX5_CORE_EN 163 help 164 Build support for TLS cryptography-offload acceleration in the NIC. 165 166config MLX5_SW_STEERING 167 bool "Mellanox Technologies software-managed steering" 168 depends on MLX5_CORE_EN && MLX5_ESWITCH 169 select CRC32 170 default y 171 help 172 Build support for software-managed steering in the NIC. 173 174config MLX5_SF 175 bool "Mellanox Technologies subfunction device support using auxiliary device" 176 depends on MLX5_CORE && MLX5_CORE_EN 177 help 178 Build support for subfuction device in the NIC. A Mellanox subfunction 179 device can support RDMA, netdevice and vdpa device. 180 It is similar to a SRIOV VF but it doesn't require SRIOV support. 181 182config MLX5_SF_MANAGER 183 bool 184 depends on MLX5_SF && MLX5_ESWITCH 185 default y 186 help 187 Build support for subfuction port in the NIC. A Mellanox subfunction 188 port is managed through devlink. A subfunction supports RDMA, netdevice 189 and vdpa device. It is similar to a SRIOV VF but it doesn't require 190 SRIOV support. 191