Martin,

The CSIT Performance testbeds include the following NICs (https://wiki.fd.io/view/CSIT/CSIT_LF_testbed):

 * Intel X710 (10GigE)
 * Intel XL710 (40GigE)
 * Intel X520 (10GigE, aka 82599ES)
 * Cisco VIC 1385 (40GigE)
 * Cisco VIC 1227 (10GigE)

Any of these NICs will provide the most stability since VPP is performance tested on them weekly or more.

Thanks,
-daw-

On 02/14/2017 09:48 AM, Martin Šuňal wrote:

Dave,

Thank you for your help. After few changes (below) I see an QLogic interface in VPP. The next problem is that if I issue “vppctl set int state UnknownEthernet1/0/1 up” VPP restarts itself and the interface is always “down”. I will leave this problem to someone else because my faith in the QLogic NIC is gone.

Could you please provide a list of particular NIC models which are tested with VPP? I would like to set VLAN, VXLAN, NSH.

# Download exact version of QLogic firmware

wget -O /lib/firmware/bnx2x/bnx2x-e2-7.2.51.0.fw http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/bnx2x/bnx2x-e2-7.2.51.0.fw

# Modify these files and build VPP

root@frinxblade16:~/vpp# git diff

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

diff --git a/src/vnet/devices/dpdk/init.c b/src/vnet/devices/dpdk/init.c

index 7249cc5..9393798 100755

--- a/src/vnet/devices/dpdk/init.c

+++ b/src/vnet/devices/dpdk/init.c

@@ -886,6 +886,9 @@ dpdk_bind_devices_to_uio (dpdk_config_main_t * conf)

     /* Chelsio T4/T5 */

     else if (d->vendor_id == 0x1425 && (d->device_id & 0xe000) == 0x4000)

       ;

+    /* QLogic 57810 */

+    else if (d->vendor_id == 0x14e4 && d->device_id == 0x168e)

+      ;

     else

       {

clib_warning ("Unsupported Ethernet PCI device 0x%04x:0x%04x found "

diff --git a/src/vpp.am b/src/vpp.am

index 37466c6..a261665 100644

--- a/src/vpp.am

+++ b/src/vpp.am

@@ -78,7 +78,7 @@ bin_vpp_LDADD = \

   libsvm.la \

libsvmdb.la \

libvppinfra.la \

-  -lrt -lm -lpthread -ldl

+  -lrt -lm -lpthread -ldl -lz

bin_vpp_LDFLAGS = -Wl,--export-dynamic

Thank you,

Martin

*From:*Dave Wallace [mailto:dwallac...@gmail.com]
*Sent:* Monday, February 13, 2017 10:41 PM
*To:* Martin Šuňal <msu...@frinx.io>; vpp-dev@lists.fd.io; Damjan Marion <dmarion.li...@gmail.com>
*Subject:* Re: [vpp-dev] VPP cannot find interface QLogic 57810

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> <mailto:msu...@frinx.io>;
    vpp-dev@lists.fd.io <mailto: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