[libvirt] [PATCH v3 2/2] qemu: Automaticly create tap device for VIR_DOMAIN_NET_TYPE_ETHERNET
Daniel P. Berrange
berrange at redhat.com
Mon Dec 8 10:10:56 UTC 2014
On Fri, Dec 05, 2014 at 11:37:05PM +0000, Anirban Chakraborty wrote:
>
>
> On 12/5/14, 10:43 AM, "Laine Stump" <laine at laine.org> wrote:
>
> >On 12/05/2014 06:12 AM, Michal Privoznik wrote:
> >> @@ -7374,7 +7399,8 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
> >> }
> >>
> >> if (actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
> >> - actualType == VIR_DOMAIN_NET_TYPE_BRIDGE) {
> >> + actualType == VIR_DOMAIN_NET_TYPE_BRIDGE ||
> >> + actualType == VIR_DOMAIN_NET_TYPE_ETHERNET) {
> >> tapfdSize = net->driver.virtio.queues;
> >> if (!tapfdSize)
> >> tapfdSize = 1;
> >
> >So this patch causes libvirt to *always* create a tap device in the
> >traditional manner for type='ethernet'. I wonder if we can safely do
> >this without unknowingly breaking some strange functionality. In
> >particular, what if someone is using type='ethernet' and a script to
> >create some *other* kind of device that outwardly appears to be a tap
> >device, but is created in a different manner - currently you can do this
> >by using type='ethernet' and calling your strange "create my
> >Franken-tap" command from the script. Once this patch is in, you'll no
> >longer be able to do this.
> >
> >(As a matter of fact, I'm getting some sort of phantom memory about
> >someone doing that for some different kind of virtual switch, or
> >possibly some piece of hardware. I can't remember the details though,
> >and it's possible that I'm mistaken - maybe they *were* just creating a
> >standard tap device, but then doing strange things to it.)
>
> In Open Contrail (www.opencontrail.org), we use this feature where tap
> interface is created first, so that we know the name of the tap device a
> priori, before creating the vm. So, this patch will break existing code.
Do you actally pre-create the TAP device though, or merely ask for a
particular choice of name. AFAIK, then using type=ethernet, QEMU
will always attempt to create the TAP device itself, honouring any
name given. Basically whatever QEMU does for type=ethernet, libvirt
should copy in a 100% functionally equivalent manner. We simply want
to move the functionality up a level. So there should be no regressions
if done correctly.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list