From: Lubomir Rintel Date: Fri, 24 Apr 2015 13:52:56 +0000 (+0200) Subject: lxc: don't up the veth interfaces unless explicitly asked to X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=c3cf3c43a0bb2e0e4909c32821e20f607635ec85;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git lxc: don't up the veth interfaces unless explicitly asked to 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 Signed-off-by: Michal Privoznik --- diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index cc20b6d84..9a9ae5c2a 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -541,7 +541,8 @@ 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) { 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 25d538375..1069236e9 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 (STREQ_NULLABLE(flag, "up")) + 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;