[libvirt] [PATCH v2] lxc: don't up the veth interfaces unless explicitly asked to

Michal Privoznik mprivozn at redhat.com
Wed May 6 16:02:52 UTC 2015


On 24.04.2015 15:52, Lubomir Rintel wrote:
> Upping an interface for no reason and not configuring it is a cardinal sin.
> 
> With the default addrgenmode if eui64 it sticks a link-local address to the
> interface. That is not good, as NetworkManager would see an address configured,
> assume the interface is already configured and won't touch it iself and the
> interface might stay unconfigured until the end of the days.
> 
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1124721
> ---
>  src/lxc/lxc_container.c |  2 +-
>  src/lxc/lxc_native.c    | 10 ++++------
>  2 files changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> index cc20b6d..bd135c7 100644
> --- a/src/lxc/lxc_container.c
> +++ b/src/lxc/lxc_container.c
> @@ -541,7 +541,7 @@ static int lxcContainerRenameAndEnableInterfaces(virDomainDefPtr vmDef,
>              VIR_FREE(ipStr);
>          }
>  
> -        if (netDef->linkstate != VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN) {
> +        if (netDef->nips || netDef->linkstate == VIR_DOMAIN_NET_INTERFACE_LINK_STATE_UP) {

I'd split this long line into two.

>              VIR_DEBUG("Enabling %s", newname);
>              rc = virNetDevSetOnline(newname, true);
>              if (rc < 0)
> diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c
> index c15eb19..2297dbe 100644
> --- a/src/lxc/lxc_native.c
> +++ b/src/lxc/lxc_native.c
> @@ -348,12 +348,10 @@ lxcCreateNetDef(const char *type,
>      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;
> -    }
> +    if (flag && STREQ(flag, "up"))

or STREQ_NULLABLE().

> +        net->linkstate = VIR_DOMAIN_NET_INTERFACE_LINK_STATE_UP;
> +    else
> +        net->linkstate = VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN;
>  
>      if (VIR_STRDUP(net->ifname_guest, name) < 0)
>          goto error;
> 

I've fixed both nits, ACKed and pushed.

Michal




More information about the libvir-list mailing list