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