xref: /linux/drivers/net/ethernet/mellanox/mlx5/core/Kconfig (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
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