1# SPDX-License-Identifier: GPL-2.0-only 2menuconfig VDPA 3 tristate "vDPA drivers" 4 depends on NET 5 help 6 Enable this module to support vDPA device that uses a 7 datapath which complies with virtio specifications with 8 vendor specific control path. 9 10if VDPA 11 12config VDPA_SIM 13 tristate "vDPA device simulator core" 14 depends on RUNTIME_TESTING_MENU && HAS_DMA 15 select DMA_OPS 16 select VHOST_RING 17 select IOMMU_IOVA 18 help 19 Enable this module to support vDPA device simulators. These devices 20 are used for testing, prototyping and development of vDPA. 21 22config VDPA_SIM_NET 23 tristate "vDPA simulator for networking device" 24 depends on VDPA_SIM 25 select GENERIC_NET_UTILS 26 help 27 vDPA networking device simulator which loops TX traffic back to RX. 28 29config VDPA_SIM_BLOCK 30 tristate "vDPA simulator for block device" 31 depends on VDPA_SIM 32 help 33 vDPA block device simulator which terminates IO request in a 34 memory buffer. 35 36config VDPA_USER 37 tristate "VDUSE (vDPA Device in Userspace) support" 38 depends on EVENTFD && MMU && HAS_DMA 39 select DMA_OPS 40 select VHOST_IOTLB 41 select IOMMU_IOVA 42 help 43 With VDUSE it is possible to emulate a vDPA Device 44 in a userspace program. 45 46config IFCVF 47 tristate "Intel IFC VF vDPA driver" 48 depends on PCI_MSI 49 help 50 This kernel module can drive Intel IFC VF NIC to offload 51 virtio dataplane traffic to hardware. 52 To compile this driver as a module, choose M here: the module will 53 be called ifcvf. 54 55config MLX5_VDPA 56 bool 57 select VHOST_IOTLB 58 help 59 Support library for Mellanox VDPA drivers. Provides code that is 60 common for all types of VDPA drivers. The following drivers are planned: 61 net, block. 62 63config MLX5_VDPA_NET 64 tristate "vDPA driver for ConnectX devices" 65 select MLX5_VDPA 66 select VHOST_RING 67 depends on MLX5_CORE 68 help 69 VDPA network driver for ConnectX6 and newer. Provides offloading 70 of virtio net datapath such that descriptors put on the ring will 71 be executed by the hardware. It also supports a variety of stateless 72 offloads depending on the actual device used and firmware version. 73 74config MLX5_VDPA_STEERING_DEBUG 75 bool "expose steering counters on debugfs" 76 select MLX5_VDPA 77 help 78 Expose RX steering counters in debugfs to aid in debugging. For each VLAN 79 or non VLAN interface, two hardware counters are added to the RX flow 80 table: one for unicast and one for multicast. 81 The counters counts the number of packets and bytes and exposes them in 82 debugfs. Once can read the counters using, e.g.: 83 cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/ucast/packets 84 cat /sys/kernel/debug/mlx5/mlx5_core.sf.1/vdpa-0/rx/untagged/mcast/bytes 85 86config VP_VDPA 87 tristate "Virtio PCI bridge vDPA driver" 88 select VIRTIO_PCI_LIB 89 depends on PCI_MSI 90 help 91 This kernel module bridges virtio PCI device to vDPA bus. 92 93config ALIBABA_ENI_VDPA 94 tristate "vDPA driver for Alibaba ENI" 95 select VIRTIO_PCI_LIB_LEGACY 96 depends on PCI_MSI && X86 97 help 98 VDPA driver for Alibaba ENI (Elastic Network Interface) which is built upon 99 virtio 0.9.5 specification. 100 101 config SNET_VDPA 102 tristate "SolidRun's vDPA driver for SolidNET" 103 depends on PCI_MSI && PCI_IOV && (HWMON || HWMON=n) 104 105 # This driver MAY create a HWMON device. 106 # Depending on (HWMON || HWMON=n) ensures that: 107 # If HWMON=n the driver can be compiled either as a module or built-in. 108 # If HWMON=y the driver can be compiled either as a module or built-in. 109 # If HWMON=m the driver is forced to be compiled as a module. 110 # By doing so, IS_ENABLED can be used instead of IS_REACHABLE 111 112 help 113 vDPA driver for SolidNET DPU. 114 With this driver, the VirtIO dataplane can be 115 offloaded to a SolidNET DPU. 116 This driver includes a HW monitor device that 117 reads health values from the DPU. 118 119endif # VDPA 120