0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Mellanox driver configuration
0004 #
0005
0006 config MLX5_CORE
0007 tristate "Mellanox 5th generation network adapters (ConnectX series) core driver"
0008 depends on PCI
0009 select AUXILIARY_BUS
0010 select NET_DEVLINK
0011 depends on VXLAN || !VXLAN
0012 depends on MLXFW || !MLXFW
0013 depends on PTP_1588_CLOCK_OPTIONAL
0014 depends on PCI_HYPERV_INTERFACE || !PCI_HYPERV_INTERFACE
0015 help
0016 Core driver for low level functionality of the ConnectX-4 and
0017 Connect-IB cards by Mellanox Technologies.
0018
0019 config MLX5_FPGA
0020 bool "Mellanox Technologies Innova support"
0021 depends on MLX5_CORE
0022 help
0023 Build support for the Innova family of network cards by Mellanox
0024 Technologies. Innova network cards are comprised of a ConnectX chip
0025 and an FPGA chip on one board. If you select this option, the
0026 mlx5_core driver will include the Innova FPGA core and allow building
0027 sandbox-specific client drivers.
0028
0029 config MLX5_CORE_EN
0030 bool "Mellanox 5th generation network adapters (ConnectX series) Ethernet support"
0031 depends on NETDEVICES && ETHERNET && INET && PCI && MLX5_CORE
0032 select PAGE_POOL
0033 select DIMLIB
0034 help
0035 Ethernet support in Mellanox Technologies ConnectX-4 NIC.
0036
0037 config MLX5_EN_ARFS
0038 bool "Mellanox MLX5 ethernet accelerated receive flow steering (ARFS) support"
0039 depends on MLX5_CORE_EN && RFS_ACCEL
0040 default y
0041 help
0042 Mellanox MLX5 ethernet hardware-accelerated receive flow steering support,
0043 Enables ethernet netdevice arfs support and ntuple filtering.
0044
0045 config MLX5_EN_RXNFC
0046 bool "Mellanox MLX5 ethernet rx nfc flow steering support"
0047 depends on MLX5_CORE_EN
0048 default y
0049 help
0050 Mellanox MLX5 ethernet rx nfc flow steering support
0051 Enables ethtool receive network flow classification, which allows user defined
0052 flow rules to direct traffic into arbitrary rx queue via ethtool set/get_rxnfc
0053 API.
0054
0055 config MLX5_MPFS
0056 bool "Mellanox Technologies MLX5 MPFS support"
0057 depends on MLX5_CORE_EN
0058 default y
0059 help
0060 Mellanox Technologies Ethernet Multi-Physical Function Switch (MPFS)
0061 support in ConnectX NIC. MPFs is required for when multi-PF configuration
0062 is enabled to allow passing user configured unicast MAC addresses to the
0063 requesting PF.
0064
0065 config MLX5_ESWITCH
0066 bool "Mellanox Technologies MLX5 SRIOV E-Switch support"
0067 depends on MLX5_CORE_EN && NET_SWITCHDEV
0068 default y
0069 help
0070 Mellanox Technologies Ethernet SRIOV E-Switch support in ConnectX NIC.
0071 E-Switch provides internal SRIOV packet steering and switching for the
0072 enabled VFs and PF in two available modes:
0073 Legacy SRIOV mode (L2 mac vlan steering based).
0074 Switchdev mode (eswitch offloads).
0075
0076 config MLX5_BRIDGE
0077 bool
0078 depends on MLX5_ESWITCH && BRIDGE
0079 default y
0080 help
0081 mlx5 ConnectX offloads support for Ethernet Bridging (BRIDGE).
0082 Enable adding representors of mlx5 uplink and VF ports to Bridge and
0083 offloading rules for traffic between such ports. Supports VLANs (trunk and
0084 access modes).
0085
0086 config MLX5_CLS_ACT
0087 bool "MLX5 TC classifier action support"
0088 depends on MLX5_ESWITCH && NET_CLS_ACT
0089 default y
0090 help
0091 mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT),
0092 works in both native NIC mode and Switchdev SRIOV mode.
0093 Actions get attached to a Hardware offloaded classifiers and are
0094 invoked after a successful classification. Actions are used to
0095 overwrite the classification result, instantly drop or redirect and/or
0096 reformat packets in wire speeds without involving the host cpu.
0097
0098 If set to N, TC offloads in both NIC and switchdev modes will be disabled.
0099 If unsure, set to Y
0100
0101 config MLX5_TC_CT
0102 bool "MLX5 TC connection tracking offload support"
0103 depends on MLX5_CLS_ACT && NF_FLOW_TABLE && NET_ACT_CT && NET_TC_SKB_EXT
0104 default y
0105 help
0106 Say Y here if you want to support offloading connection tracking rules
0107 via tc ct action.
0108
0109 If unsure, set to Y
0110
0111 config MLX5_TC_SAMPLE
0112 bool "MLX5 TC sample offload support"
0113 depends on MLX5_CLS_ACT
0114 depends on PSAMPLE=y || PSAMPLE=n || MLX5_CORE=m
0115 default y
0116 help
0117 Say Y here if you want to support offloading sample rules via tc
0118 sample action.
0119 If set to N, will not be able to configure tc rules with sample
0120 action.
0121
0122 If unsure, set to Y
0123
0124 config MLX5_CORE_EN_DCB
0125 bool "Data Center Bridging (DCB) Support"
0126 default y
0127 depends on MLX5_CORE_EN && DCB
0128 help
0129 Say Y here if you want to use Data Center Bridging (DCB) in the
0130 driver.
0131 If set to N, will not be able to configure QoS and ratelimit attributes.
0132 This flag is depended on the kernel's DCB support.
0133
0134 If unsure, set to Y
0135
0136 config MLX5_CORE_IPOIB
0137 bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support"
0138 depends on MLX5_CORE_EN
0139 help
0140 MLX5 IPoIB offloads & acceleration support.
0141
0142 config MLX5_EN_IPSEC
0143 bool "Mellanox Technologies IPsec Connect-X support"
0144 depends on MLX5_CORE_EN
0145 depends on XFRM_OFFLOAD
0146 depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
0147 help
0148 Build support for IPsec cryptography-offload acceleration in the NIC.
0149
0150 config MLX5_EN_TLS
0151 bool "Mellanox Technologies TLS Connect-X support"
0152 depends on TLS_DEVICE
0153 depends on TLS=y || MLX5_CORE=m
0154 depends on MLX5_CORE_EN
0155 help
0156 Build support for TLS cryptography-offload acceleration in the NIC.
0157
0158 config MLX5_SW_STEERING
0159 bool "Mellanox Technologies software-managed steering"
0160 depends on MLX5_CORE_EN && MLX5_ESWITCH
0161 select CRC32
0162 default y
0163 help
0164 Build support for software-managed steering in the NIC.
0165
0166 config MLX5_SF
0167 bool "Mellanox Technologies subfunction device support using auxiliary device"
0168 depends on MLX5_CORE && MLX5_CORE_EN
0169 help
0170 Build support for subfuction device in the NIC. A Mellanox subfunction
0171 device can support RDMA, netdevice and vdpa device.
0172 It is similar to a SRIOV VF but it doesn't require SRIOV support.
0173
0174 config MLX5_SF_MANAGER
0175 bool
0176 depends on MLX5_SF && MLX5_ESWITCH
0177 default y
0178 help
0179 Build support for subfuction port in the NIC. A Mellanox subfunction
0180 port is managed through devlink. A subfunction supports RDMA, netdevice
0181 and vdpa device. It is similar to a SRIOV VF but it doesn't require
0182 SRIOV support.