[libvirt] [PATCH v6 19/23] network: add implementation of network port APIs

Daniel P. Berrangé berrange at redhat.com
Mon Jun 17 14:44:07 UTC 2019


On Fri, Jun 07, 2019 at 07:44:21AM -0400, Laine Stump wrote:
> On 5/23/19 11:32 AM, Daniel P. Berrangé wrote:
> > This initial implementation just wires up the APIs and does tracking of
> > the port XML definitions. It is not yet integrated into the resource
> > allocation logic.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> > ---
> >   src/network/bridge_driver.c | 400 ++++++++++++++++++++++++++++++++++++
> >   1 file changed, 400 insertions(+)
> > 
> > diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
> > index 3cff96ac2c..ce280173e6 100644
> > --- a/src/network/bridge_driver.c
> > +++ b/src/network/bridge_driver.c
> > @@ -2766,6 +2766,8 @@ networkStartNetwork(virNetworkDriverStatePtr driver,
> >       VIR_DEBUG("Beginning network startup process");
> > +    virNetworkObjDeleteAllPorts(obj, driver->stateDir);
> > +
> 
> 
> I guess you're just doing this as a failsafe? There shouldn't be any ports
> in an inactive network, right?

Yeah, should not happen when everything is working correctly. At least
during dev, bugs did cause it so I felt it worth keeping this safety
net in here.

> 
> >       VIR_DEBUG("Setting current network def as transient");
> >       if (virNetworkObjSetDefTransient(obj, true) < 0)
> >           goto cleanup;
> > @@ -3943,6 +3945,9 @@ networkDestroy(virNetworkPtr net)
> >       if ((ret = networkShutdownNetwork(driver, obj)) < 0)
> >           goto cleanup;
> > +
> > +    virNetworkObjDeleteAllPorts(obj, driver->stateDir);
> > +
> 
> 
> (The next paragraph is just me talking to myself. The conclusion is that
> everything is fine)
> 
> 
> The other function where you called this (networkStartNetwork()) is called
> by the public APIs (i.e. it's one level below the public APIs), but in this
> case you're calling it directly in the public API rather than in the next
> level down (which would be networkShutdownNetwork()). That may be correct,
> it just makes me wonder if maybe the port deletion is being missed in some
> case. I guess there's only one other place where networkShutdownNetwork() is
> called, which is when an error is encountered during
> network*Start*Network(). So, it would only make a difference if network
> ports were added during networkStartNetwork(), but since by definition a
> newly started network has no active ports, that could never happen. So I
> guess everything is fine, and my spidey sense tingled for nothing :-)
> 
> 
> 
> Reviewed-by: Laine Stump <laine at laine.org>

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