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