51a8f9d7f5
This commit includes: 1) The driver to manage the controlplane over vDPA bus. 2) A HW monitor device to read health values from the DPU. Signed-off-by: Alvaro Karsz <alvaro.karsz@solid-run.com> Acked-by: Jason Wang <jasowang@redhat.com> Message-Id: <20230110165638.123745-4-alvaro.karsz@solid-run.com> Message-Id: <20230209075128.78915-1-alvaro.karsz@solid-run.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
120 lines
3.7 KiB
Plaintext
120 lines
3.7 KiB
Plaintext
# 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 && HAS_DMA
|
|
select DMA_OPS
|
|
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
|
|
select 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.
|
|
|
|
endif # VDPA
|