[PATCH 2/3] conf, docs: Add support for dummy network interface

Daniel P. Berrangé berrange at redhat.com
Tue Aug 23 11:10:14 UTC 2022


On Tue, Aug 23, 2022 at 01:01:49PM +0200, Martin Kletzander wrote:
> On Tue, Aug 23, 2022 at 11:39:10AM +0100, Daniel P. Berrangé wrote:
> > On Thu, Aug 04, 2022 at 03:07:17PM +0200, Martin Kletzander wrote:
> > > Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> > > ---
> > >  docs/formatdomain.rst             | 24 ++++++++++++++++++++++++
> > >  src/ch/ch_monitor.c               |  1 +
> > >  src/conf/domain_conf.c            | 10 ++++++++++
> > >  src/conf/domain_conf.h            |  1 +
> > >  src/conf/netdev_bandwidth_conf.c  |  1 +
> > >  src/conf/schemas/domaincommon.rng |  7 +++++++
> > >  src/libxl/libxl_conf.c            |  1 +
> > >  src/libxl/xen_common.c            |  1 +
> > >  src/lxc/lxc_controller.c          |  1 +
> > >  src/lxc/lxc_driver.c              |  3 +++
> > >  src/lxc/lxc_process.c             |  4 +++-
> > >  src/qemu/qemu_command.c           |  4 ++++
> > >  src/qemu/qemu_domain.c            |  1 +
> > >  src/qemu/qemu_hotplug.c           |  3 +++
> > >  src/qemu/qemu_interface.c         |  2 ++
> > >  src/qemu/qemu_process.c           |  2 ++
> > >  src/qemu/qemu_validate.c          |  1 +
> > >  src/vmx/vmx.c                     |  1 +
> > >  tools/virsh-domain.c              |  1 +
> > >  19 files changed, 68 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
> > > index adfdd7b7a5ac..ed0d9c19593b 100644
> > > --- a/docs/formatdomain.rst
> > > +++ b/docs/formatdomain.rst
> > > @@ -5240,6 +5240,30 @@ which the UDP socket packets will originate from the QEMU host. :since:`Since
> > >     </devices>
> > >     ...
> > > 
> > > +Dummy network interface
> > > +^^^^^^^^^^^^^^^^^^^^^^^
> > > +
> > > +An unconnected network interface sounds pretty pointless, but can show up for
> > > +example with VMWare when libvirt does not have any more information to provide.
> > > +Two such scenarios are currently known:
> > > +
> > > +1) network interface exists, but is not connected to any existing network
> > > +2) the interface is connected to something known as VMWare Distributed Switch
> > > +
> > > +The difference between these two is not (yet?) discoverable by libvirt, so at
> > > +least the information gathered from the hypervisor is provided in the
> > > +element. :since:`Since 8.7.0`
> > > +
> > > +::
> > > +
> > > +   ...
> > > +   <devices>
> > > +     <interface type='dummy'>
> > > +       <mac address='52:54:00:22:c9:42'/>
> > > +     </interface>
> > > +   </devices>
> > > +   ...
> > 
> > Calling this 'dummy' is not very desirable naming. Especially since
> > the distributed switch config is handled separately, we're just left
> > with the case of a network interface without any host backend.
> > 
> 
> I'll gladly rename this, I don't like dummy neither, but the only thing
> I can think of is "unconnected".  At first I went with existing type=direct,
> but without <target dev=/>, only with <target managed='no'/>, but that
> did not really make sense in my opinion.
> 
> > IMHO this should just be type="none", and would likely be viable for
> > QEMU too.
> > 
> 
> Unfortunately type="none" usually (in our XML) means there is none of
> this type of device (usb, memballoon, etc.), so I don't think that would
> make sense compared to rest of our XML.

Hmm, yes, good point. Some other ideas including yours..

  type='unconnected'
  type='disconnected'
  type='unplugged'
  type='null'      (as in /dev/null alike)


> I also thought about having this in QEMU, but given how pointless this
> configuration is (and we just want to be able to express such
> configuration so that virt-v2v can convert such domains) I am not sure
> whether there's a point to adding this support to QEMU.  And looking at
> the possibilities of what could be done on QEMU cmdline (without
> modifying QEMU), we would have to create a network device which is not
> connected anywhere, but QEMU does not support this, so the only way I
> found out was adding a hubport that's not connected anywhere, something
> like:
> 
> -netdev hubport,id=test0,hubid=0 -device e1000e,netdev=test0
> 
> which emits a warning during startup:
> 
> qemu-system-x86_64: warning: hub 0 is not connected to host network
> 
> but as mentioned before, I think that's pointless to try to support it.

You don't need a hub, it is fine to just have  '-device e1000e' with
no netdev property, but yes, that too generates a warning

   qemu-system-x86_64: warning: nic e1000e.0 has no peer

The warning is trying to be helpful to detect mistakes of course,
but if someone genuinely wants a disconnected NIC it is annoying.

Anyway, there's no pressing need to implement QEMU support today,
I just wanted to point out it is relevant to more than just vmware.

> Let me know what you think, I'm fine with any changes if it supports the
> now "fixed" scenario, but naming should better be fixed before a
> release.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


More information about the libvir-list mailing list