7d7148c9b74408f5acced0cea96213c541c68986
[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 NET_DEVLINK
10         depends on VXLAN || !VXLAN
11         depends on MLXFW || !MLXFW
12         depends on PTP_1588_CLOCK || !PTP_1588_CLOCK
13         depends on PCI_HYPERV_INTERFACE || !PCI_HYPERV_INTERFACE
14         default n
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         default n
39         help
40           Ethernet support in Mellanox Technologies ConnectX-4 NIC.
41
42 config MLX5_EN_ARFS
43         bool "Mellanox MLX5 ethernet accelerated receive flow steering (ARFS) support"
44         depends on MLX5_CORE_EN && RFS_ACCEL
45         default y
46         help
47           Mellanox MLX5 ethernet hardware-accelerated receive flow steering support,
48           Enables ethernet netdevice arfs support and ntuple filtering.
49
50 config MLX5_EN_RXNFC
51         bool "Mellanox MLX5 ethernet rx nfc flow steering support"
52         depends on MLX5_CORE_EN
53         default y
54         help
55           Mellanox MLX5 ethernet rx nfc flow steering support
56           Enables ethtool receive network flow classification, which allows user defined
57           flow rules to direct traffic into arbitrary rx queue via ethtool set/get_rxnfc
58           API.
59
60 config MLX5_MPFS
61         bool "Mellanox Technologies MLX5 MPFS support"
62         depends on MLX5_CORE_EN
63         default y
64         help
65           Mellanox Technologies Ethernet Multi-Physical Function Switch (MPFS)
66           support in ConnectX NIC. MPFs is required for when multi-PF configuration
67           is enabled to allow passing user configured unicast MAC addresses to the
68           requesting PF.
69
70 config MLX5_ESWITCH
71         bool "Mellanox Technologies MLX5 SRIOV E-Switch support"
72         depends on MLX5_CORE_EN && NET_SWITCHDEV
73         default y
74         help
75           Mellanox Technologies Ethernet SRIOV E-Switch support in ConnectX NIC.
76           E-Switch provides internal SRIOV packet steering and switching for the
77           enabled VFs and PF in two available modes:
78                 Legacy SRIOV mode (L2 mac vlan steering based).
79                 Switchdev mode (eswitch offloads).
80
81 config MLX5_CLS_ACT
82         bool "MLX5 TC classifier action support"
83         depends on MLX5_ESWITCH && NET_CLS_ACT
84         default y
85         help
86           mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT),
87           works in both native NIC mode and Switchdev SRIOV mode.
88           Actions get attached to a Hardware offloaded classifiers and are
89           invoked after a successful classification. Actions are used to
90           overwrite the classification result, instantly drop or redirect and/or
91           reformat packets in wire speeds without involving the host cpu.
92
93           If set to N, TC offloads in both NIC and switchdev modes will be disabled.
94           If unsure, set to Y
95
96 config MLX5_TC_CT
97         bool "MLX5 TC connection tracking offload support"
98         depends on MLX5_CLS_ACT && NF_FLOW_TABLE && NET_ACT_CT && NET_TC_SKB_EXT
99         default y
100         help
101           Say Y here if you want to support offloading connection tracking rules
102           via tc ct action.
103
104           If unsure, set to Y
105
106 config MLX5_CORE_EN_DCB
107         bool "Data Center Bridging (DCB) Support"
108         default y
109         depends on MLX5_CORE_EN && DCB
110         help
111           Say Y here if you want to use Data Center Bridging (DCB) in the
112           driver.
113           If set to N, will not be able to configure QoS and ratelimit attributes.
114           This flag is depended on the kernel's DCB support.
115
116           If unsure, set to Y
117
118 config MLX5_CORE_IPOIB
119         bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support"
120         depends on MLX5_CORE_EN
121         default n
122         help
123           MLX5 IPoIB offloads & acceleration support.
124
125 config MLX5_FPGA_IPSEC
126         bool "Mellanox Technologies IPsec Innova support"
127         depends on MLX5_CORE
128         depends on MLX5_FPGA
129         default n
130         help
131         Build IPsec support for the Innova family of network cards by Mellanox
132         Technologies. Innova network cards are comprised of a ConnectX chip
133         and an FPGA chip on one board. If you select this option, the
134         mlx5_core driver will include the Innova FPGA core and allow building
135         sandbox-specific client drivers.
136
137 config MLX5_EN_IPSEC
138         bool "IPSec XFRM cryptography-offload accelaration"
139         depends on MLX5_CORE_EN
140         depends on XFRM_OFFLOAD
141         depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
142         depends on MLX5_FPGA_IPSEC
143         default n
144         help
145           Build support for IPsec cryptography-offload accelaration in the NIC.
146           Note: Support for hardware with this capability needs to be selected
147           for this option to become available.
148
149 config MLX5_FPGA_TLS
150         bool "Mellanox Technologies TLS Innova support"
151         depends on TLS_DEVICE
152         depends on TLS=y || MLX5_CORE=m
153         depends on MLX5_CORE_EN
154         depends on MLX5_FPGA
155         depends on XPS
156         select MLX5_EN_TLS
157         default n
158         help
159         Build TLS support for the Innova family of network cards by Mellanox
160         Technologies. Innova network cards are comprised of a ConnectX chip
161         and an FPGA chip on one board. If you select this option, the
162         mlx5_core driver will include the Innova FPGA core and allow building
163         sandbox-specific client drivers.
164
165 config MLX5_TLS
166         bool "Mellanox Technologies TLS Connect-X support"
167         depends on TLS_DEVICE
168         depends on TLS=y || MLX5_CORE=m
169         depends on MLX5_CORE_EN
170         depends on XPS
171         select MLX5_ACCEL
172         select MLX5_EN_TLS
173         default n
174         help
175         Build TLS support for the Connect-X family of network cards by Mellanox
176         Technologies.
177
178 config MLX5_EN_TLS
179         bool
180         help
181         Build support for TLS cryptography-offload accelaration 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_SW_STEERING
186         bool "Mellanox Technologies software-managed steering"
187         depends on MLX5_CORE_EN && MLX5_ESWITCH
188         default y
189         help
190         Build support for software-managed steering in the NIC.