Hello, On Thu, Apr 21, 2016 at 4:56 AM, Jianfeng Tan <jianfeng.tan at intel.com> wrote: > Add a new virtual device named eth_cvio, it can be used just like > eth_ring, eth_null, etc. > > Configured parameters include: > - rx (optional, 1 by default), number of rx, not used for now. > - tx (optional, 1 by default), number of tx, not used for now. > - cq (optional, 0 by default), not supported for now. > - mac (optional), random value will be given if not specified. > - queue_size (optional, 256 by default), size of virtqueue. > - path (madatory), path of vhost, depends on the file type, vhost > user if the given path points to a unix socket; vhost-net if the > given path points to a char device. > - ifname (optional), specify the name of backend tap device; only > valid when backend is vhost-net. > > The major difference with original virtio for vm is that, here we use > virtual addr instead of physical addr for vhost to calculate relative > address. > > When enable CONFIG_RTE_VIRTIO_VDEV (enabled by default), the compiled > library can be used in both VM and container environment.
This implementation heavily relies on dev_type to keep as much code shared between pci / vdev path as possible. virtio code relies on drv_flags (even updating it while this should be per-device). So first, virtio should rely on dev_flags. The rest needs to be astracted in some virtio ops ? Thanks. -- David Marchand