
On Wednesday 22 October 2014 11:15:57 Daniel P. Berrange wrote:
On Fri, Oct 10, 2014 at 02:04:02PM +0200, Cédric Bosdonnat wrote:
Don't activate LXC network device if <link state='down'/> has been set in its configuration. ---
src/lxc/lxc_container.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index bbab4af..4378b3d 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -568,21 +568,23 @@ static int lxcContainerRenameAndEnableInterfaces(virDomainDefPtr vmDef,> }
}
- VIR_DEBUG("Enabling %s", newname); - rc = virNetDevSetOnline(newname, true); - if (rc < 0) - goto error_out; + if (netDef->linkstate != VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN) { + VIR_DEBUG("Enabling %s", newname); + rc = virNetDevSetOnline(newname, true); + if (rc < 0) + goto error_out;
- /* Set the gateways */ - if (netDef->gateway_ipv4 && - lxcContainerAddDefaultRoute(newname, netDef->gateway_ipv4, - AF_INET) < 0) - goto error_out; + /* Set the gateways */ + if (netDef->gateway_ipv4 && + lxcContainerAddDefaultRoute(newname, netDef->gateway_ipv4, + AF_INET) < 0) + goto error_out;
- if (netDef->gateway_ipv6 && - lxcContainerAddDefaultRoute(newname, netDef->gateway_ipv6, - AF_INET6) < 0) - goto error_out; + if (netDef->gateway_ipv6 && + lxcContainerAddDefaultRoute(newname, netDef->gateway_ipv6, + AF_INET6) < 0) + goto error_out; + }
VIR_FREE(newname);
}
ACK makes sense, we can't configure addresses if the device is down.
We can, but it doesn't have much sense: [root@kir1 libvirt]# ip l set eth0 down [root@kir1 libvirt]# ip a s eth0 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:19:d1:a3:bf:95 brd ff:ff:ff:ff:ff:ff [root@kir1 libvirt]# ip a a 192.168.11.1/24 dev eth0 [root@kir1 libvirt]# ip a s eth0 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:19:d1:a3:bf:95 brd ff:ff:ff:ff:ff:ff inet 192.168.11.1/24 scope global eth0 [root@kir1 libvirt]# ip l set eth0 up [root@kir1 libvirt]# ip a s eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:19:d1:a3:bf:95 brd ff:ff:ff:ff:ff:ff inet 192.168.11.1/24 scope global eth0
Regards, Daniel
-- Dmitry Guryanov