vhost-vDPA is a new vhost backend type introduced by vDPA kernel framework, which provides abstruction to the vDPA devices and exposes to userspace a unified control interface through char devs.
This patch set adds vhost-vdpa backend type to the virtio_user. A set of vhost-vdpa specific ops callbacks are attached to the virtio_user according to the runtime dynamic check result of the backend type. DMA memory map/unmap callbacks are added to both vdev bus driver and virtio_user pmd to support address mapping. In addition, minor fixes to existing virtio control path are also implemented to make the new backend work. This is a collaborative work done with Patrick Fu from Intel and Adrian Moreno from Red Hat. Thanks to them for their contributions. The series has been tested with vdpasim and Intel IFC Kernel vDPA drivers, and more lightly with Mellanox mlx5_vdpa on ConnectX-6 Dx. Next revision will contains some clean-up for the backend type handling. Maxime Coquelin (7): bus/vdev: add DMA mapping ops net/virtio: introduce DMA ops net/virtio: introduce Vhost-vDPA backend type net/virtio: adapt Virtio-user status size net/virtio: check protocol feature in user backend net/virtio: split virtio-user start net/virtio: introduce Vhost-vDPA backend drivers/bus/vdev/rte_bus_vdev.h | 46 ++- drivers/bus/vdev/vdev.c | 52 +++ drivers/net/virtio/meson.build | 1 + drivers/net/virtio/virtio_user/vhost.h | 5 + drivers/net/virtio/virtio_user/vhost_user.c | 6 +- drivers/net/virtio/virtio_user/vhost_vdpa.c | 310 ++++++++++++++++++ .../net/virtio/virtio_user/virtio_user_dev.c | 163 ++++++--- .../net/virtio/virtio_user/virtio_user_dev.h | 11 +- drivers/net/virtio/virtio_user_ethdev.c | 61 +++- 9 files changed, 599 insertions(+), 56 deletions(-) create mode 100644 drivers/net/virtio/virtio_user/vhost_vdpa.c -- 2.26.2