Hi all,

I have come across what appears to be an issue with the igb driver/i350 
NIC that I could use some help with.

Linux kernel: 3.12.15-rt25
igb driver: 5.2.5 (and 5.0.5)

Here is the background.
We are in the process of updating computer hardware and moving to a 
system that uses an i350 NIC instead of older e1000 PCI-X hardware. We 
have an existing hardware product that sends out raw Ethernet frames at 
48KHz with an Ethernet frame size of 2080 bytes. This is connected to a 
computer that processes the data and then sends it back at the same rate 
and frame size.

I have setup a simple loopback application that opens a raw socket and 
reads 1 packet from the network and then writes it back out.

The problem I am having is that I am not reading all the data correctly. 
Every packet from the hardware is 2080 bytes, but a small percentage of 
socket reads returns a buffer that is only 590 bytes. The fact that I 
always get a read of 590 bytes is very odd.

I wanted to try to verify that the problem was not in the transfer to 
userland, so I put a couple of checks in igb_clean_rx_irq (after line 
8346) and kept track of the skb->len value and it is always 2080 bytes 
or 590 bytes. The error rate during a recent test was 105 out of 
47,116,519 Ethernet packets.

I started dumping first 40 bytes of the 590 byte read and that produces 
some interesting results.  The MAC destination appears correct 
(broadcast in this case), but the MAC source is wrong and the rest of 
the data that follows is incorrect. Every 590 byte read has the same 
first 40 bytes of data in it. I have not compare the rest to see if the 
entire 590 byte read is the same. This makes me think that I am some how 
getting a stale buffer.

When I get a good socket read of 2080 bytes, I am able to send it back 
to the hardware producer and it verifies that the data is correct.

Any thoughts on what could be the cause of this or where in the driver 
would be a good place to start looking?


Thanks,
Todd Naugle
Engineering
Harrison Consoles


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to