d62f90aedaded3c856a463a17260b6374ccd9e6a
[sfrench/cifs-2.6.git] / drivers / net / ethernet / mellanox / mlx5 / core / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Mellanox driver configuration
4 #
5
6 config 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
20 config MLX5_ACCEL
21         bool
22
23 config 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
34 config 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
43 config 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
51 config 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
61 config 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
71 config 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
82 config MLX5_BRIDGE
83         bool
84         depends on MLX5_ESWITCH && BRIDGE
85         default y
86         help
87           mlx5 ConnectX offloads support for Ethernet Bridging (BRIDGE).
88           Enable adding representors of mlx5 uplink and VF ports to Bridge and
89           offloading rules for traffic between such ports. Supports VLANs (trunk and
90           access modes).
91
92 config MLX5_CLS_ACT
93         bool "MLX5 TC classifier action support"
94         depends on MLX5_ESWITCH && NET_CLS_ACT
95         default y
96         help
97           mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT),
98           works in both native NIC mode and Switchdev SRIOV mode.
99           Actions get attached to a Hardware offloaded classifiers and are
100           invoked after a successful classification. Actions are used to
101           overwrite the classification result, instantly drop or redirect and/or
102           reformat packets in wire speeds without involving the host cpu.
103
104           If set to N, TC offloads in both NIC and switchdev modes will be disabled.
105           If unsure, set to Y
106
107 config MLX5_TC_CT
108         bool "MLX5 TC connection tracking offload support"
109         depends on MLX5_CLS_ACT && NF_FLOW_TABLE && NET_ACT_CT && NET_TC_SKB_EXT
110         default y
111         help
112           Say Y here if you want to support offloading connection tracking rules
113           via tc ct action.
114
115           If unsure, set to Y
116
117 config MLX5_TC_SAMPLE
118         bool "MLX5 TC sample offload support"
119         depends on MLX5_CLS_ACT
120         default y
121         help
122           Say Y here if you want to support offloading sample rules via tc
123           sample action.
124           If set to N, will not be able to configure tc rules with sample
125           action.
126
127           If unsure, set to Y
128
129 config MLX5_CORE_EN_DCB
130         bool "Data Center Bridging (DCB) Support"
131         default y
132         depends on MLX5_CORE_EN && DCB
133         help
134           Say Y here if you want to use Data Center Bridging (DCB) in the
135           driver.
136           If set to N, will not be able to configure QoS and ratelimit attributes.
137           This flag is depended on the kernel's DCB support.
138
139           If unsure, set to Y
140
141 config MLX5_CORE_IPOIB
142         bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support"
143         depends on MLX5_CORE_EN
144         default n
145         help
146           MLX5 IPoIB offloads & acceleration support.
147
148 config MLX5_FPGA_IPSEC
149         bool "Mellanox Technologies IPsec Innova support"
150         depends on MLX5_CORE
151         depends on MLX5_FPGA
152         default n
153         help
154         Build IPsec support for the Innova family of network cards by Mellanox
155         Technologies. Innova network cards are comprised of a ConnectX chip
156         and an FPGA chip on one board. If you select this option, the
157         mlx5_core driver will include the Innova FPGA core and allow building
158         sandbox-specific client drivers.
159
160 config MLX5_IPSEC
161         bool "Mellanox Technologies IPsec Connect-X support"
162         depends on MLX5_CORE_EN
163         depends on XFRM_OFFLOAD
164         depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
165         select MLX5_ACCEL
166         default n
167         help
168         Build IPsec support for the Connect-X family of network cards by Mellanox
169         Technologies.
170         Note: If you select this option, the mlx5_core driver will include
171         IPsec support for the Connect-X family.
172
173 config MLX5_EN_IPSEC
174         bool "IPSec XFRM cryptography-offload acceleration"
175         depends on MLX5_CORE_EN
176         depends on XFRM_OFFLOAD
177         depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
178         depends on MLX5_FPGA_IPSEC || MLX5_IPSEC
179         default n
180         help
181           Build support for IPsec cryptography-offload acceleration in the NIC.
182           Note: Support for hardware with this capability needs to be selected
183           for this option to become available.
184
185 config MLX5_FPGA_TLS
186         bool "Mellanox Technologies TLS Innova support"
187         depends on TLS_DEVICE
188         depends on TLS=y || MLX5_CORE=m
189         depends on MLX5_CORE_EN
190         depends on MLX5_FPGA
191         select MLX5_EN_TLS
192         default n
193         help
194         Build TLS support for the Innova family of network cards by Mellanox
195         Technologies. Innova network cards are comprised of a ConnectX chip
196         and an FPGA chip on one board. If you select this option, the
197         mlx5_core driver will include the Innova FPGA core and allow building
198         sandbox-specific client drivers.
199
200 config MLX5_TLS
201         bool "Mellanox Technologies TLS Connect-X support"
202         depends on TLS_DEVICE
203         depends on TLS=y || MLX5_CORE=m
204         depends on MLX5_CORE_EN
205         select MLX5_ACCEL
206         select MLX5_EN_TLS
207         default n
208         help
209         Build TLS support for the Connect-X family of network cards by Mellanox
210         Technologies.
211
212 config MLX5_EN_TLS
213         bool
214         help
215         Build support for TLS cryptography-offload acceleration in the NIC.
216         Note: Support for hardware with this capability needs to be selected
217         for this option to become available.
218
219 config MLX5_SW_STEERING
220         bool "Mellanox Technologies software-managed steering"
221         depends on MLX5_CORE_EN && MLX5_ESWITCH
222         select CRC32
223         default y
224         help
225         Build support for software-managed steering in the NIC.
226
227 config MLX5_SF
228         bool "Mellanox Technologies subfunction device support using auxiliary device"
229         depends on MLX5_CORE && MLX5_CORE_EN
230         default n
231         help
232         Build support for subfuction device in the NIC. A Mellanox subfunction
233         device can support RDMA, netdevice and vdpa device.
234         It is similar to a SRIOV VF but it doesn't require SRIOV support.
235
236 config MLX5_SF_MANAGER
237         bool
238         depends on MLX5_SF && MLX5_ESWITCH
239         default y
240         help
241         Build support for subfuction port in the NIC. A Mellanox subfunction
242         port is managed through devlink.  A subfunction supports RDMA, netdevice
243         and vdpa device. It is similar to a SRIOV VF but it doesn't require
244         SRIOV support.