[libvirt] [PATCH 05/16] LXC from native: migrate veth network configuration

Daniel P. Berrange berrange at redhat.com
Fri Jan 24 13:39:04 UTC 2014


On Tue, Jan 14, 2014 at 02:49:54PM +0100, Cédric Bosdonnat wrote:
> Some of the LXC configuration properties aren't migrated since they
> would only cause problems in libvirt-lxc:
>   lxc.network.ipv[46]: LXC driver doesn't setup IP address of guests

That doesn't make sense in a machine virt world, but has been
requested a few times in the context of LXC and before that with
OpenVZ. I guess we need a bug filed to request that we support
this. Currently I have to workaround it with libvirt-sandbox's
LXC support too

>   lxc.network.name

What is this config param for ? Is that the name of the guest
visible NIC ? Currently we hardcode it ethNNN, assigning the
NNN value incrementally. Guess that'd be another RFE bug.

> ---
>  src/lxc/lxc_native.c                         | 98 ++++++++++++++++++++++++++--
>  tests/lxcconf2xmldata/lxcconf2xml-simple.xml |  5 ++
>  2 files changed, 96 insertions(+), 7 deletions(-)
> 
> diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c
> index 6b62a5b..a9ef453 100644
> --- a/src/lxc/lxc_native.c
> +++ b/src/lxc/lxc_native.c
> @@ -517,35 +517,119 @@ error:
>      return -1;
>  }
>  
> +static virDomainNetDefPtr
> +lxcCreateNetDef(const char *type,
> +                const char *link,
> +                const char *mac,
> +                const char *flag)
> +{
> +    virDomainNetDefPtr net = NULL;
> +
> +    if (VIR_ALLOC(net) < 0)
> +        goto error;
> +
> +    if (flag) {
> +        if (STREQ(flag, "up"))
> +            net->linkstate = VIR_DOMAIN_NET_INTERFACE_LINK_STATE_UP;
> +        else
> +            net->linkstate = VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN;
> +    }

Hmm, the LXC driver doesn't honour the 'linkstate' config
parameter currently, so we need a bug about that filed,
or feel free to do a patch for that.


> +
> +    if (STREQ(type, "veth")) {
> +        virMacAddr macAddr;
> +
> +        if (!link)
> +            goto error;
> +
> +        net->type = VIR_DOMAIN_NET_TYPE_BRIDGE;
> +
> +        if (VIR_STRDUP(net->data.bridge.brname, link) < 0)
> +            goto error;
> +
> +        if (mac && virMacAddrParse(mac, &macAddr) == 0)
> +            net->mac = macAddr;
> +
> +    }
> +
> +    return net;
> +
> +error:
> +    virDomainNetDefFree(net);
> +    return NULL;
> +}
> +

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