<div dir="ltr">In strategy 2 we just pass 1 bridge name to Nova. That's the one that is ensures is created and plumbs the VM to. Since it's not responsible for patch ports it doesn't need to know anything about the other bridge.</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 14, 2016 at 2:30 AM, Daniel P. Berrange <span dir="ltr"><<a href="mailto:berrange@redhat.com" target="_blank">berrange@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Jun 14, 2016 at 02:10:52AM -0700, Kevin Benton wrote:<br>
> Strategy 1 is being pitched to make it easier to implement with the current<br>
> internals of the Neutron OVS agent (using integration bridge plugging<br>
> events). I'm not sure that's better architecturally long term because the<br>
> OVS agent has to have logic to wire up patch ports for the sub-interfaces<br>
> anyway, so having the logic to make it wire up patch port for the parent<br>
> interface is not out of place.<br>
><br>
> Also consider that we will now have to tell os-vif two bridges to use if we<br>
> go with strategy 1. One bridge to create and attach the VM to, and another<br>
> for the other half of the patch port. This means that we are going to have<br>
> to leak more details of what Neutron is doing into the VIF details of the<br>
> neutron port data model and relay that to Nova...<br>
<br>
</span>It sounds like strategy 2 also requires you to pass a second bridge<br>
name to nova/os-vif, unless I'm mis-understanding the description<br>
below.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> On Tue, Jun 14, 2016 at 1:29 AM, Daniel P. Berrange <<a href="mailto:berrange@redhat.com">berrange@redhat.com</a>><br>
> wrote:<br>
><br>
> > On Mon, Jun 13, 2016 at 11:35:17PM +0000, Peters, Rawlin wrote:<br>
> > > That said, there are currently a couple of vif-plugging strategies<br>
> > > we could go with for wiring trunk ports for OVS, each of them<br>
> > > requiring varying levels of os-vif augmentation:<br>
> > ><br>
> > > Strategy 1) When Nova is plugging a trunk port, it creates the OVS<br>
> > > trunk bridge, attaches the tap to it, and creates one patch port<br>
> > > pair from the trunk bridge to br-int.<br>
> > ><br>
> > > Strategy 2) Neutron passes a bridge name to Nova, and Nova uses this<br>
> > > bridge name to create the OVS trunk bridge and attach the tap to it<br>
> > > (no patch port pair plugging into br-int).<br>
> ><br>
> > [snip]<br>
> ><br>
> > > If neither of these strategies would be in danger of not making it<br>
> > > into the Newton release, then I think we should definitely opt for<br>
> > > Strategy 1 because it leads to a simpler overall solution. If only<br>
> > > Strategy 2 is feasible enough to make it into os-vif for Newton,<br>
> > > then we need to know ASAP so that we can start implementing the<br>
> > > required functionality for the OVS agent to monitor for dynamic trunk<br>
> > > bridge creation/deletion.<br>
> ><br>
> > IMHO the answer should always be to go for the right long term<br>
> > architectural<br>
> > solution, not take short cuts just to meet some arbitrary deadline, because<br>
> > that will compromise the code over the long term. From what you are saying<br>
> > it sounds like strategy 1 is the optimal long term solution, so that should<br>
> > be where effort is focused regardless.<br>
> ><br>
> > Regards,<br>
> > Daniel<br>
> > --<br>
> > |: <a href="http://berrange.com" rel="noreferrer" target="_blank">http://berrange.com</a> -o- <a href="http://www.flickr.com/photos/dberrange/" rel="noreferrer" target="_blank">http://www.flickr.com/photos/dberrange/</a><br>
> > :|<br>
> > |: <a href="http://libvirt.org" rel="noreferrer" target="_blank">http://libvirt.org</a> -o- <a href="http://virt-manager.org" rel="noreferrer" target="_blank">http://virt-manager.org</a><br>
> > :|<br>
> > |: <a href="http://autobuild.org" rel="noreferrer" target="_blank">http://autobuild.org</a> -o- <a href="http://search.cpan.org/~danberr/" rel="noreferrer" target="_blank">http://search.cpan.org/~danberr/</a><br>
> > :|<br>
> > |: <a href="http://entangle-photo.org" rel="noreferrer" target="_blank">http://entangle-photo.org</a> -o- <a href="http://live.gnome.org/gtk-vnc" rel="noreferrer" target="_blank">http://live.gnome.org/gtk-vnc</a><br>
> > :|<br>
> ><br>
> > __________________________________________________________________________<br>
> > OpenStack Development Mailing List (not for usage questions)<br>
> > Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
> ><br>
<br>
Regards,<br>
Daniel<br>
--<br>
|: <a href="http://berrange.com" rel="noreferrer" target="_blank">http://berrange.com</a> -o- <a href="http://www.flickr.com/photos/dberrange/" rel="noreferrer" target="_blank">http://www.flickr.com/photos/dberrange/</a> :|<br>
|: <a href="http://libvirt.org" rel="noreferrer" target="_blank">http://libvirt.org</a> -o- <a href="http://virt-manager.org" rel="noreferrer" target="_blank">http://virt-manager.org</a> :|<br>
|: <a href="http://autobuild.org" rel="noreferrer" target="_blank">http://autobuild.org</a> -o- <a href="http://search.cpan.org/~danberr/" rel="noreferrer" target="_blank">http://search.cpan.org/~danberr/</a> :|<br>
|: <a href="http://entangle-photo.org" rel="noreferrer" target="_blank">http://entangle-photo.org</a> -o- <a href="http://live.gnome.org/gtk-vnc" rel="noreferrer" target="_blank">http://live.gnome.org/gtk-vnc</a> :|<br>
</div></div></blockquote></div><br></div>