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 NET_DEVLINK
10	imply PTP_1588_CLOCK
11	imply VXLAN
12	imply MLXFW
13	imply 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
19config MLX5_ACCEL
20	bool
21
22config 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
33config 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
42config 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
50config 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
60config 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
70config 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
81config MLX5_CORE_EN_DCB
82	bool "Data Center Bridging (DCB) Support"
83	default y
84	depends on MLX5_CORE_EN && DCB
85	---help---
86	  Say Y here if you want to use Data Center Bridging (DCB) in the
87	  driver.
88	  If set to N, will not be able to configure QoS and ratelimit attributes.
89	  This flag is depended on the kernel's DCB support.
90
91	  If unsure, set to Y
92
93config MLX5_CORE_IPOIB
94	bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support"
95	depends on MLX5_CORE_EN
96	default n
97	---help---
98	  MLX5 IPoIB offloads & acceleration support.
99
100config MLX5_FPGA_IPSEC
101	bool "Mellanox Technologies IPsec Innova support"
102	depends on MLX5_CORE
103	depends on MLX5_FPGA
104	default n
105	help
106	Build IPsec support for the Innova family of network cards by Mellanox
107	Technologies. Innova network cards are comprised of a ConnectX chip
108	and an FPGA chip on one board. If you select this option, the
109	mlx5_core driver will include the Innova FPGA core and allow building
110	sandbox-specific client drivers.
111
112config MLX5_EN_IPSEC
113	bool "IPSec XFRM cryptography-offload accelaration"
114	depends on MLX5_CORE_EN
115	depends on XFRM_OFFLOAD
116	depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
117	depends on MLX5_FPGA_IPSEC
118	default n
119	help
120	  Build support for IPsec cryptography-offload accelaration in the NIC.
121	  Note: Support for hardware with this capability needs to be selected
122	  for this option to become available.
123
124config MLX5_FPGA_TLS
125	bool "Mellanox Technologies TLS Innova support"
126	depends on TLS_DEVICE
127	depends on TLS=y || MLX5_CORE=m
128	depends on MLX5_FPGA
129	default n
130	help
131	Build TLS 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
137config MLX5_TLS
138	bool "Mellanox Technologies TLS Connect-X support"
139	depends on MLX5_CORE_EN
140	depends on TLS_DEVICE
141	depends on TLS=y || MLX5_CORE=m
142	select MLX5_ACCEL
143	default n
144	help
145	Build TLS support for the Connect-X family of network cards by Mellanox
146	Technologies.
147
148config MLX5_EN_TLS
149	bool "TLS cryptography-offload accelaration"
150	depends on MLX5_CORE_EN
151	depends on MLX5_FPGA_TLS || MLX5_TLS
152	default y
153	help
154	Build support for TLS cryptography-offload accelaration in the NIC.
155	Note: Support for hardware with this capability needs to be selected
156	for this option to become available.
157
158config MLX5_SW_STEERING
159	bool "Mellanox Technologies software-managed steering"
160	depends on MLX5_CORE_EN && MLX5_ESWITCH
161	default y
162	help
163	Build support for software-managed steering in the NIC.
164