Hello Stackers,

Apologies for the delay in getting this update email out to everyone.

tl;dr
-----

We are making good progress on the os-vif library and plugin system. We have immediate goals for Mitaka, all of which are in progress and on track to complete by Feature Freeze.

details
-------

Background
==========

Over the course of the last two years, a number of proposals were put forth to increase the velocity of development in Nova around new virtual interface types. Nova core contributors generally are not networking experts and the engineers familiar with network interface setup were frustrated with the slow pace of reviews in Nova whenever they wanted to add or extend functionality.

After much debate, we settled on a proposal to create an os-vif Python library that would allow these network-focused contributors to maintain and enhance the code for virtual interface plugging separate from Nova. VIF types would be loaded as stevedore plugins, enabling easier addition of new VIF types and enhancements of existing ones.

In addition to developer velocity, the creation of the os-vif library was a perfect opportunity for the Nova developers to clean up and standardize the object modeling currently in use to represent virtual interfaces and networking objects in Nova. The os_vif.objects.VIF object model uses *versioned* objects now, enabling a future structured evolution of the data interchange format between Nova and Neutron. This interchange of information is typically called "port binding negotiation" and has been the source of a lot of spaghetti code both in Nova and Neutron. The move to a versioned objects interchange format will dramatically reduce the lines of code needed for this port binding negotiation and simplify this part of Nova.

Goals
=====

The team has the following goals for Mitaka:

* Ensuring the os-vif library is complete and fully unit-tested
* Ensuring the reference plugin implementations (OVS and LinuxBridge) are in the os-vif code tree and also fully unit-tested * Replacing the plug() and unplug() code in Nova for the OVS and LinuxBridge VIF types * Submitting changes to devstack and project-config that install os-vif, enable the OVS and LinuxBridge plugins, and run a full set of Tempest functional tests to validate the interactions between Nova and os-vif

For Newton, we will be pushing for the following:

* Blueprint and implementation of changes in Neutron to send a set of serialized os_vif.objects.VIF objects back to Nova instead of the current port:binding mess (this is what is referred to as the "port binding negotiation process") * Swapping out more of the non-LinuxBridge, non-OVS VIF type implementations in Nova's vif.py with calls to os_vif.[un]plug()
Full gate test coverage of more of the plugins

Progress
========

We have an os-vif-core team that has been reviewing and merging code in the os-vif main source repository [1]. Dan Berrange, Sean Mooney, Moshe Levi, and Sahid Ferdjaoui have done the bulk of the work in bringing the prototype library I had put together on GitHub into the OpenStack git.openstack.org repository. Thank you guys very much!

Dan has a work-in-progess patch to Nova [2] that replaces some of the code in nova/virt/libvirt/vif.py with calls to os_vif.

From our Mirantis team, I've asked Sergey Belous to handle any necessary changes to devstack and project-config (for a functional test gate check job).

Myself, I continue to do my best to get through code reviews for additions to the os-vif library.

If you are interested in joining the os-vif effort, please come find danpb, jaypipes, sahid, sean.k.mooney or MosheLevi on #openstack-nova or #openstack-neutron on Freenode IRC.

Thanks for reading,
-jay

[1] http://git.openstack.org/cgit/openstack/os-vif/tree
[2] https://review.openstack.org/#/c/269672/

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [email protected]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to