Linux-libre 5.3.12-gnu
[librecmc/linux-libre.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         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
18 config MLX5_ACCEL
19         bool
20
21 config 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
32 config 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         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_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
93 config 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
100 config 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
112 config 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
124 config 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
137 config 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
148 config 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.