vhost: add flag for built-in virtio driver
authorStefan Hajnoczi <stefanha@redhat.com>
Wed, 31 Jan 2018 17:46:50 +0000 (17:46 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 5 Feb 2018 14:11:07 +0000 (15:11 +0100)
commit1c717af4c699e60081feb1d645f86189551f9a9c
tree2e560031744c2c638ccfbd48600026e8db89ce11
parentcd230a3ed985894efafe326cbbf5db7f9e45b25c
vhost: add flag for built-in virtio driver

The librte_vhost API is used in two ways:
1. As a vhost net device backend via rte_vhost_enqueue/dequeue_burst().
2. As a library for implementing vhost device backends.

There is no distinction between the two at the API level or in the
librte_vhost implementation.  For example, device state is kept in
"struct virtio_net" regardless of whether this is actually a net device
backend or whether the built-in virtio_net.c driver is in use.

The virtio_net.c driver should be a librte_vhost API client just like
the vhost-scsi code and have no special access to vhost.h internals.
Unfortunately, fixing this requires significant librte_vhost API
changes.

This patch takes a different approach: keep the librte_vhost API
unchanged but track whether the built-in virtio_net.c driver is in use.
See the next patch for a bug fix that requires knowledge of whether
virtio_net.c is in use.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
lib/librte_vhost/socket.c
lib/librte_vhost/vhost.c
lib/librte_vhost/vhost.h
lib/librte_vhost/virtio_net.c