[openstack-dev] [NFV][CI] The plan to bring up Snabb NFV CI for Juno-3

Luke Gorrie luke at snabb.co
Tue Jul 29 08:48:13 UTC 2014


Greetings fellow NFV'stas!

I would like to explain and solicit feedback on our plan to support a new
open source NFV system in Juno. This work is approved as
low-priority/best-effort for Juno-3. (Yes, we do understand that we are
fighting the odds in terms of the Juno schedule.)

We are developing a practical open source NFV implementation for OpenStack.
This is for people who want to run tens of millions of packets per second
through Virtio-net on each compute node. The work involves contributing
code upstream to a dependent chain of projects:

snabbswitch -> QEMU -> Libvirt -> Nova -> Neutron

Recently we had a breakthrough: QEMU upstream merged the vhost-user feature
that we developed and this convinced the kind maintainers of Libvirt, Nova,
and Neutron to let us target code to them in parallel. Now Libvirt has
accepted our code upstream too and the last pieces are Nova and Neutron.
(Then we can start work on Version 2.)

Previously our upstreaming effort has been obstructed: people
understandably wanted to see our QEMU code accepted before they would take
us seriously. So it is an exciting time for us and our upstreaming work.

Just now we have ramped up our OpenStack development effort in response to
getting approved for Juno-3. Michele Paolino has joined in: he is
experienced with Libvirt and is the one who upstreamed our code there.
Nikolay Nikolaev is joining in too: he did the bulk of the development on
vhost-user and the upstreaming of it into QEMU.

Here is what the three of us are working on for Juno-3:

* VIF_VHOSTUSER support in Nova.
https://blueprints.launchpad.net/nova/+spec/vif-vhostuser

* Snabb NFV mech driver for Neutron.
https://blueprints.launchpad.net/neutron/+spec/snabb-nfv-mech-driver

* NFV CI: OpenStack 3rd party CI that covers our entire software ecosystem
(snabbswitch + QEMU + Libvirt + Nova + Neutron).

We are already getting great support from the community. Thank you
everybody for that, and meta-thankyou to the people who setup the NFV
subgroup which has been a fantastic enabler. For the code changes, the ball
is in our court now to get them into shape in time. For the CI, I think
it's worth having a discussion to make sure we are on the same page and
have the same expectations.

Here is how I visualize our ideal NFV CI for Juno:

* Run Tempest tests for Nova and Neutron.
* Test with the relevant versions of Libvirt, QEMU, and snabbswitch.
* Test with NFV-oriented features that are upstream in OpenStack.
* Test with NFV-oriented changes that are not yet upstream e.g. Neutron QoS
API.
* Operate reliably with a strong track record.
* Be easy for other people to replicate if they want to run their own NFV
CI.

This CI should then provide assurance for us that our whole ecosystem is
running compatibly, for OpenStack that the code going upstream is
continuously tested, and for end users that the software they plan to
deploy works (either based on our tests, if they are deploying the same
software that we use, or based on their own tests if they want to operate a
customised CI).

How does this CI idea sound to the community and to others who are
interested in related NFV-oriented features?

That was quite a brain-dump... we have been working on this for quite some
time but mostly on the parts outside of the OpenStack tree until now.

For more information about our open source NFV project you can read the
humble home page: http://snabb.co/nfv.html

and if you want to talk nuts and bolts you can find us on Github:
https://github.com/SnabbCo/snabbswitch

and Google Groups:
https://groups.google.com/forum/#!forum/snabb-devel

We are independent open source developers and we are working to support
Deutsche Telekom's TeraStream NFV project.

Cheers!
-Luke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140729/31d321bc/attachment.html>


More information about the OpenStack-dev mailing list