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

2015-05-06 Thread Michal Privoznik
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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


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

2015-04-24 Thread Lubomir Rintel
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) {
 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))
+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;
-- 
2.3.5

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list