[libvirt] [PATCH 2/2] conf: network user/direct/hostdev do not support backend tag.

Ján Tomko jtomko at redhat.com
Sun Nov 5 02:12:14 UTC 2017


On Mon, Oct 16, 2017 at 10:07:58PM -0200, Julio Faracco wrote:
>The tag backend is not supported for user/direct/hostdev network when you
>try to define them inside the domain XML. So, other ways to include devices
>cannot be permitted too. But the attach-device command is wrongly adding
>unsupported features. This commit fixes this bug.
>
>After the patch:
>
>virsh # attach-device rhel7.4 backend.xml
>error: Failed to attach device from backend.xml
>error: unsupported configuration: Custom tap device path is not supported for: user
>
>Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1480251
>
>Signed-off-by: Julio Faracco <jcfaracco at gmail.com>
>---
> src/conf/domain_conf.c   | 10 ++++++++++
> tests/qemuxml2argvtest.c |  6 +++---
> 2 files changed, 13 insertions(+), 3 deletions(-)
>
>diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
>index 0f306b7..2842533 100644
>--- a/src/conf/domain_conf.c
>+++ b/src/conf/domain_conf.c
>@@ -10518,6 +10518,16 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
>             } else if (virXMLNodeNameEqual(cur, "backend")) {
>                 char *tmp = NULL;
>
>+                /* user/direct/hostdev do not support backend */
>+                if (def->type == VIR_DOMAIN_NET_TYPE_USER ||
>+                    def->type == VIR_DOMAIN_NET_TYPE_DIRECT ||
>+                    def->type == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
>+                    virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>+                                   _("Custom tap device path is not supported for: %s"),
>+                                   virDomainNetTypeToString(def->type));
>+                    goto error;
>+                }
>+
>                 if ((tmp = virXMLPropString(cur, "tap")))
>                     def->backend.tap = virFileSanitizePath(tmp);
>                 VIR_FREE(tmp);

Tightening the XML parser means that domains with this incorrect
configuration would disappear from libvirt on upgrade.

Also, the same error message is currently in
qemuBuildInterfaceCommandLine, which would be dead code after this
patch.

qemuDomainDeviceDefValidate is a better place to move the error to;
it's called for hotplugged devices too and it will only be called
when parsing newly-defined domains.

Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20171105/f1a7a434/attachment-0001.sig>


More information about the libvir-list mailing list