Xenial - OpenvSwitch with DPDK binding to 10G NIC, not working...

Martinx - ジェームズ thiagocmartinsc at gmail.com
Mon Mar 7 23:16:20 UTC 2016


On 7 March 2016 at 17:28, Martinx - ジェームズ <thiagocmartinsc at gmail.com> wrote:

> On 7 March 2016 at 16:40, Martinx - ジェームズ <thiagocmartinsc at gmail.com>
> wrote:
>
>> Hey guys,
>>
>>  I'm trying to create two OVS bridges powered by DPDK, on Xenial, but I'm
>> facing problems...
>>
>>  First, there is no documentation about how to do this... So far, I found
>> the following:
>>
>>
>>  - This link doesn't how to bind real NIC:
>>
>> https://software.intel.com/en-us/articles/using-open-vswitch-with-dpdk-on-ubuntu
>>
>>  - This one isn't specific to Ubuntu OVS + DPDK packages:
>>  https://github.com/openvswitch/ovs/blob/master/INSTALL.DPDK.md
>>
>>  - Similar with above but, very old... Also not related to Ubuntu
>> packages:
>>  https://feiskyer.github.io/2015/03/01/open-vswitch-over-dpdk-on-ubuntu/
>>
>>
>>  So, to begin with, I start with Intel.com guide, it worked! But without
>> real NIC.
>>
>>  Then, I tried to bind it to real NIC, like this:
>>
>>  Added two NIC PCI id to "/etc/dpdk/interfaces" file:
>>
>> ---
>> pci     0000:01:00.0    uio-pci-generic
>> pci     0000:01:00.1    uio-pci-generic
>> ---
>>
>>  Then, reboot, I can see both NICs using "DPDK-compatible driver" by
>> running: "dpdk_nic_bind --status".
>>
>>  Trying to create new OVS Bridges with DPDK devices, failing:
>>
>> ---
>> root at xenial-1:~# ovs-vsctl add-br ovsbr0
>> root at xenial-1:~# ovs-vsctl set bridge ovsbr0 datapath_type=netdev
>> root at xenial-1:~# ovs-vsctl add-port ovsbr0 dpdk0 -- set Interface dpdk0
>> type=dpdk
>> ovs-vsctl: Error detected while setting up 'dpdk0'.  See ovs-vswitchd log
>> for details.
>> ---
>>
>> Log shows:
>>
>> ---
>> 2016-03-07T19:34:07.532Z|00136|bridge|WARN|could not open network device
>> dpdk0 (No such device)
>> ---
>>
>> ---
>> root at xenial-1:~# ovs-vsctl show
>> 2b84f2f7-6d3f-4d51-94a5-fe6d04f0a062
>>     Bridge "ovsbr0"
>>         Port "ovsbr0"
>>             Interface "ovsbr0"
>>                 type: internal
>>         Port "dpdk0"
>>             Interface "dpdk0"
>>                 type: dpdk
>>                 error: "could not open network device dpdk0 (No such
>> device)"
>>     ovs_version: "2.5.0"
>> ---
>>
>>  What am I missing?
>>
>>  I tried to use real NIC device name "em1", instead of "dpdk0", same
>> results... Since "em1" does not even shows up on "ip link" list... DPDK
>> toke it over...
>>
>> Thanks!
>> Thiago
>>
>
> Guys,
>
> I am also trying this:
>
>  Added two NIC PCI id to "/etc/dpdk/interfaces" file:
>
> ---
> pci     0000:01:00.0    vfio-pci
> pci     0000:01:00.1    vfio-pci
> ---
>
> According to:
> https://github.com/openvswitch/ovs/blob/master/INSTALL.DPDK.md - but, it
> also doesn't work...
>
> When using "vfio-pci", the NIC doesn't even show up as a DPDK-compatible
> driver after running: "dpdk_nic_bind --status"...
>
> So, how to use "vfio-pci" with Ubuntu DPDK?
>
> Cheers!
> Thiago
>

After reading INSTALL.DPDK.md again, I realized that it only works with
VFIO or IGB (UIO), Ubuntu DPDK package does not provides the "igb_uio"
module, neither via DKMS. So, the only option is VFIO, right?

And, I am unable to use "vfio-pci" configured inside of
"/etc/dpdk/interfaces" but, I managed to make it work manually.

I just filled a bug report against DPDK Ubuntu package related to this
"vfio-pci" problem:

---
Usege of vfio-pci module via /etc/dpdk/interfaces doesn't work:
https://bugs.launchpad.net/ubuntu/+source/dpdk/+bug/1554214
---

So, after workaround the bug #1554214 (bug description have the
instructions), I tried OpenvSwitch with DPDK + 10G NIC, again, still no
success.

Same problem...

* DPDK using VFIO:

---
root at xenial-1:~# dpdk_nic_bind --status

Network devices using DPDK-compatible driver
============================================
0000:01:00.0 'NetXtreme II BCM57800 1/10 Gigabit Ethernet' drv=vfio-pci
unused=bnx2x
0000:01:00.1 'NetXtreme II BCM57800 1/10 Gigabit Ethernet' drv=vfio-pci
unused=bnx2x
---

* OpenvSwitch with DPDK still failing:

---
service openvswitch-switch stop
service openvswitch-switch start

ps xfa | grep dpdk  # I can see "ovs-vswit... --dpdk -c 0x3 -n 4 -- ...."
running...


root at xenial-1:~# ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
root at xenial-1:~# ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0
type=dpdk
ovs-vsctl: Error detected while setting up 'dpdk0'.  See ovs-vswitchd log
for details.
---

No luck... I can't wait to see it working in my lab!

Ubuntu rocks! Almost there...   :-D

Best,
Thiago
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-devel-discuss/attachments/20160307/2912a980/attachment.html>


More information about the Ubuntu-devel-discuss mailing list