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

Martinx - ジェームズ thiagocmartinsc at gmail.com
Tue Mar 8 00:45:24 UTC 2016


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

> 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
>

Hey guys,

 I just found a minor issue with openvswitch-switch Init Script:

 * Script "/etc/init.d/openvswitch-switch restart" ignores "DPDK_OPTS",
while "service openvswitch-switch restart" works!

 https://bugs.launchpad.net/ubuntu/+source/openvswitch-dpdk/+bug/1554275

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


More information about the Ubuntu-devel-discuss mailing list