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