[libvirt] libvirt not wanting to read back its own interface XML

Hi, I'm trying to give libvirt knowlegde of a VLAN interface that is configured by a different means and not by libvirt. To figure out the syntax, I created a VLAN interface through virt-manager and dumped out the XML: <interface type='vlan' name='ens3.180'> <protocol family='ipv6'> <ip address='2a01:4f8:150:436c::55:100' prefix='64'/> <ip address='fe80::5054:ff:fe30:e0d1' prefix='64'/> </protocol> <link speed='4294967295' state='up'/> <vlan tag='180'> <interface name='ens3'/> </vlan> </interface> I then removed the Interface in virt-manager and tried to have libvirt read back its own XML. [12/784]mh@testsid85:~ $ virsh iface-dumpxml ens3.180 > ens3.180.xml [13/785]mh@testsid85:~ $ virsh iface-define ens3.180.xml error: Failed to define interface from ens3.180.xml error: XML error: could not get interface XML description: XML invalid - Expecting an element start, got nothing What is going on here? How do I define a VLAN interface via XML? Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421

On Wed, Oct 18, 2017 at 04:48:45PM +0200, Marc Haber wrote:
Hi,
I'm trying to give libvirt knowlegde of a VLAN interface that is configured by a different means and not by libvirt. To figure out the syntax, I created a VLAN interface through virt-manager and dumped out the XML:
<interface type='vlan' name='ens3.180'> <protocol family='ipv6'> <ip address='2a01:4f8:150:436c::55:100' prefix='64'/> <ip address='fe80::5054:ff:fe30:e0d1' prefix='64'/> </protocol> <link speed='4294967295' state='up'/> <vlan tag='180'> <interface name='ens3'/> </vlan> </interface>
I then removed the Interface in virt-manager and tried to have libvirt read back its own XML.
[12/784]mh@testsid85:~ $ virsh iface-dumpxml ens3.180 > ens3.180.xml [13/785]mh@testsid85:~ $ virsh iface-define ens3.180.xml error: Failed to define interface from ens3.180.xml error: XML error: could not get interface XML description: XML invalid - Expecting an element start, got nothing
What is going on here? How do I define a VLAN interface via XML?
Hm, weird. Before looking at where the problem is, it could be easier to find if we knew how virt-manager was able to define this. Can you look at the logs for the XML from virt-manager?
Greetings Marc
-- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

On Thu, Oct 19, 2017 at 10:08:37AM +0200, Martin Kletzander wrote:
On Wed, Oct 18, 2017 at 04:48:45PM +0200, Marc Haber wrote:
Hi,
I'm trying to give libvirt knowlegde of a VLAN interface that is configured by a different means and not by libvirt. To figure out the syntax, I created a VLAN interface through virt-manager and dumped out the XML:
<interface type='vlan' name='ens3.180'> <protocol family='ipv6'> <ip address='2a01:4f8:150:436c::55:100' prefix='64'/> <ip address='fe80::5054:ff:fe30:e0d1' prefix='64'/> </protocol> <link speed='4294967295' state='up'/> <vlan tag='180'> <interface name='ens3'/> </vlan> </interface>
I then removed the Interface in virt-manager and tried to have libvirt read back its own XML.
[12/784]mh@testsid85:~ $ virsh iface-dumpxml ens3.180 > ens3.180.xml [13/785]mh@testsid85:~ $ virsh iface-define ens3.180.xml error: Failed to define interface from ens3.180.xml error: XML error: could not get interface XML description: XML invalid - Expecting an element start, got nothing
What is going on here? How do I define a VLAN interface via XML?
Hm, weird. Before looking at where the problem is, it could be easier to find if we knew how virt-manager was able to define this. Can you look at the logs for the XML from virt-manager?
[Mi, 18 Okt 2017 16:38:57 virt-manager 31596] DEBUG (interface:253) Creating int erface 'ens3.180' with xml: <interface type="vlan" name="ens3.180"> <start mode="onboot"/> <vlan tag="180"> <interface name="ens3"/> </vlan> </interface> This directly opens the next issue: I explicitly asked virt-manager to do "no configuration" of IPv6, which seems to be the case in the XML given to libvirt by virt-manager, but still, the libvirt-generated XML contains the IPv6 configuration of the interface (which it shouldn't, IMO). I tried iface-define with <interface type='vlan' name='ens3.180'> <link speed='4294967295' state='up'/> <vlan tag='180'> <interface name='ens3'/> </vlan> </interface> also with the link speed clause removed, but the error message remains the same. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421

On 10/18/2017 04:48 PM, Marc Haber wrote:
Hi,
I'm trying to give libvirt knowlegde of a VLAN interface that is configured by a different means and not by libvirt. To figure out the syntax, I created a VLAN interface through virt-manager and dumped out the XML:
<interface type='vlan' name='ens3.180'> <protocol family='ipv6'> <ip address='2a01:4f8:150:436c::55:100' prefix='64'/> <ip address='fe80::5054:ff:fe30:e0d1' prefix='64'/> </protocol> <link speed='4294967295' state='up'/> <vlan tag='180'> <interface name='ens3'/> </vlan> </interface>
I then removed the Interface in virt-manager and tried to have libvirt read back its own XML.
[12/784]mh@testsid85:~ $ virsh iface-dumpxml ens3.180 > ens3.180.xml [13/785]mh@testsid85:~ $ virsh iface-define ens3.180.xml error: Failed to define interface from ens3.180.xml error: XML error: could not get interface XML description: XML invalid - Expecting an element start, got nothing
What is going on here? How do I define a VLAN interface via XML?
This is weird. However, I'm unable to reproduce with the latest libvirt. What's your version? Have you tried the latest one? Michal

On Thu, Oct 19, 2017 at 11:52:34AM +0200, Michal Privoznik wrote:
On 10/18/2017 04:48 PM, Marc Haber wrote:
Hi,
I'm trying to give libvirt knowlegde of a VLAN interface that is configured by a different means and not by libvirt. To figure out the syntax, I created a VLAN interface through virt-manager and dumped out the XML:
<interface type='vlan' name='ens3.180'> <protocol family='ipv6'> <ip address='2a01:4f8:150:436c::55:100' prefix='64'/> <ip address='fe80::5054:ff:fe30:e0d1' prefix='64'/> </protocol> <link speed='4294967295' state='up'/> <vlan tag='180'> <interface name='ens3'/> </vlan> </interface>
I then removed the Interface in virt-manager and tried to have libvirt read back its own XML.
[12/784]mh@testsid85:~ $ virsh iface-dumpxml ens3.180 > ens3.180.xml [13/785]mh@testsid85:~ $ virsh iface-define ens3.180.xml error: Failed to define interface from ens3.180.xml error: XML error: could not get interface XML description: XML invalid - Expecting an element start, got nothing
What is going on here? How do I define a VLAN interface via XML?
This is weird. However, I'm unable to reproduce with the latest libvirt. What's your version? Have you tried the latest one?
I have Debian unstable, libvirt 3.8.0. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421

On 10/19/2017 12:10 PM, Marc Haber wrote:
On Thu, Oct 19, 2017 at 11:52:34AM +0200, Michal Privoznik wrote:
On 10/18/2017 04:48 PM, Marc Haber wrote:
Hi,
I'm trying to give libvirt knowlegde of a VLAN interface that is configured by a different means and not by libvirt. To figure out the syntax, I created a VLAN interface through virt-manager and dumped out the XML:
<interface type='vlan' name='ens3.180'> <protocol family='ipv6'> <ip address='2a01:4f8:150:436c::55:100' prefix='64'/> <ip address='fe80::5054:ff:fe30:e0d1' prefix='64'/> </protocol> <link speed='4294967295' state='up'/> <vlan tag='180'> <interface name='ens3'/> </vlan> </interface>>>> I then removed the Interface in virt-manager and tried to have libvirt read back its own XML.
[12/784]mh@testsid85:~ $ virsh iface-dumpxml ens3.180 > ens3.180.xml [13/785]mh@testsid85:~ $ virsh iface-define ens3.180.xml error: Failed to define interface from ens3.180.xml error: XML error: could not get interface XML description: XML invalid - Expecting an element start, got nothing
What is going on here? How do I define a VLAN interface via XML?
This is weird. However, I'm unable to reproduce with the latest libvirt. What's your version? Have you tried the latest one?
I have Debian unstable, libvirt 3.8.0.
Aha! the thing is, you're using netcf backend while I'm using the udev one. This error message comes from netcf. It's a netcf's bug. CCing Laine who should know more. Michal

On Thu, Oct 19, 2017 at 01:37:45PM +0200, Michal Privoznik wrote:
Aha! the thing is, you're using netcf backend while I'm using the udev one. This error message comes from netcf. It's a netcf's bug. CCing Laine who should know more.
Where can I read up about the different backends available? Is it a compile-time setting or can I configure that on my system? Actually, I'm doing the configuration outside of libvirt anyway (with systemd-networkd), I just want the interface to be in virt-manager's selection dropdown, so I don't care too much about netcf. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421

Hi Marc, On Thu, Oct 19, 2017 at 02:41:31PM +0200, Marc Haber wrote:
On Thu, Oct 19, 2017 at 01:37:45PM +0200, Michal Privoznik wrote:
Aha! the thing is, you're using netcf backend while I'm using the udev one. This error message comes from netcf. It's a netcf's bug. CCing Laine who should know more.
Where can I read up about the different backends available? Is it a compile-time setting or can I configure that on my system?
Actually, I'm doing the configuration outside of libvirt anyway (with systemd-networkd), I just want the interface to be in virt-manager's selection dropdown, so I don't care too much about netcf.
https://bugs.debian.org/cgi-bin/pkgreport.cgi?archive=0;dist=unstable;orderi... doesn't look that bad. Not following includes is troublesome (#875762) but shouldn't be too hard to fix. Can you file bugs for other issues you're seeing? This would make it simpler to decide whether we disable netcf support or fix the issues that are there. Cheers, -- Guido
Greetings Marc
-- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

Hi Guido, I didn't mean to accuse Debian of doing a bad job with netcf. On Sun, Oct 22, 2017 at 09:26:31AM +0200, Guido Günther wrote:
On Thu, Oct 19, 2017 at 02:41:31PM +0200, Marc Haber wrote:
On Thu, Oct 19, 2017 at 01:37:45PM +0200, Michal Privoznik wrote:
Aha! the thing is, you're using netcf backend while I'm using the udev one. This error message comes from netcf. It's a netcf's bug. CCing Laine who should know more.
Where can I read up about the different backends available? Is it a compile-time setting or can I configure that on my system?
Actually, I'm doing the configuration outside of libvirt anyway (with systemd-networkd), I just want the interface to be in virt-manager's selection dropdown, so I don't care too much about netcf.
https://bugs.debian.org/cgi-bin/pkgreport.cgi?archive=0;dist=unstable;orderi...
doesn't look that bad. Not following includes is troublesome (#875762) but shouldn't be too hard to fix. Can you file bugs for other issues you're seeing? This would make it simpler to decide whether we disable netcf support or fix the issues that are there.
It is just that I have configuring my networks in special ways for nearly two decades, using the "manual" method of ifupdown way before it was officially introduced into the Debian packages (#88948, sic!), and am therefore used to other packages doing network configuration not playing around pretty well on my systems. And I have stopped using ifupdown entirely with jessie, and have migrated over to systemd-networkd. My expertise with current ifupdown is to limited to be of any use. I would love to see systemd-networkd support for netcf, though. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421

Hi Marc, On Sun, Oct 22, 2017 at 10:37:44AM +0200, Marc Haber wrote:
Hi Guido,
I didn't mean to accuse Debian of doing a bad job with netcf.
I didn't read it like that either.
On Sun, Oct 22, 2017 at 09:26:31AM +0200, Guido Günther wrote:
On Thu, Oct 19, 2017 at 02:41:31PM +0200, Marc Haber wrote:
On Thu, Oct 19, 2017 at 01:37:45PM +0200, Michal Privoznik wrote:
Aha! the thing is, you're using netcf backend while I'm using the udev one. This error message comes from netcf. It's a netcf's bug. CCing Laine who should know more.
Where can I read up about the different backends available? Is it a compile-time setting or can I configure that on my system?
Actually, I'm doing the configuration outside of libvirt anyway (with systemd-networkd), I just want the interface to be in virt-manager's selection dropdown, so I don't care too much about netcf.
https://bugs.debian.org/cgi-bin/pkgreport.cgi?archive=0;dist=unstable;orderi...
doesn't look that bad. Not following includes is troublesome (#875762) but shouldn't be too hard to fix. Can you file bugs for other issues you're seeing? This would make it simpler to decide whether we disable netcf support or fix the issues that are there.
It is just that I have configuring my networks in special ways for nearly two decades, using the "manual" method of ifupdown way before it was officially introduced into the Debian packages (#88948, sic!), and am therefore used to other packages doing network configuration not playing around pretty well on my systems.
And I have stopped using ifupdown entirely with jessie, and have migrated over to systemd-networkd. My expertise with current ifupdown is to limited to be of any use.
I would love to see systemd-networkd support for netcf, though.
That's https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859850 and I agree it would be nice but _please_ file bugs if you have netcf issues so we can either fix them in Debian or switch to the udev backend by default if we don't get around to. Cheers, -- Guido
participants (4)
-
Guido Günther
-
Marc Haber
-
Martin Kletzander
-
Michal Privoznik