binding_type improvements to simplify Nova interactions

Bug #1464465 reported by Ian Wells
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Expired
Wishlist
Unassigned

Bug Description

At the moment Neutron works out a binding_type it will tell Nova (which Nova must support or else). Nova is amazingly psychic, and knows that for many binding types, some specific widget will be created with a certain specific name. This runs into problems because firstly they must be configured the same and secondly drivers (ODL in particular is one of interest) may support multiple or unpredictable binding_types.

Additionally, Nova's code has code in it for each binding type to predict what the binding will be (e.g. bridge or TAP names).

I suggest two things:

 - we should get Nova to tell us what binding types it supports so that we can choose one of those

 - to simplify the Nova code, and eventually remove the complexity of its synchronised guesswork - we do as much work as possible in Neutron, and we ensure that we pass all this information over in binding_details.

I'm trying to get a spec approved for Nova that would make it tell us what binding types are available. The other half is also under some discussion.

In some cases this can lead to something that might be considered a security issue, or at least a bit dangerous, like Neutron telling Nova it should do something stupid with eth0, or create a new socket at /etc/passwd. We may want to put a few restrictions that both Nova and Neutron respect, like device prefixes or file locations, for safety's sake.

I propose that we don't change the binding code that exists, so that the next version of Nova remains compatible with the current version of Neutron, but we do create new binding types that use explicit exchange instead of spooky action at a distance. If Neutron is given a preference list of types, it will use the most preferred one, and Nova can offer the new types in preference to the old ones. In the future, we can deprecate and remove the old binding types.

tags: added: nova-neutron
Henry Gessau (gessau)
summary: - RFE: binding_type improvements
+ binding_type improvements
tags: added: rfe
Changed in neutron:
status: New → Confirmed
Revision history for this message
yong sheng gong (gongysh) wrote : Re: binding_type improvements
Ian Wells (ijw-ubuntu)
description: updated
summary: - binding_type improvements
+ binding_type improvements to simplify Nova interactions
Revision history for this message
Kyle Mestery (mestery) wrote :

This looks to require a nova spec, so lets wait until that one is approved before moving forward here. The idea of simplifying this interface sounds good. I want Aaron to review this, so I've added him to the bug here.

Revision history for this message
Kevin Benton (kevinbenton) wrote :

this sounds good. nova will require the most work in this i think so we can wait until it gets going to start on the neutron side

Revision history for this message
Ian Wells (ijw-ubuntu) wrote :

The Nova spec was filed last cycle, but not approved - unfortunately, I never actually found out *why* it wasn't approved, John gave it a -2 and no information. I'll move the spec over and get it reconsidered..

https://review.openstack.org/#/c/190917/

Changed in neutron:
importance: Undecided → Wishlist
Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

To be discussed at the drivers meeting. Bear in mind that something tangential was approved in Nova for Mitaka:

https://blueprints.launchpad.net/nova/+spec/neutron-ovs-bridge-name

I wonder if there's overlap

Changed in neutron:
status: Confirmed → Triaged
Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

Any attempt at simplifying/improving the relationship between Nova and Neutron when it comes to port/vif management is very welcome, however the devil is in the details. There is a Mitaka priority for Nova [1] that aims at overhauling the binding logic, and I know that a few talked about the concept of port "flavors" to decouple Nova and Neutron further (even though I am not aware of anything done in writing), where Neutron is ultimately the one in charge of port creation (according to certain criteria dictated by the flavor) and all that Nova does is the vif plugging once the scheduling decision has occurred (which could be port-flavor aware) and the hypervisor is selected.

Now it's unclear whether we should promote the approach outlined in this RFE or a different approach should be pursued. As of now, the os-vif library is a Nova-led initiative and if no input is taken from the proposed spec, this Neutron's RFE bug is going to die on the vine.

Thoughts?

[1] http://specs.openstack.org/openstack/nova-specs/priorities/mitaka-priorities.html#os-vif-lib

Changed in neutron:
status: Triaged → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for neutron because there has been no activity for 60 days.]

Changed in neutron:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.