[openstack-dev] [neutron][networking-ovs-dpdk][dvr] how to use dvr with networking-ovs-dpdk

Mooney, Sean K sean.k.mooney at intel.com
Wed Aug 24 11:03:17 UTC 2016

You can enable dvr today with ovs-dpdk(e.g. netdev datapath) and it will function well enough to pass tempet test but no.

Dvr with the netdev datapath has very poor performance. So much so that it is not useable in a production deployment.

This is because dvr uses kernel namespace + tap devices to perform the routing. Tap devices are not accelerated by dpdk
So when you add them to the dpdk datapath they are not processed in a polling manner by the dpdk pmd thread. Tap device
When attached to the netdev datapath are instead processed by the single threaded netdev datapath resulting in a maximum forwarding
Rate of ~40,000 pps. To put that in perspective kernel ovs can forward packets via a tap device at ~480,000pps
and dpdk will give you 5mpps+ via vhost-user so using dvr with ovs-dpdk today is not a viable option.

I did a poc of dvr style routing with neutron 12 months ago based on work I did in 2014. The blueprint was rejected as I had not figured out how to fully eliminate the network namespaces
In the north sourth case. We started looking at this problem again a few weeks ago and hope to develop a solution that will work with all ovs datapath In ocata.

Today the best way to get dvr style routing with ovs-dpdk that perfroms well is to use a controller such as ovn or odl which implement routing as openflow rules.
Using openflow rules for routing which is how my poc worked is more efficient then kernel routing even with kernel ovs. With ovs-dpdk openflow routing removes
The bottleneck that is introduced by the linux kernel interfaces allowing the full performance of the datapath to be maintained. Both ovn and odl have
Support for ovs-dpdk/vhost-user and both provide openflow based routing that can be used today.

Our current recommended configuration when using the ovs neutron agent with ovs-dpdk compute nodes is to use centralized ha routing on network nodes running kernel ovs or
Use provider routing. Both solutions will give significant performance improvements over dvr with ovs-dpdk.


From: huangdenghui [mailto:hdh_1983 at 163.com]
Sent: Wednesday, August 24, 2016 3:29 AM
To: OpenStack Development Mailing List (not for usage questions) <openstack-dev at lists.openstack.org>
Subject: [openstack-dev] [neutron][networking-ovs-dpdk][dvr] how to use dvr with networking-ovs-dpdk

    Is it possible to use dvr with networking-ovs-dpdk now? If not, is it on the roadmap of networking-ovs-dpdk?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160824/20f5d520/attachment.html>

More information about the OpenStack-dev mailing list