<div dir="ltr">Greetings fellow NFV'stas!<div><br><div>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.)</div>
<div><br></div><div>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:</div>
<div><br></div><div>snabbswitch -> QEMU -> Libvirt -> Nova -> Neutron<br></div><div><br></div><div>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.)</div>
<div><br></div><div>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.</div>
<div><br></div><div>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.</div>
<div><br></div><div>Here is what the three of us are working on for Juno-3:</div><div><br></div><div>* VIF_VHOSTUSER support in Nova. <a href="https://blueprints.launchpad.net/nova/+spec/vif-vhostuser">https://blueprints.launchpad.net/nova/+spec/vif-vhostuser</a></div>
<div><br></div><div>* Snabb NFV mech driver for Neutron. <a href="https://blueprints.launchpad.net/neutron/+spec/snabb-nfv-mech-driver">https://blueprints.launchpad.net/neutron/+spec/snabb-nfv-mech-driver</a></div><div><br>
</div><div>* NFV CI: OpenStack 3rd party CI that covers our entire software ecosystem (snabbswitch + QEMU + Libvirt + Nova + Neutron).</div></div><div><br></div><div>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.</div>
<div><br></div><div>Here is how I visualize our ideal NFV CI for Juno:</div><div><br></div><div>* Run Tempest tests for Nova and Neutron.</div><div>* Test with the relevant versions of Libvirt, QEMU, and snabbswitch.</div>
<div>* Test with NFV-oriented features that are upstream in OpenStack.<br></div><div>* Test with NFV-oriented changes that are not yet upstream e.g. Neutron QoS API.</div><div>* Operate reliably with a strong track record.</div>
<div>* Be easy for other people to replicate if they want to run their own NFV CI.</div><div><br></div><div>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).</div>
<div><br></div><div>How does this CI idea sound to the community and to others who are interested in related NFV-oriented features?</div><div><br></div><div>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.</div>
<div><br></div><div>For more information about our open source NFV project you can read the humble home page: <a href="http://snabb.co/nfv.html">http://snabb.co/nfv.html</a><br></div><div><br></div><div>and if you want to talk nuts and bolts you can find us on Github:</div>
<div><a href="https://github.com/SnabbCo/snabbswitch">https://github.com/SnabbCo/snabbswitch</a><br></div><div><br></div><div>and Google Groups:</div><div><a href="https://groups.google.com/forum/#!forum/snabb-devel">https://groups.google.com/forum/#!forum/snabb-devel</a><br>
</div><div><br></div><div>We are independent open source developers and we are working to support Deutsche Telekom's TeraStream NFV project.</div><div><br></div><div>Cheers!<br></div><div>-Luke</div><div><br></div><div>
<br></div></div>