net/mlx5e: Fix missing IPsec statistics on uplink representor
[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_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
19 config MLX5_ACCEL
20         bool
21
22 config 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
33 config 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
41 config 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
49 config 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
59 config 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
69 config 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
80 config 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
90 config 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
105 config 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
115 config MLX5_TC_SAMPLE
116         bool "MLX5 TC sample offload support"
117         depends on MLX5_CLS_ACT
118         default y
119         help
120           Say Y here if you want to support offloading sample rules via tc
121           sample action.
122           If set to N, will not be able to configure tc rules with sample
123           action.
124
125           If unsure, set to Y
126
127 config MLX5_CORE_EN_DCB
128         bool "Data Center Bridging (DCB) Support"
129         default y
130         depends on MLX5_CORE_EN && DCB
131         help
132           Say Y here if you want to use Data Center Bridging (DCB) in the
133           driver.
134           If set to N, will not be able to configure QoS and ratelimit attributes.
135           This flag is depended on the kernel's DCB support.
136
137           If unsure, set to Y
138
139 config MLX5_CORE_IPOIB
140         bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support"
141         depends on MLX5_CORE_EN
142         help
143           MLX5 IPoIB offloads & acceleration support.
144
145 config MLX5_FPGA_IPSEC
146         bool "Mellanox Technologies IPsec Innova support"
147         depends on MLX5_CORE
148         depends on MLX5_FPGA
149         help
150         Build IPsec support for the Innova family of network cards by Mellanox
151         Technologies. Innova network cards are comprised of a ConnectX chip
152         and an FPGA chip on one board. If you select this option, the
153         mlx5_core driver will include the Innova FPGA core and allow building
154         sandbox-specific client drivers.
155
156 config MLX5_IPSEC
157         bool "Mellanox Technologies IPsec Connect-X support"
158         depends on MLX5_CORE_EN
159         depends on XFRM_OFFLOAD
160         depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
161         select MLX5_ACCEL
162         help
163         Build IPsec support for the Connect-X family of network cards by Mellanox
164         Technologies.
165         Note: If you select this option, the mlx5_core driver will include
166         IPsec support for the Connect-X family.
167
168 config MLX5_EN_IPSEC
169         bool "IPSec XFRM cryptography-offload acceleration"
170         depends on MLX5_CORE_EN
171         depends on XFRM_OFFLOAD
172         depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
173         depends on MLX5_FPGA_IPSEC || MLX5_IPSEC
174         help
175           Build support for IPsec cryptography-offload acceleration in the NIC.
176           Note: Support for hardware with this capability needs to be selected
177           for this option to become available.
178
179 config MLX5_FPGA_TLS
180         bool "Mellanox Technologies TLS Innova support"
181         depends on TLS_DEVICE
182         depends on TLS=y || MLX5_CORE=m
183         depends on MLX5_CORE_EN
184         depends on MLX5_FPGA
185         select MLX5_EN_TLS
186         help
187         Build TLS support for the Innova family of network cards by Mellanox
188         Technologies. Innova network cards are comprised of a ConnectX chip
189         and an FPGA chip on one board. If you select this option, the
190         mlx5_core driver will include the Innova FPGA core and allow building
191         sandbox-specific client drivers.
192
193 config MLX5_TLS
194         bool "Mellanox Technologies TLS Connect-X support"
195         depends on TLS_DEVICE
196         depends on TLS=y || MLX5_CORE=m
197         depends on MLX5_CORE_EN
198         select MLX5_ACCEL
199         select MLX5_EN_TLS
200         help
201         Build TLS support for the Connect-X family of network cards by Mellanox
202         Technologies.
203
204 config MLX5_EN_TLS
205         bool
206         help
207         Build support for TLS cryptography-offload acceleration in the NIC.
208         Note: Support for hardware with this capability needs to be selected
209         for this option to become available.
210
211 config MLX5_SW_STEERING
212         bool "Mellanox Technologies software-managed steering"
213         depends on MLX5_CORE_EN && MLX5_ESWITCH
214         select CRC32
215         default y
216         help
217         Build support for software-managed steering in the NIC.
218
219 config MLX5_SF
220         bool "Mellanox Technologies subfunction device support using auxiliary device"
221         depends on MLX5_CORE && MLX5_CORE_EN
222         help
223         Build support for subfuction device in the NIC. A Mellanox subfunction
224         device can support RDMA, netdevice and vdpa device.
225         It is similar to a SRIOV VF but it doesn't require SRIOV support.
226
227 config MLX5_SF_MANAGER
228         bool
229         depends on MLX5_SF && MLX5_ESWITCH
230         default y
231         help
232         Build support for subfuction port in the NIC. A Mellanox subfunction
233         port is managed through devlink.  A subfunction supports RDMA, netdevice
234         and vdpa device. It is similar to a SRIOV VF but it doesn't require
235         SRIOV support.