DPDK and RDO Openstack

DPDK and RDO Openstack

Hi guys,

I'd like to improve the packet processing on my current RDO Openstack setup.

I've seen the guidelines around configuring devstack with DPDK http://https://software.intel.com/en-us/blogs/2015/02/02/openstack-neutron-accelerated-by-dpdk

But has anyone got steps to setup with RDO openstack.  I'm assuming I can largely follow the guide to compile and install the DPDK enabled OVS here:  https://software.intel.com/en-us/blogs/2015/06/09/building-vhost-user-for-ovs-today-using-dpdk-200

What I am wondering is, what is the impact to my existing OVS config and bridges, and do I need to patch/modify openstack so that when it creates ports they are off type dpdk ?




10 帖子 / 0 全新


This is a work in progress, but glad to having you working on it as well.   Here is the promised land you refer to in Kilo.


There is more work to do for CentOS 7.1 or Redhat.   Below are the packages that need updating to accommodate vhost-user.

OVS 2.3.90+ or 2.4
libvirt 1.2.12
qemu 2.3

Here is the general procedure I used to build an RPM package for OVS DPDK to see if yum localinstall might be a better management approach to 'make install.'  However, 'make install' is viable if you want to quickly experiment.

mkdir -p rpmbuild/BUILD
cd rpmbuild/BUILD
git clone https://github.com/openvswitch/ovs.git .
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-ssl --with-dpdk=../../src/dpdk-2.0.0/x86_64-ivshmem-linuxapp-gcc/
sed 's/openvswitch-kmod, //g' rhel/openvswitch.spec > rhel/openvswitch_no_kmod.spec
#remove the SOURCES and %prep %setup lines
rpmbuild -bb --without check rhel/openvswitch_no_kmod.spec

yum localinstall  rpmbuild/RPMS/x86_64/openvswitch-2.3.90-1.x86_64.rpm

 I might take a similar approach with the other packages that need to be bumped.  With the new packages in place then install Kilo with Packstack.     Here is what my experience looked like using Packstack install after upgrading to CentOS 7.1 Your procedure my vary.


My one concern regardless of distro is an existing OVS db and upgrading through a schema change.    ovsdb-tool convert is supposed to do the job.  I do not have enough verification information that concern.  It is for that reason I am suggesting to modify packages before installing Kilo.

Also,  please note that qemu and libvirt are currently being verified for performance and the ability to properly pass the needed configuration information that Neutron will be invoked with.   

Hi Thomas,

Thanks for the response.

Hows your progress - have you been able to launch VMs with DPDK enabled ports, or did you have to patch Openstack?

Still at the qemu and libvirt part of the ingredient stack testing configuration and performance and have *not* looked at the openstack bits. 

From my notes, patching may not be needed, but perhaps something ... This work can be found at StackForge   Perhaps this information will get you started.   If you plugging in ODL into neutron and using OVSDB, then the needed configuration will be added in an upcoming Lithium maintenance release.

Assets for Integration and Configuration

Checkin history

Preparing for not having to patch OVS

Related Blueprints

Monitoring ODL integration progress ...

Hi Thomas,

Hows the progress going?

I've managed to replace my existing OVS in a RDO install with the DPDK enabled OVS, but haven't managed to get Openstack configured to use it yet.

    ovs-vswitchd --dpdk -c 0x0FF8 -n 4 --socket-mem 1024,0 -- unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor

I was wondering if you had any instructions, or can you point me to some, to help with manually testing this with a VM?

I have a interface card, eth5.  The physical switchport is configured to carry VLANs 10-20. I've managed to bind it to the ixg_uio driver, and added it as a port to a bridge on my OVS.

    ovs-vsctl --no-wait --may-exist add-port br-private dpdk0 -- set Interface dpdk0 type=dpdk

 Does the bridge need configured in any particular way?  Or can I simply connect this to a VM guest somehow ?


Dave, There are few ways you can configure and use OVS with DPDK. We have detailed instructions in appendix F of https://01.org/sites/default/files/page/intel_onp_server_release_1.3.1_b...

Can you please give it a try, let me know if you run into any issues.



I have followed the guide you proposed through this link https://software.intel.com/en-us/blogs/2015/06/09/building-vhost-user-for-ovs-today-using-dpdk-200 .

I have some questions concerning DPDK/ovs. In fact everything is going well with the installation but i do not understand how does DPDK work with OVS. When you add the bridge br0, i don't see any interface. Even more, i can't follow how dpdk works.

Can I have more détails about That?

My project consists of having a VM created thanks to Openstack and I have to optimize the traffic flow with DPDK through the OVS?

Thank you for your help


Hi, We have a detailed explanation on how DPDK is integrated with OVS, including the architecture diagram, here: 


For using the DPDK option with OVS and creating the bridge (eg: br0) and ports, please see item #6 here : 


If there is a specific issue you have, please share additional details on your setup (eg: libvirt ? kvm alone ? etc,) or open a new forum topic where we can discuss/address this specific issue.


Hi Dave,

Were you successful in testing this feature with rdo/packstack?

Hey guys,

We're also trying to bring up ovs-dpdk in OpenStack. it worked successfully with networking-ovs-dpdk on devstack. Now we'd like to test it in production environment such as RDO. Is there any way to run the networking-ovs-dpdk within packstack installation? Or it must be done manually? Dave, have you succeeded in your installation? Any recommendations?

Also, are there any plans to integrate this agent for RDO as well?