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