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