net/mlx5e: TC, Add offload support for trap with additional actions
[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 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         help
16           Core driver for low level functionality of the ConnectX-4 and
17           Connect-IB cards by Mellanox Technologies.
18
19 config MLX5_FPGA
20         bool "Mellanox Technologies Innova support"
21         depends on MLX5_CORE
22         help
23           Build support for the Innova family of network cards by Mellanox
24           Technologies. Innova network cards are comprised of a ConnectX chip
25           and an FPGA chip on one board. If you select this option, the
26           mlx5_core driver will include the Innova FPGA core and allow building
27           sandbox-specific client drivers.
28
29 config MLX5_CORE_EN
30         bool "Mellanox 5th generation network adapters (ConnectX series) Ethernet support"
31         depends on NETDEVICES && ETHERNET && INET && PCI && MLX5_CORE
32         select PAGE_POOL
33         select DIMLIB
34         help
35           Ethernet support in Mellanox Technologies ConnectX-4 NIC.
36
37 config MLX5_EN_ARFS
38         bool "Mellanox MLX5 ethernet accelerated receive flow steering (ARFS) support"
39         depends on MLX5_CORE_EN && RFS_ACCEL
40         default y
41         help
42           Mellanox MLX5 ethernet hardware-accelerated receive flow steering support,
43           Enables ethernet netdevice arfs support and ntuple filtering.
44
45 config MLX5_EN_RXNFC
46         bool "Mellanox MLX5 ethernet rx nfc flow steering support"
47         depends on MLX5_CORE_EN
48         default y
49         help
50           Mellanox MLX5 ethernet rx nfc flow steering support
51           Enables ethtool receive network flow classification, which allows user defined
52           flow rules to direct traffic into arbitrary rx queue via ethtool set/get_rxnfc
53           API.
54
55 config MLX5_MPFS
56         bool "Mellanox Technologies MLX5 MPFS support"
57         depends on MLX5_CORE_EN
58         default y
59         help
60           Mellanox Technologies Ethernet Multi-Physical Function Switch (MPFS)
61           support in ConnectX NIC. MPFs is required for when multi-PF configuration
62           is enabled to allow passing user configured unicast MAC addresses to the
63           requesting PF.
64
65 config MLX5_ESWITCH
66         bool "Mellanox Technologies MLX5 SRIOV E-Switch support"
67         depends on MLX5_CORE_EN && NET_SWITCHDEV
68         default y
69         help
70           Mellanox Technologies Ethernet SRIOV E-Switch support in ConnectX NIC.
71           E-Switch provides internal SRIOV packet steering and switching for the
72           enabled VFs and PF in two available modes:
73                 Legacy SRIOV mode (L2 mac vlan steering based).
74                 Switchdev mode (eswitch offloads).
75
76 config MLX5_BRIDGE
77         bool
78         depends on MLX5_ESWITCH && BRIDGE
79         default y
80         help
81           mlx5 ConnectX offloads support for Ethernet Bridging (BRIDGE).
82           Enable adding representors of mlx5 uplink and VF ports to Bridge and
83           offloading rules for traffic between such ports. Supports VLANs (trunk and
84           access modes).
85
86 config MLX5_CLS_ACT
87         bool "MLX5 TC classifier action support"
88         depends on MLX5_ESWITCH && NET_CLS_ACT
89         default y
90         help
91           mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT),
92           works in both native NIC mode and Switchdev SRIOV mode.
93           Actions get attached to a Hardware offloaded classifiers and are
94           invoked after a successful classification. Actions are used to
95           overwrite the classification result, instantly drop or redirect and/or
96           reformat packets in wire speeds without involving the host cpu.
97
98           If set to N, TC offloads in both NIC and switchdev modes will be disabled.
99           If unsure, set to Y
100
101 config MLX5_TC_CT
102         bool "MLX5 TC connection tracking offload support"
103         depends on MLX5_CLS_ACT && NF_FLOW_TABLE && NET_ACT_CT && NET_TC_SKB_EXT
104         default y
105         help
106           Say Y here if you want to support offloading connection tracking rules
107           via tc ct action.
108
109           If unsure, set to Y
110
111 config MLX5_TC_SAMPLE
112         bool "MLX5 TC sample offload support"
113         depends on MLX5_CLS_ACT
114         depends on PSAMPLE=y || PSAMPLE=n || MLX5_CORE=m
115         default y
116         help
117           Say Y here if you want to support offloading sample rules via tc
118           sample action.
119           If set to N, will not be able to configure tc rules with sample
120           action.
121
122           If unsure, set to Y
123
124 config MLX5_CORE_EN_DCB
125         bool "Data Center Bridging (DCB) Support"
126         default y
127         depends on MLX5_CORE_EN && DCB
128         help
129           Say Y here if you want to use Data Center Bridging (DCB) in the
130           driver.
131           If set to N, will not be able to configure QoS and ratelimit attributes.
132           This flag is depended on the kernel's DCB support.
133
134           If unsure, set to Y
135
136 config MLX5_CORE_IPOIB
137         bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support"
138         depends on MLX5_CORE_EN
139         help
140           MLX5 IPoIB offloads & acceleration support.
141
142 config MLX5_EN_MACSEC
143         bool "Connect-X support for MACSec offload"
144         depends on MLX5_CORE_EN
145         depends on MACSEC
146         default n
147         help
148           Build support for MACsec cryptography-offload acceleration in the NIC.
149
150 config MLX5_EN_IPSEC
151         bool "Mellanox Technologies IPsec Connect-X support"
152         depends on MLX5_CORE_EN
153         depends on XFRM_OFFLOAD
154         depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
155         help
156           Build support for IPsec cryptography-offload acceleration in the NIC.
157
158 config MLX5_EN_TLS
159         bool "Mellanox Technologies TLS Connect-X support"
160         depends on TLS_DEVICE
161         depends on TLS=y || MLX5_CORE=m
162         depends on MLX5_CORE_EN
163         help
164         Build support for TLS cryptography-offload acceleration in the NIC.
165
166 config MLX5_SW_STEERING
167         bool "Mellanox Technologies software-managed steering"
168         depends on MLX5_CORE_EN && MLX5_ESWITCH
169         select CRC32
170         default y
171         help
172         Build support for software-managed steering in the NIC.
173
174 config MLX5_SF
175         bool "Mellanox Technologies subfunction device support using auxiliary device"
176         depends on MLX5_CORE && MLX5_CORE_EN
177         help
178         Build support for subfuction device in the NIC. A Mellanox subfunction
179         device can support RDMA, netdevice and vdpa device.
180         It is similar to a SRIOV VF but it doesn't require SRIOV support.
181
182 config MLX5_SF_MANAGER
183         bool
184         depends on MLX5_SF && MLX5_ESWITCH
185         default y
186         help
187         Build support for subfuction port in the NIC. A Mellanox subfunction
188         port is managed through devlink.  A subfunction supports RDMA, netdevice
189         and vdpa device. It is similar to a SRIOV VF but it doesn't require
190         SRIOV support.