[openstack-dev] [nova][neutron] Formal shared VIF type library w/ objects & plugins

Daniel P. Berrange berrange at redhat.com
Tue Jun 23 14:07:20 UTC 2015

In response to the proposal to add a VIF plugin script to the VIF port
binding data, I have put up a counter proposal which takes things a
bit further and in slightly different direction, with a strong focus
on object modelling.

Superficially inspired by os-brick, I'm suggesting, we put create a
os-vif library that uses oslo.versionedobject to define a clear set
of VIF types and associated metadata fields that can be shared by
both Neutron and Nova. This would also define a plugin class contract
that Neutron mechanism vendors would impl to provide custom plug/unplug
actions to run on the compute nodes:


This proposal is describing an architecture with the following high level
characteristics & split of responsibilities

 - Definition of VIF types and associated config metadata.

     * Owned jointly by Nova and Neutron core teams
     * Code shared in os-vif library
     * Ensures core teams have 100% control over data on
       the REST API

 - Setup of compute host OS networking stack

     * Owned by Neutron mechanism vendor team
     * Code distributed by mechanism vendor
     * Allows vendors to innovate without bottleneck on Nova
       developers in common case.
     * In the, uncommon, event a new VIF type was required,
       this would still require os-vif modification with
       Nova & Neutron core team signoff.

 - Configuration of guest virtual machine VIFs ie libvirt XML

     * Owned by Nova virt driver team
     * Code distributed as part of Nova virt / VIF driver
     * Ensures hypervisor driver retains full control over
       how the guest instances are configured

I've filed the spec against nova, but obviously we need review and buy in
from both Nova and Neutron core teams that this is workable, as it impacts
both projects. I didn't want to file a separate Neutron spec, as that
would split the discussion across two places.

Indeed, rather than replying to this mail, it'd be preferrable if people
commented on the spec


|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

More information about the OpenStack-dev mailing list