Martin,

There have been several DPDK build changes since I was last working on the VPP dpdk driver infra, but the following patch will enable the BNX2X PMD in .../custom-config.

+Damjan for his input as this may not be the best way to add the BNX2X PMD to VPP.

---- %< ----
diff --git a/dpdk/Makefile b/dpdk/Makefile
index c9ed873..c8c9f5c 100644
--- a/dpdk/Makefile
+++ b/dpdk/Makefile
@@ -111,6 +111,7 @@ $(B)/custom-config: $(B)/.patch.ok Makefile
        $(call set,RTE_PCI_CONFIG,y)
        $(call set,RTE_PCI_EXTENDED_TAG,"on")
        $(call set,RTE_PCI_MAX_READ_REQUEST_SIZE,4096)
+       $(call set,RTE_LIBRTE_BNX2X_PMD,y)
        @# enable debug init for device drivers
        $(call set,RTE_LIBRTE_I40E_DEBUG_INIT,$(DPDK_DEBUG))
        $(call set,RTE_LIBRTE_IXGBE_DEBUG_INIT,$(DPDK_DEBUG))
---- %< ----

NOTE: the BNX2X driver requires the zlib library so you'll need to ensure that is installed or the build will fail.

Thanks,
-daw-


On 02/13/2017 01:01 PM, Martin Šuňal wrote:

Dave,

Thanks much. I’ve added elseif case for QLogic as you mentioned. Now, “vppctl show pci” is showing driver “uio_pci_generic” but iface is still missing in “vppctl show int”.

I found bnx2x inside files in build-root after vpp build (./vpp/build-root/vagrant/build.sh)

./build-root/build-vpp-native/dpdk/custom-config

./build-root/build-vpp-native/dpdk/dpdk-16.11/config/common_base

./build-root/build-vpp-native/dpdk/dpdk-16.11/build/.config.orig

./build-root/build-vpp-native/dpdk/dpdk-16.11/x86_64-native-linuxapp-gcc/.config

./build-root/build-vpp-native/dpdk/dpdk-16.11/x86_64-native-linuxapp-gcc/.config.orig

./build-root/install-vpp-native/dpdk/share/dpdk/x86_64-nhm-linuxapp-gcc/.config

I noticed that all .config files contain "CONFIG_RTE_LIBRTE_BNX2X_PMD=n" so I changed it to “=y”

I restarted VPP but no changes. I guess I am missing some steps like where and when are dpdk NIC drivers installed.

Thank you,

Martin

*From:*Dave Wallace [mailto:dwallac...@gmail.com]
*Sent:* Sunday, February 12, 2017 3:24 AM
*To:* Martin Šuňal <msu...@frinx.io>; vpp-dev@lists.fd.io
*Subject:* Re: [vpp-dev] VPP cannot find interface QLogic 57810

Martin,

AFAIK, QLogic NICs have not been tested with VPP.

You need to start by adding a case for the QLogic NICs in .../vpp/vnet/vnet/devices/dpdk/init.c::dpdk_bind_devices_to_uio(). Search for "Unsupported Ethernet PCI device" in this file for details.

A quick internet search for a DPDK QLogic PMD shows the following documentation for 17.02-rc3:
http://dpdk.org/doc/guides/nics/bnx2x.html

I'm not sure if this PMD exists in DPDK 16.11 which is what VPP is currently being tested against, but hopefully it will just work.

Thanks,
-daw-

On 2/10/17 11:03 AM, Martin Šuňal wrote:

    I’ve just found that VPP has problem with QLogic interface.

    Any idea if it is problem of VPP or DPDK?

    Is it something what can be easy fixed?

    I am thinking to try different version of NIC firmware..

    root@frinxblade16:~# *service vpp status*

    * vpp.service - vector packet processing engine

       Loaded: loaded (/lib/systemd/system/vpp.service; enabled;
    vendor preset: enabled)

       Active: active (running) since Fri 2017-02-10 16:41:32 CET;
    1min 22s ago

      Process: 3503 ExecStartPre=/sbin/modprobe igb_uio (code=exited,
    status=0/SUCCESS)

      Process: 3484 ExecStartPre=/bin/rm -f /dev/shm/db
    /dev/shm/global_vm /dev/shm/vpe-api (code=exited, status=0/SUCCESS)

    Main PID: 3521 (vpp_main)

        Tasks: 3

       Memory: 36.0M

          CPU: 1min 21.730s

       CGroup: /system.slice/vpp.service

               `-3521 /usr/bin/vpp -c /etc/vpp/startup.conf

    Feb 10 16:41:32 frinxblade16 systemd[1]: Starting vector packet
    processing engine...

    Feb 10 16:41:32 frinxblade16 systemd[1]: Started vector packet
    processing engine.

    Feb 10 16:41:32 frinxblade16 vpp[3521]:
    vlib_plugin_early_init:213: plugin path /usr/lib/vpp_plugins

    Feb 10 16:41:32 frinxblade16 vpp[3521]: /usr/bin/vpp[3521]:
    dpdk_bind_devices_to_uio:871: *Unsupported Ethernet PCI device
    0x14e4:0x168e found at PCI address 0000:01:00.1*

    Feb 10 16:41:32 frinxblade16 /usr/bin/vpp[3521]:
    dpdk_bind_devices_to_uio:871: Unsupported Ethernet PCI device
    0x14e4:0x168e found at PCI address 0000:01:00.1

    Feb 10 16:41:32 frinxblade16 vpp[3521]: EAL: Detected 56 lcore(s)

    Feb 10 16:41:32 frinxblade16 vpp[3521]: EAL: No free hugepages
    reported in hugepages-1048576kB

    Feb 10 16:41:32 frinxblade16 vpp[3521]: EAL: Probing VFIO support...

    Feb 10 16:41:32 frinxblade16 vnet[3521]: EAL: Probing VFIO support...

    Feb 10 16:41:32 frinxblade16 vnet[3521]: dpdk_lib_init:304: *DPDK
    drivers found no ports...*

    Thank you,

    Martin Šuňal

    /Technical Leader/

    Frinx s.r.o.

    Mlynské Nivy 48 / 821 09 Bratislava / Slovakia

    +421 2 20 91 01 41 / msu...@frinx.io <mailto:msu...@frinx.io> /
    www.frinx.io <http://www.frinx.io/>

    frinx_logo

    *From:* Martin Šuňal
    *Sent:* Friday, February 10, 2017 12:21 PM
    *To:* 'vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>'
    <vpp-dev@lists.fd.io> <mailto:vpp-dev@lists.fd.io>
    *Subject:* VPP cannot find interface QLogic 57810

    Hello,

    I have a problem that VPP cannot find QLogic 57810 interface.

    I use Ubuntu 16.04 LTS and VPP 17.01 which was installed like this:

    |echo "deb
    
[trusted=yes]||https://nexus.fd.io/content/repositories/fd.io.ubuntu.xenial.main/||./"
    | sudo tee -a /etc/apt/sources.list.d/99fd.io.list|

    |sudo apt update|

    |sudo apt install vpp vpp-lib vpp-dpdk-dkms|

    I have 2 QLogic interfaces on a server and I want to put interface
    “eno2” into VPP.

    Here are some outputs:

    root@frinxblade10:~# *uname -a*

    Linux frinxblade10 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18
    14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

    root@frinxblade10:~# *ip a*

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state
    UNKNOWN group default qlen 1

        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

        inet 127.0.0.1/8 scope host lo

           valid_lft forever preferred_lft forever

        inet6 ::1/128 scope host

           valid_lft forever preferred_lft forever

    2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq
    portid b4e10f8a6e56 state UP group default qlen 1000

        link/ether b4:e1:0f:8a:6e:56 brd ff:ff:ff:ff:ff:ff

        inet 10.10.193.20/24 brd 10.10.193.255 scope global eno1

           valid_lft forever preferred_lft forever

        inet6 fe80::b6e1:fff:fe8a:6e56/64 scope link

           valid_lft forever preferred_lft forever

    3: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop portid
    b4e10f8a6e59 state DOWN group default qlen 1000

        link/ether b4:e1:0f:8a:6e:59 brd ff:ff:ff:ff:ff:ff

    root@frinxblade10:~# *ethtool -i eno2*

    driver: bnx2x

    version: 1.712.30-0

    firmware-version: FFV7.12.19 bc 7.12.5

    expansion-rom-version:

    bus-info: 0000:01:00.1

    supports-statistics: yes

    supports-test: yes

    supports-eeprom-access: yes

    supports-register-dump: yes

    supports-priv-flags: yes

    root@frinxblade10:~# *lshw -class network -businfo*

    Bus info          Device     Class          Description

    ========================================================

pci@0000:01:00.0 <mailto:pci@0000:01:00.0> eno1 network NetXtreme II BCM57810 10 Gigabit Ethernet

pci@0000:01:00.1 <mailto:pci@0000:01:00.1> eno2 network NetXtreme II BCM57810 10 Gigabit Ethernet

    vpp# *sh pci*

Address Socket VID:PID Link Speed Driver Product Name

0000:01:00.0 0 14e4:168e 5.0 GT/s x8 bnx2x QLogic 57810 10 Gigabit Ethernet

0000:01:00.1 0 14e4:168e 5.0 GT/s x8 bnx2x QLogic 57810 10 Gigabit Ethernet

    vpp# *sh int*

                  Name Idx       State          Counter          Count

    local0 0        down

    I also tried to add this into /etc/vpp/startup.conf

    dpdk {

        dev 0000:01:00.1

    }

    and it did not change anything.

    No errors in /tmp/vpp.log

    Any idea?

    Thank you,

    Martin Šuňal

    /Technical Leader/

    Frinx s.r.o.

    Mlynské Nivy 48 / 821 09 Bratislava / Slovakia

    +421 2 20 91 01 41 / msu...@frinx.io <mailto:msu...@frinx.io> /
    www.frinx.io <http://www.frinx.io/>

    frinx_logo




    _______________________________________________

    vpp-dev mailing list

    vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>

    https://lists.fd.io/mailman/listinfo/vpp-dev


_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to