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