[libvirt] [PATCHv3 10/16] LXC: honour network devices link state

Dmitry Guryanov dguryanov at parallels.com
Tue Dec 2 14:44:21 UTC 2014


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 at kir1 libvirt]# ip l set eth0 down
[root at 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 at kir1 libvirt]# ip a a 192.168.11.1/24 dev eth0
[root at 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 at kir1 libvirt]# ip l set eth0 up
[root at 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




More information about the libvir-list mailing list