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