[libvirt] [PATCH 08/14] Store the interface vlan number in the domain state
Mark McLoughlin
markmc at redhat.com
Mon Jul 20 13:04:22 UTC 2009
On Mon, 2009-07-20 at 14:48 +0200, Daniel Veillard wrote:
> On Mon, Jul 20, 2009 at 12:51:18PM +0100, Mark McLoughlin wrote:
> > Currently, an interface's vlan number corresponds to its index in
> > the table of network interfaces. That is no longer true when we
> > allow devices to be removed.
> >
> > To fix this, we store the vlan number in the domain's state XML
> > so that it survives libvirtd restarts.
> >
> > * src/domain_conf.h: add vlan number to virDomainNetDef
> >
> > * src/domain_conf.c: store it in XML as <state vlan='N'/>, defaulting
> > to -1 if this is state saved by a previous version of libvirt
> >
> > * src/qemu_conf.c: assign vlan numbers before starting qemu
> [...]
> > @@ -3614,6 +3624,8 @@ virDomainNetDefFormat(virConnectPtr conn,
> > virBufferEscapeString(buf, " nic='%s'", def->nic_name);
> > if (def->hostnet_name)
> > virBufferEscapeString(buf, " hostnet='%s'", def->hostnet_name);
> > + if (def->vlan > 0)
> > + virBufferVSprintf(buf, " vlan='%d'", def->vlan);
> > virBufferAddLit(buf, "/>\n");
> > }
>
> shouldn't we do that only when doing 'internal' dump, otherwise there
> is a risk to expose this at the public dump level, where adding it is a
> completely different issue.
Well spotted, at first I thought you were right and I'd missed it ...
but all this code is within:
if ((flags & VIR_DOMAIN_XML_INTERNAL_STATUS) &&
(def->nic_name || def->hostnet_name)) {
which highlights another bug - I'm going to drop those checks, it
doesn't matter if we end up with an empty <state/> element
Cheers,
Mark.
More information about the libvir-list
mailing list