[dpdk-dev] i40e: XL710 Rx filters out frames above 1510 bytes
Vlad Zolotarov
vladz at cloudius-systems.com
Sun Aug 30 15:03:17 CEST 2015
Hi, I have the most strange issue on a setup of 2 pairs of connected
back to back XL710 cards.
It seems that frames above 1510 bytes are being filtered out by an i40e
PMD receiver.
The same setup works perfectly when I use Linux drivers on both sides
but when I use a PMD on one side and a Linux driver on the other - the
issue above occurs.
i40e PMD statistics show nothing: all counters stay zero.
The MFS field in PRTGL_SAH register has the expected (reset) value: 0x2600.
I even tried to disable all Tx offload capabilities on the Linux side -
still no success.
Could u, guys clarify to be what is going on and what I may be doing wrong?
Pls., let me know if u need any additional info about the setup.
thanks in advance,
vlad
How to reproduce the issue:
I used the in tree apps from examples/multi_process/client_server_mp:
On the DPDK box:
1. Bound both NICs to DPDK's UIO.
2. Configured 1024 huge pages on each NUMA Node (there are two NUMA
Nodes in total).
$ cat /proc/meminfo | grep Huge
AnonHugePages: 0 kB
HugePages_Total: 2048
HugePages_Free: 292
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
3. Compiled mp_server and mp_client example applications.
4. Run: sudo ./build/mp_server -c 6 -n 4 -- -p 0x3 -n 1
5. Run: sudo ./build/mp_client -c 8 -n 4 --proc-type=auto -- -n 0
On the "other side" box (with the Linux device drivers):
1. configure a static arp:
$ arp 192.169.10.118
Address HWtype HWaddress Flags
Mask Iface
192.169.10.118 ether 68:05:ca:2d:39:88 CM
ens3
2. Set the MTU on ens3 to 3000 (see below).
3. Use *ping* application for sending frames of different sizes:
1. "ping 192.169.10.118 -s 1400" makes both Rx and Tx counters on
the DPDK side increment.
2. "ping 192.169.10.118 -s 1500" - Rx counter on the DPDK side
doesn't increment.
The DPDK PMD driven setup description:
* Two XL710 single port cards connected to XL710 cards in a different
server back to back.
$ lspci | grep Ether
---snip---
05:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710
for 40GbE QSFP+ (rev 01)
83:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710
for 40GbE QSFP+ (rev 01)
---snip---
$ ethtool -i ens288
driver: i40e
version: 1.3.2-k
firmware-version: f4.22.26225 a1.1 n4.24 e13fd
bus-info: 0000:83:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
$ ethtool -i ens785
driver: i40e
version: 1.3.2-k
firmware-version: f4.22.26225 a1.1 n4.24 e13fd
bus-info: 0000:05:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
$ ifconfig
---snip---
ens288: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 68:05:ca:2d:3a:00 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens785: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 68:05:ca:2d:39:88 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
---snip---
$ cat /etc/redhat-release
Fedora release 21 (Twenty One)
* DPDK git HEAD 7173acefc7cfdfbbb9b91fcba1c9a67adb4c07c9
The Linux drivers driven setup description:
* Two XL710 single port cards connected to XL710 cards in a different
server back to back.
$ lspci | grep Ether
---snip---
04:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710
for 40GbE QSFP+ (rev 01)
83:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710
for 40GbE QSFP+ (rev 01)
---snip---
$ ethtool -i ens3
driver: i40e
version: 1.2.6-k
firmware-version: f4.1 a1.1 n04.10 e80001121
bus-info: 0000:83:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
$ ethtool -i ens5
driver: i40e
version: 1.2.6-k
firmware-version: f4.1 a1.1 n04.10 e80001121
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
$ ifconfig
---snip---
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 3000
inet 192.169.10.199 netmask 255.255.255.0 broadcast
192.169.10.255
ether 68:05:ca:27:d3:72 txqueuelen 1000 (Ethernet)
RX packets 69 bytes 30155 (29.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 746 bytes 820489 (801.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 1.1.1.2 netmask 255.255.255.0 broadcast 1.1.1.255
inet6 fe80::6a05:caff:fe27:d3ea prefixlen 64 scopeid 0x20<link>
ether 68:05:ca:27:d3:ea txqueuelen 1000 (Ethernet)
RX packets 523572634 bytes 34869102046 (32.4 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 523254659 bytes 153342981238 (142.8 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
---snip---
$ cat /etc/redhat-release
Fedora release 21 (Twenty One)_
_$ modinfo i40e
filename:
/lib/modules/4.0.6-200.fc21.x86_64/kernel/drivers/net/ethernet/intel/i40e/i40e.ko.xz
version: 1.2.6-k
license: GPL
description: Intel(R) Ethernet Connection XL710 Network Driver
author: Intel Corporation, <e1000-devel at lists.sourceforge.net>
srcversion: 14800421FE3354248473729
alias: pci:v00008086d00001586sv*sd*bc*sc*i*
alias: pci:v00008086d00001585sv*sd*bc*sc*i*
alias: pci:v00008086d00001584sv*sd*bc*sc*i*
alias: pci:v00008086d00001583sv*sd*bc*sc*i*
alias: pci:v00008086d00001581sv*sd*bc*sc*i*
alias: pci:v00008086d00001580sv*sd*bc*sc*i*
alias: pci:v00008086d0000157Fsv*sd*bc*sc*i*
alias: pci:v00008086d00001574sv*sd*bc*sc*i*
alias: pci:v00008086d00001572sv*sd*bc*sc*i*
depends: ptp,vxlan
intree: Y
vermagic: 4.0.6-200.fc21.x86_64 SMP mod_unload
signer: Fedora kernel signing key
sig_key: F9:FE:41:30:BC:4F:80:F6:C4:1E:A1:E1:5C:73:37:9B:B8:BA:C8:4C
sig_hashalgo: sha256
parm: debug:Debug level (0=none,...,16=all) (int)
_
_
More information about the dev
mailing list