[libvirt] [PATCH v3 10/36] network: move fixup for domain actual net def out of network driver

Daniel P. Berrangé berrange at redhat.com
Fri Mar 22 15:01:36 UTC 2019


On Thu, Mar 21, 2019 at 10:33:30PM -0400, Laine Stump wrote:
> On 3/19/19 8:46 AM, Daniel P. Berrangé wrote:
> > The hypervisor drivers are soon going to communicate with the network
> > driver via public APIs only. As such the network driver will not ever
> > see the domain actual network def. Thus the backwards compatibility
> > fixup logic must be moved out of the network driver.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange at redhat.com
> > ---
> >   src/conf/domain_conf.c      | 25 +++++++++++++++++++++++++
> >   src/network/bridge_driver.c | 20 --------------------
> >   2 files changed, 25 insertions(+), 20 deletions(-)
> > 
> > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> > index 99b75e26f3..35d965d2a3 100644
> > --- a/src/conf/domain_conf.c
> > +++ b/src/conf/domain_conf.c
> > @@ -30210,6 +30210,7 @@ virDomainNetNotifyActualDevice(virConnectPtr conn,
> >                                  virDomainDefPtr dom,
> >                                  virDomainNetDefPtr iface)
> >   {
> > +    virDomainNetType actualType = virDomainNetGetActualType(iface);
> >       virNetworkPtr net = NULL;
> >       if (!netNotify)
> > @@ -30218,6 +30219,30 @@ virDomainNetNotifyActualDevice(virConnectPtr conn,
> >       if (!(net = virNetworkLookupByName(conn, iface->data.network.name)))
> >           return;
> > +    /* if we're restarting libvirtd after an upgrade from a version
> > +     * that didn't save bridge name in actualNetDef for
> > +     * actualType==network, we need to copy it in so that it will be
> > +     * available in all cases
> > +     */
> > +    if (actualType == VIR_DOMAIN_NET_TYPE_NETWORK &&
> > +        !iface->data.network.actual->data.bridge.brname) {
> > +        char *bridge = virNetworkGetBridgeName(net);
> > +        if (!bridge)
> > +            goto cleanup;
> > +        VIR_FREE(iface->data.network.actual->data.bridge.brname);
> > +        iface->data.network.actual->data.bridge.brname = bridge;
> > +    }
> > +
> 
> 
> The above code was added in libvirt 1.2.11 in December 2014. It seems nearly
> impossible that someone would be upgrading from a libvirt that was 1.2.10 or
> older straight to libvirt-5.2.0 *without rebooting their host*. For this
> reason, I think the above code can/should be retired.

Yeah, I think that's probably ok

> 
> 
> Reviewed-by: Laine Stump <laine at laine.org>
> 
> 
> (either way, whether you decide to leave that code in or not.)
> 

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list