# SPDX-License-Identifier: GPL-2.0-only menuconfig VDPA tristate "vDPA drivers" depends on NET help Enable this module to support vDPA device that uses a datapath which complies with virtio specifications with vendor specific control path. if VDPA config VDPA_SIM tristate "vDPA device simulator core" depends on RUNTIME_TESTING_MENU select VHOST_RING select IOMMU_IOVA help Enable this module to support vDPA device simulators. These devices are used for testing, prototyping and development of vDPA. config VDPA_SIM_NET tristate "vDPA simulator for networking device" depends on VDPA_SIM select GENERIC_NET_UTILS help vDPA networking device simulator which loops TX traffic back to RX. config VDPA_SIM_BLOCK tristate "vDPA simulator for block device" depends on VDPA_SIM help vDPA block device simulator which terminates IO request in a memory buffer. config VDPA_USER tristate "VDUSE (vDPA Device in Userspace) support" depends on EVENTFD && MMU && HAS_DMA # # This driver incorrectly tries to override the dma_ops. It should # never have done that, but for now keep it working on architectures # that use dma ops # depends on ARCH_HAS_DMA_OPS select VHOST_IOTLB select IOMMU_IOVA help With VDUSE it is possible to emulate a vDPA Device in a userspace program. config IFCVF tristate "Intel IFC VF vDPA driver" depends on PCI_MSI help This kernel module can drive Intel IFC VF NIC to offload virtio dataplane traffic to hardware. To compile this driver as a module, choose M here: the module will be called ifcvf. config MLX5_VDPA bool select VHOST_IOTLB help Support library for Mellanox VDPA drivers. Provides code that is common for all types of VDPA drivers. The following drivers are planned: net, block. config MLX5_VDPA_NET tristate "vDPA driver for ConnectX devices" select MLX5_VDPA select VHOST_RING depends on MLX5_CORE help VDPA network driver for ConnectX6 and newer. Provides offloading of virtio net datapath such that descriptors put on the ring will be executed by the hardware. It also supports a variety of stateless offloads depending on the actual device used and firmware version. config MLX5_VDPA_STEERING_DEBUG bool "expose steering counters on debugfs" select MLX5_VDPA help Expose RX steering counters in debugfs to aid in debugging. For each VLAN or non VLAN interface, two hardware counters are added to the RX flow table: one for unicast and one for multicast. The counters counts the number of packets and bytes and exposes them in debugfs. Once can read the counters using, e.g.: cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes config VP_VDPA tristate "Virtio PCI bridge vDPA driver" select VIRTIO_PCI_LIB depends on PCI_MSI help This kernel module bridges virtio PCI device to vDPA bus. config ALIBABA_ENI_VDPA tristate "vDPA driver for Alibaba ENI" select VIRTIO_PCI_LIB_LEGACY depends on PCI_MSI && X86 help VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon virtio 0.9.5 specification. config SNET_VDPA tristate "SolidRun's vDPA driver for SolidNET" depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n) # This driver MAY create a HWMON device. # Depending on (HWMON || HWMON=n) ensures that: # If HWMON=n the driver can be compiled either as a module or built-in. # If HWMON=y the driver can be compiled either as a module or built-in. # If HWMON=m the driver is forced to be compiled as a module. # By doing so, IS_ENABLED can be used instead of IS_REACHABLE help vDPA driver for SolidNET DPU. With this driver, the VirtIO dataplane can be offloaded to a SolidNET DPU. This driver includes a HW monitor device that reads health values from the DPU. config PDS_VDPA tristate "vDPA driver for AMD/Pensando DSC devices" select VIRTIO_PCI_LIB depends on PCI_MSI depends on PDS_CORE help vDPA network driver for AMD/Pensando's PDS Core devices. With this driver, the VirtIO dataplane can be offloaded to an AMD/Pensando DSC device. config OCTEONEP_VDPA tristate "vDPA driver for Octeon DPU devices" depends on m depends on PCI_MSI help This is a vDPA driver designed for Marvell's Octeon DPU devices. This driver enables the offloading of the VirtIO dataplane to an Octeon DPU device. Please note that this driver must be built as a module and it cannot be loaded until the Octeon emulation software is running. endif # VDPA