Extend the <rte_vhost.h> API to support the virtio-vhost-user transport
as an alternative to the AF_UNIX transport.  The caller provides a PCI
DomBDF address:

  rte_vhost_driver_register("0000:00:04.0",
                            RTE_VHOST_USER_VIRTIO_TRANSPORT);

Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
---
 drivers/librte_vhost/rte_vhost.h | 1 +
 drivers/librte_vhost/socket.c    | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/drivers/librte_vhost/rte_vhost.h b/drivers/librte_vhost/rte_vhost.h
index d33206997..d91d8d992 100644
--- a/drivers/librte_vhost/rte_vhost.h
+++ b/drivers/librte_vhost/rte_vhost.h
@@ -28,6 +28,7 @@ extern "C" {
 #define RTE_VHOST_USER_NO_RECONNECT    (1ULL << 1)
 #define RTE_VHOST_USER_DEQUEUE_ZERO_COPY       (1ULL << 2)
 #define RTE_VHOST_USER_IOMMU_SUPPORT   (1ULL << 3)
+#define RTE_VHOST_USER_VIRTIO_TRANSPORT        (1ULL << 4)
 
 /**
  * Information relating to memory regions including offsets to
diff --git a/drivers/librte_vhost/socket.c b/drivers/librte_vhost/socket.c
index c46328950..265a014cf 100644
--- a/drivers/librte_vhost/socket.c
+++ b/drivers/librte_vhost/socket.c
@@ -132,6 +132,9 @@ rte_vhost_driver_register(const char *path, uint64_t flags)
        struct vhost_user_socket *vsocket;
        const struct vhost_transport_ops *trans_ops = &af_unix_trans_ops;
 
+       if (flags & RTE_VHOST_USER_VIRTIO_TRANSPORT)
+               trans_ops = &virtio_vhost_user_trans_ops;
+
        if (!path)
                return -1;
 
-- 
2.14.3

Reply via email to