Re: [PATCH v4 03/17] LXC: set IP addresses to veth devices in the container

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 02 December 2014 16:57:12 Dmitry Guryanov wrote:
> On Thursday 13 November 2014 10:33:02 Cédric Bosdonnat wrote:
> > Uses the new virDomainNetDef ips to set the IP addresses on the network
> > interfaces in the container.

Also I think it should be forbidden to set ip addresses if libnl is not found, 
because because behavior will be defined by guest filesystem content, if ip of 
ifconfig utility is found there or not.

> > ---
> > 
> >  src/lxc/lxc_container.c | 19 ++++++++++++++++++-
> >  1 file changed, 18 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> > index 8aba3ba..4aeb19c 100644
> > --- a/src/lxc/lxc_container.c
> > +++ b/src/lxc/lxc_container.c
> > @@ -496,7 +496,7 @@ static int
> > lxcContainerRenameAndEnableInterfaces(virDomainDefPtr vmDef, char **veths)
> > 
> >  {
> >  
> >      int rc = 0;
> > 
> > -    size_t i;
> > +    size_t i, j;
> > 
> >      char *newname = NULL;
> >      virDomainNetDefPtr netDef;
> >      bool privNet = vmDef->features[VIR_DOMAIN_FEATURE_PRIVNET] ==
> > 
> > @@ -517,6 +517,23 @@ static int
> > lxcContainerRenameAndEnableInterfaces(virDomainDefPtr vmDef, if (rc < 0)
> > 
> >              goto error_out;
> > 
> > +        for (j = 0; j < netDef->nips; j++) {
> > +            virDomainNetIpDefPtr ip = netDef->ips[j];
> > +            unsigned int prefix = (ip->prefix > 0) ? ip->prefix : 24;
> 
> Why is default prefix hardcoded here? I think we should  add a constant for
> it in some common header file.
> 
> > +            char *ipStr = virSocketAddrFormat(&ip->address);
> > +
> > +            VIR_DEBUG("Adding IP address '%s/%u' to '%s'",
> > +                      ipStr, ip->prefix, newname);
> > +            if (virNetDevSetIPv4Address(newname, &ip->address, prefix) <
> > 0) { +                virReportError(VIR_ERR_SYSTEM_ERROR,
> > +                               _("Failed to set IP address '%s' on %s"),
> > +                               ipStr, newname);
> > +                VIR_FREE(ipStr);
> > +                goto error_out;
> > +            }
> > +            VIR_FREE(ipStr);
> > +        }
> > +
> > 
> >          VIR_DEBUG("Enabling %s", newname);
> >          rc = virNetDevSetOnline(newname, true);
> >          if (rc < 0)

-- 
Dmitry Guryanov

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





[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]