I hadn't realised until today that the BP window for new Nova specs in Juno had closed, and I'm hoping I might get an exception for a minor, but I think helpful, change in the way VIF plugging works.
At the moment, Neutron's plugin returns a binding_type to Nova when plugging takes place, describing what it's done to bind a network to a host and how a VM or other guest instance might attach itself to a network. This requires that Nova and Neutron are configured in a way such that the Neutron binding_type used is one that the Nova hypervisor can use. I would like to change this slightly, so that Nova lists acceptable binding types, in its preference order, in the header of the binding request that it passes to Neutron. At the moment this would take the form of a suggestion - without a similar change in Neutron to take advantage of it, the binding_type Neutron returns would still be down to the plugin configuration - but it has advantages for future changes. It means that Neutron can use a number of binding types, depending on, for instance, efficiency. Where Nova supports multiple binding types, Neutron currently chooses one without regard to whether it's a wise choice or even whether Nova can actually use it (a misconfiguration that currently results in an internal error). By providing a list, we give more flexibiity to plugins in Neutron, so that more intelligent plugins can use the binding type that actually makes the most sense. It also saves a bit of configuration on the Neutron side of things. Where you're running with multiple binding types, at the moment Neutron would have to work out what kind of hypervisor is being used on a machine, presumably by its configuration on that machine for whatever agent is in use, to determine a suitable binding type. If we told Neutron what binding type was wanted, the agent could be more general and support a variety of types on demand. It would no longer be necessary to configure Neutron at all, because the binding type would be selected by Nova and only by Nova and Neutron would acquiesce to its will. The change in Nova is minor, and in any case backward compatible - right now, Neutron doesn't know any better and would still rely on configuration, and would use whatever it had been configured to use, so the presence or absence of the header is meaningless to present setups. Any hypervisor that actually implemented the change - and I was thinking of doing it for the generic VIF driver in libvirt, initially - would provide future Neutron plugins with more choices. It's not remotely essential to get it in for Juno, but since the change is a staged one requiring changes on both sides of the Nova/Neutron boundary I was hoping to get step one done sooner rather than later, particularly since the initial code change would be small and unlikely to break anything. Thoughts? -- Ian.
_______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev