[dpdk-dev] [PATCH] vhost: add interface name to virtio-net struct

Xie, Huawei huawei.xie at intel.com
Thu Dec 18 18:16:33 CET 2014


> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Loftus, Ciara
> Sent: Thursday, December 18, 2014 10:02 AM
> To: Thomas Monjalon
> Cc: dev at dpdk.org; Anthony Fee
> Subject: Re: [dpdk-dev] [PATCH] vhost: add interface name to virtio-net struct
> 
> Hi Thomas,
> 
> A basic vHost use case will work, for example a single Virtual Machine with a
> vHost port. However normal vSwitching use cases will require the use of multiple
> vHost ports and multiple VMs. With that in mind, it is essential that the vSwitch
> has some way of knowing which vHost port it is sending to and receiving packets
> from. This patch resolves this issue by exposing the tap device name of the
> vHost device. Without that information we cannot determine the particular
> vHost port to send/receive from, which in the context of switching, is a critical
> problem.


For example, in qemu command line, we specify tap device "tap1" for virtio device in "VM1", and "tap2" for virtio device in "VM2".
vSwitch wants to expose the tap device name in the virtio_net device structure otherwise it doesn't know the virtio_device it gets
is for which VM.
The mac address isn't enough for vSwitch.
The problem is for vhost-user, we have no such kind of identity, unless we create socket for each virtio device, and use the socket
path string.

> 
> Thanks,
> Ciara
> 
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> Sent: Thursday, December 18, 2014 3:33 PM
> To: Loftus, Ciara
> Cc: dev at dpdk.org; Anthony Fee
> Subject: Re: [dpdk-dev] [PATCH] vhost: add interface name to virtio-net struct
> 
> 2014-12-18 14:55, ciara.loftus at intel.com:
> > This patch fixes the issue whereby when using userspace vhost ports in
> > the context of vSwitching, the name provided to the hypervisor/QEMU of
> > the vhost tap device needs to be exposed in the library, in order for
> > the vSwitch to be able to direct packets to the correct device.
> 
> Do you mean that vhost was not working at all?
> Please precise the context and how it is critical.
> More informations are needed to understand wether it should be merged in
> release 1.8.0 or not.
> 
> > --- a/lib/librte_vhost/rte_virtio_net.h
> > +++ b/lib/librte_vhost/rte_virtio_net.h
> > @@ -96,6 +96,7 @@ struct virtio_net {
> >  	uint64_t		features;	/**< Negotiated feature set.
> */
> >  	uint64_t		device_fh;	/**< device identifier. */
> >  	uint32_t		flags;		/**< Device flags. Only used to
> check if device is running on data core. */
> > +	char			ifname[32];	/** Name of the tap device
> **/
> 
> Wrong comment style.
> 
> --
> Thomas 



More information about the dev mailing list