linux/drivers/net/ethernet/mellanox/mlx5/core/Kconfig
<<
>>
Prefs
   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 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
  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        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_BRIDGE
  81        bool
  82        depends on MLX5_ESWITCH && BRIDGE
  83        default y
  84        help
  85          mlx5 ConnectX offloads support for Ethernet Bridging (BRIDGE).
  86          Enable adding representors of mlx5 uplink and VF ports to Bridge and
  87          offloading rules for traffic between such ports. Supports VLANs (trunk and
  88          access modes).
  89
  90config MLX5_CLS_ACT
  91        bool "MLX5 TC classifier action support"
  92        depends on MLX5_ESWITCH && NET_CLS_ACT
  93        default y
  94        help
  95          mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT),
  96          works in both native NIC mode and Switchdev SRIOV mode.
  97          Actions get attached to a Hardware offloaded classifiers and are
  98          invoked after a successful classification. Actions are used to
  99          overwrite the classification result, instantly drop or redirect and/or
 100          reformat packets in wire speeds without involving the host cpu.
 101
 102          If set to N, TC offloads in both NIC and switchdev modes will be disabled.
 103          If unsure, set to Y
 104
 105config MLX5_TC_CT
 106        bool "MLX5 TC connection tracking offload support"
 107        depends on MLX5_CLS_ACT && NF_FLOW_TABLE && NET_ACT_CT && NET_TC_SKB_EXT
 108        default y
 109        help
 110          Say Y here if you want to support offloading connection tracking rules
 111          via tc ct action.
 112
 113          If unsure, set to Y
 114
 115config MLX5_TC_SAMPLE
 116        bool "MLX5 TC sample offload support"
 117        depends on MLX5_CLS_ACT
 118        default y
 119        help
 120          Say Y here if you want to support offloading sample rules via tc
 121          sample action.
 122          If set to N, will not be able to configure tc rules with sample
 123          action.
 124
 125          If unsure, set to Y
 126
 127config MLX5_CORE_EN_DCB
 128        bool "Data Center Bridging (DCB) Support"
 129        default y
 130        depends on MLX5_CORE_EN && DCB
 131        help
 132          Say Y here if you want to use Data Center Bridging (DCB) in the
 133          driver.
 134          If set to N, will not be able to configure QoS and ratelimit attributes.
 135          This flag is depended on the kernel's DCB support.
 136
 137          If unsure, set to Y
 138
 139config MLX5_CORE_IPOIB
 140        bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support"
 141        depends on MLX5_CORE_EN
 142        help
 143          MLX5 IPoIB offloads & acceleration support.
 144
 145config MLX5_FPGA_IPSEC
 146        bool "Mellanox Technologies IPsec Innova support"
 147        depends on MLX5_CORE
 148        depends on MLX5_FPGA
 149        help
 150        Build IPsec support for the Innova family of network cards by Mellanox
 151        Technologies. Innova network cards are comprised of a ConnectX chip
 152        and an FPGA chip on one board. If you select this option, the
 153        mlx5_core driver will include the Innova FPGA core and allow building
 154        sandbox-specific client drivers.
 155
 156config MLX5_IPSEC
 157        bool "Mellanox Technologies IPsec Connect-X support"
 158        depends on MLX5_CORE_EN
 159        depends on XFRM_OFFLOAD
 160        depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
 161        select MLX5_ACCEL
 162        help
 163        Build IPsec support for the Connect-X family of network cards by Mellanox
 164        Technologies.
 165        Note: If you select this option, the mlx5_core driver will include
 166        IPsec support for the Connect-X family.
 167
 168config MLX5_EN_IPSEC
 169        bool "IPSec XFRM cryptography-offload acceleration"
 170        depends on MLX5_CORE_EN
 171        depends on XFRM_OFFLOAD
 172        depends on INET_ESP_OFFLOAD || INET6_ESP_OFFLOAD
 173        depends on MLX5_FPGA_IPSEC || MLX5_IPSEC
 174        help
 175          Build support for IPsec cryptography-offload acceleration in the NIC.
 176          Note: Support for hardware with this capability needs to be selected
 177          for this option to become available.
 178
 179config MLX5_FPGA_TLS
 180        bool "Mellanox Technologies TLS Innova support"
 181        depends on TLS_DEVICE
 182        depends on TLS=y || MLX5_CORE=m
 183        depends on MLX5_CORE_EN
 184        depends on MLX5_FPGA
 185        select MLX5_EN_TLS
 186        help
 187        Build TLS support for the Innova family of network cards by Mellanox
 188        Technologies. Innova network cards are comprised of a ConnectX chip
 189        and an FPGA chip on one board. If you select this option, the
 190        mlx5_core driver will include the Innova FPGA core and allow building
 191        sandbox-specific client drivers.
 192
 193config MLX5_TLS
 194        bool "Mellanox Technologies TLS Connect-X support"
 195        depends on TLS_DEVICE
 196        depends on TLS=y || MLX5_CORE=m
 197        depends on MLX5_CORE_EN
 198        select MLX5_ACCEL
 199        select MLX5_EN_TLS
 200        help
 201        Build TLS support for the Connect-X family of network cards by Mellanox
 202        Technologies.
 203
 204config MLX5_EN_TLS
 205        bool
 206        help
 207        Build support for TLS cryptography-offload acceleration in the NIC.
 208        Note: Support for hardware with this capability needs to be selected
 209        for this option to become available.
 210
 211config MLX5_SW_STEERING
 212        bool "Mellanox Technologies software-managed steering"
 213        depends on MLX5_CORE_EN && MLX5_ESWITCH
 214        select CRC32
 215        default y
 216        help
 217        Build support for software-managed steering in the NIC.
 218
 219config MLX5_SF
 220        bool "Mellanox Technologies subfunction device support using auxiliary device"
 221        depends on MLX5_CORE && MLX5_CORE_EN
 222        help
 223        Build support for subfuction device in the NIC. A Mellanox subfunction
 224        device can support RDMA, netdevice and vdpa device.
 225        It is similar to a SRIOV VF but it doesn't require SRIOV support.
 226
 227config MLX5_SF_MANAGER
 228        bool
 229        depends on MLX5_SF && MLX5_ESWITCH
 230        default y
 231        help
 232        Build support for subfuction port in the NIC. A Mellanox subfunction
 233        port is managed through devlink.  A subfunction supports RDMA, netdevice
 234        and vdpa device. It is similar to a SRIOV VF but it doesn't require
 235        SRIOV support.
 236