[ovs-dev] Integrate ovs+dpdk to openstack

Czesnowicz, Przemyslaw przemyslaw.czesnowicz at intel.com
Thu Sep 24 13:51:37 UTC 2015


Hi Na Zhu,

Nova understands how to handle hugepages, what’s left is to configure your system.
The devstack plugin networking-ovs-dpdk will execute all the platform configuration steps for you.

Please follow the GSG: https://github.com/stackforge/networking-ovs-dpdk/blob/master/doc/source/getstarted.rst
You shouldn’t need to anything outside of that.

Przemek

From: Na Zhu [mailto:zhunatuzi at gmail.com]
Sent: Thursday, September 24, 2015 2:19 PM
To: Czesnowicz, Przemyslaw
Cc: dev at openvswitch.org
Subject: Re: [ovs-dev] Integrate ovs+dpdk to openstack

Hi Przemek,


Really appreciate your reply, you are so kind.

I look through the code changes, I have one basic question.
In the INSTALL.DPDK.md<http://INSTALL.DPDK.md>, it shows all the steps about using dpdk vhost-user, it can be divided into 2 parts:
1, create vhost-user port to OVS (your code change covers this part)
2, attach vhost-user port to VM, including configure socket and configure hugepage, I am sure there is no code about configure hugepage in your changes. Can you tell me why?



The following contents are copy from INSTALL.DPDK.md<http://NSTALL.DPDK.md>.
DPDK vhost-user VM configuration:

Follow the steps below to attach vhost-user port(s) to a VM.

1.  Configure sockets. Pass the following parameters to QEMU to attach a vhost-user device:

2.  -chardev socket,id=char1,path=/usr/local/var/run/openvswitch/vhost-user-1

3.  -netdev type=vhost-user,id=mynet1,chardev=char1,vhostforce

4.  -device virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1

...where vhost-user-1 is the name of the vhost-user port added to the switch. Repeat the above parameters for multiple devices, changing the chardev path and id as necessary. Note that a separate and different chardev path needs to be specified for each vhost-user device. For example you have a second vhost-user port named 'vhost-user-2', you append your QEMU command line with an additional set of parameters:

-chardev socket,id=char2,path=/usr/local/var/run/openvswitch/vhost-user-2

-netdev type=vhost-user,id=mynet2,chardev=char2,vhostforce

-device virtio-net-pci,mac=00:00:00:00:00:02,netdev=mynet2

5.  Configure huge pages. QEMU must allocate the VM's memory on hugetlbfs. vhost-user ports access a virtio-net device's virtual rings and packet buffers mapping the VM's physical memory on hugetlbfs. To enable vhost-user ports to map the VM's memory into their process address space, pass the following paramters to QEMU:

6.  -object memory-backend-file,id=mem,size=4096M,mem-path=/dev/hugepages,

7.  share=on

-numa node,memdev=mem -mem-prealloc





2015-09-24 19:13 GMT+08:00 Czesnowicz, Przemyslaw <przemyslaw.czesnowicz at intel.com<mailto:przemyslaw.czesnowicz at intel.com>>:
I meant the “main” Nova tree.
Vhost-user support was added with those two changes:

https://review.openstack.org/149309
https://review.openstack.org/149310

Przemek


From: Na Zhu [mailto:zhunatuzi at gmail.com<mailto:zhunatuzi at gmail.com>]
Sent: Wednesday, September 23, 2015 2:23 PM

To: Czesnowicz, Przemyslaw
Cc: dev at openvswitch.org<mailto:dev at openvswitch.org>
Subject: Re: [ovs-dev] Integrate ovs+dpdk to openstack

Hi Przmek,

Can you send me the nova source tree?

BR
Juno

2015-09-23 16:46 GMT+08:00 Czesnowicz, Przemyslaw <przemyslaw.czesnowicz at intel.com<mailto:przemyslaw.czesnowicz at intel.com>>:
Hi Na Zhu,


1.       This is used when the agent is started.

2.       Not sure what you mean, look at https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/ovs_ofctl/main.py

3.       All the necessary Nova changes are in Nova source tree.


If you think anything is wrong with the code please propose a patch or create a bug in Launchpad.
https://bugs.launchpad.net/networking-ovs-dpdk/


Regards
Przemek

From: Na Zhu [mailto:zhunatuzi at gmail.com<mailto:zhunatuzi at gmail.com>]
Sent: Wednesday, September 23, 2015 7:00 AM
To: Czesnowicz, Przemyslaw
Cc: dev at openvswitch.org<mailto:dev at openvswitch.org>
Subject: Re: [ovs-dev] Integrate ovs+dpdk to openstack

Hi Przemek,

Thanks your reply.

I read the code and find some missing, for example:
1, in file common/config.py, a new parameter of_interface is added  "cfg.StrOpt('of_interface', default='ovsdpdk-ofctl'", but it is not used in other place.
2, in file  agent/openflow/ovsdpdk_ofctl/main.py, it imports br-int, br-tun and br-phy, i do not find it in my neutron code.
3, there is no change about nova.

BR
Juno

2015-09-16 17:37 GMT+08:00 Czesnowicz, Przemyslaw <przemyslaw.czesnowicz at intel.com<mailto:przemyslaw.czesnowicz at intel.com>>:
> -----Original Message-----
> From: dev [mailto:dev-bounces at openvswitch.org<mailto:dev-bounces at openvswitch.org>] On Behalf Of Na Zhu
> Sent: Wednesday, September 16, 2015 10:12 AM
> To: dev at openvswitch.org<mailto:dev at openvswitch.org>
> Subject: [ovs-dev] Integrate ovs+dpdk to openstack
>
> Hi all,
>
> Since ovs+dpdk is released, are you plan to integrate ovs+dpdk to
> openstack?
> I find there is a project on openstack stackforge
> https://github.com/stackforge/networking-ovs-dpdk/, but the project is not
> finished, and the code is incomplete.
>
> Is there any available patch for ovs+dpdk in openstack?
>

Hi Na Zhu,

What do you mean by not complete?
In my opinion  networking-ovs-dpdk project is "complete" and working. There is a Neutron CI system that validates integration on every neutron patchset.
In the docs folder of networking-ovs-dpdk  you will find a GSG[1] that may help you to set it up. Please let me know if you have issues.

Regards
Przemek

[1] - https://github.com/stackforge/networking-ovs-dpdk/blob/master/doc/source/getstarted.rst

>
> BR
> Juno
> _______________________________________________
> dev mailing list
> dev at openvswitch.org<mailto:dev at openvswitch.org>
> http://openvswitch.org/mailman/listinfo/dev





More information about the dev mailing list