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

2014-07-29 Thread Luke Gorrie
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
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2014-07-29 Thread Luke Gorrie
On 29 July 2014 10:48, Luke Gorrie l...@snabb.co wrote:

 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.


Incidentally, we do currently achieve ~ line rate with our target workload
of 6x10G with 256-byte packets and all traffic being looped through VMs
over Virtio-net. Here is a benchmark output from our testbed right now:

On :07:00.0 got 4.462
On :07:00.1 got 4.462
On :24:00.0 got 4.454
On :24:00.1 got 4.452
On :27:00.0 got 4.455
On :27:00.1 got 4.455

Rate(Mpps): 26.74

That is with each packet received off the wire by Snabb Switch, looped
through a QEMU guest (running Ubuntu w/ DPDK) over vhost-user, then
transmitted by Snabb Switch back onto the wire. That is one packet received
and transmitted on each port every 225 nanoseconds.


Surprisingly, the whole traffic plane is written in Lua and is only a small
amount of code. We are really proud of the work we are doing and hope it
will become a part of the open source networking landscape for many years
to come. People who like this sort of thing are advised to get in touch
with us and join in the fun :).


Cheers,

-Luke
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev