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	default n
14	---help---
15	  Core driver for low level functionality of the ConnectX-4 and
16	  Connect-IB cards by Mellanox Technologies.
17
18config MLX5_ACCEL
19	bool
20
21config MLX5_FPGA
22        bool "Mellanox Technologies Innova support"
23        depends on MLX5_CORE
24	select MLX5_ACCEL
25        ---help---
26          Build support for the Innova family of network cards by Mellanox
27          Technologies. Innova network cards are comprised of a ConnectX chip
28          and an FPGA chip on one board. If you select this option, the
29          mlx5_core driver will include the Innova FPGA core and allow building
30          sandbox-specific client drivers.
31
32config MLX5_CORE_EN
33	bool "Mellanox 5th generation network adapters (ConnectX series) Ethernet support"
34	depends on NETDEVICES && ETHERNET && INET && PCI && MLX5_CORE
35	depends on IPV6=y || IPV6=n || MLX5_CORE=m
36	select PAGE_POOL
37	default n
38	---help---
39	  Ethernet support in Mellanox Technologies ConnectX-4 NIC.
40
41config 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
49config 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
59config 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
69config 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
80config MLX5_CORE_EN_DCB
81	bool "Data Center Bridging (DCB) Support"
82	default y
83	depends on MLX5_CORE_EN && DCB
84	---help---
85	  Say Y here if you want to use Data Center Bridging (DCB) in the
86	  driver.
87	  If set to N, will not be able to configure QoS and ratelimit attributes.
88	  This flag is depended on the kernel's DCB support.
89
90	  If unsure, set to Y
91
92config MLX5_CORE_IPOIB
93	bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support"
94	depends on MLX5_CORE_EN
95	default n
96	---help---
97	  MLX5 IPoIB offloads & acceleration support.
98
99config MLX5_EN_IPSEC
100	bool "IPSec XFRM cryptography-offload accelaration"
101	depends on MLX5_ACCEL
102	depends on MLX5_CORE_EN
103	depends on XFRM_OFFLOAD
104	depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
105	default n
106	---help---
107	  Build support for IPsec cryptography-offload accelaration in the NIC.
108	  Note: Support for hardware with this capability needs to be selected
109	  for this option to become available.
110
111config MLX5_EN_TLS
112	bool "TLS cryptography-offload accelaration"
113	depends on MLX5_CORE_EN
114	depends on TLS_DEVICE
115	depends on TLS=y || MLX5_CORE=m
116	depends on MLX5_ACCEL
117	default n
118	---help---
119	  Build support for TLS cryptography-offload accelaration in the NIC.
120	  Note: Support for hardware with this capability needs to be selected
121	  for this option to become available.
122