[dpdk-stable] [PATCH 00/15] Introduce Virtio vDPA driver
Maxime Coquelin
maxime.coquelin at redhat.com
Thu Aug 29 09:59:45 CEST 2019
vDPA allows to offload Virtio Datapath processing by supported
NICs, like IFCVF for example.
The control path has to be handled by a dedicated vDPA driver,
so that it can translate Vhost-user protocol requests to
proprietary NICs registers accesses.
This driver is the vDPA driver for Virtio devices, meaning
that Vhost-user protocol requests get translated to Virtio
registers accesses as per defined in the Virtio spec.
Basically, it can be used within a guest with a para-virtualized
Virtio-net device, or even with a full Virtio HW offload NIC
directly on host.
Amongst the main features, all currently supported Virtio spec
versions are supported (split & packed rings, but only tested
with split ring for now) and also multiqueue support is added
by implementing the cotnrol virtqueue in the driver.
The structure of this driver is heavily based on IFCVF vDPA.
Maxime Coquelin (15):
vhost: remove vhost kernel header inclusion
vhost: configure vDPA as soon as the device is ready
net/virtio: move control path fonctions in virtqueue file
net/virtio: add virtio PCI subsystem device ID declaration
net/virtio: save notify bar ID in virtio HW struct
net/virtio: add skeleton for virtio vDPA driver
net/virtio: add vDPA ops to get number of queue
net/virtio: add virtio vDPA op to get features
net/virtio: add virtio vDPA op to get protocol features
net/virtio: add vDPA op to configure and start the device
net/virtio: add vDPA op to stop and close the device
net/virtio: add vDPA op to set features
net/virtio: add vDPA ops to get VFIO FDs
net/virtio: add vDPA op to get notification area
doc: add documentation for Virtio vDPA driver
config/common_linux | 1 +
doc/guides/nics/index.rst | 1 +
doc/guides/nics/virtio_vdpa.rst | 45 ++
drivers/net/ifc/ifcvf_vdpa.c | 1 +
drivers/net/virtio/Makefile | 4 +
drivers/net/virtio/meson.build | 3 +-
drivers/net/virtio/virtio_ethdev.c | 252 --------
drivers/net/virtio/virtio_pci.c | 6 +-
drivers/net/virtio/virtio_pci.h | 2 +
drivers/net/virtio/virtio_vdpa.c | 918 +++++++++++++++++++++++++++++
drivers/net/virtio/virtqueue.c | 255 ++++++++
drivers/net/virtio/virtqueue.h | 5 +
lib/librte_vhost/rte_vdpa.h | 1 -
lib/librte_vhost/rte_vhost.h | 9 +-
lib/librte_vhost/vhost_user.c | 3 +-
15 files changed, 1243 insertions(+), 263 deletions(-)
create mode 100644 doc/guides/nics/virtio_vdpa.rst
create mode 100644 drivers/net/virtio/virtio_vdpa.c
--
2.21.0
More information about the stable
mailing list