AnsweredAssumed Answered

i.MX53 FEC transmitting stale buffer.

Question asked by Robert Daniels on Feb 25, 2014
Branched to a new discussion

I've run across an odd issue with our i.MX53 board where the fec driver seems to be sending an older packet from the ring buffer on transmit.  I've done some testing with iperf3 with my tx ring buffer size set to 16 and get results looking like this:

 

Linux ic-ii-22 2.6.35.3 #8 PREEMPT Tue Feb 25 10:30:36 MST 2014 armv7l GNU/Linux

warning: this system does not seem to support IPv6 - trying IPv4

-----------------------------------------------------------

Server listening on 5201

-----------------------------------------------------------

Time: Tue, 25 Feb 2014 17:35:13 GMT

Accepted connection from 192.168.1.151, port 37166

      Cookie: ic-ii-65.1393349687.935384.5ab881022

[  5] local 192.168.1.193 port 5201 connected to 192.168.1.151 port 60511

Starting Test: protocol: UDP, 1 streams, 64 byte blocks, omitting 0 seconds, 10 second test

iperf3: OUT OF ORDER - incoming packet = 6 and received packet = 21 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 22 and received packet = 37 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 38 and received packet = 53 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 54 and received packet = 69 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 70 and received packet = 85 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 86 and received packet = 101 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 102 and received packet = 117 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 118 and received packet = 133 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 134 and received packet = 149 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 150 and received packet = 165 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 166 and received packet = 181 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 182 and received packet = 197 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 198 and received packet = 213 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 214 and received packet = 229 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 230 and received packet = 245 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 246 and received packet = 261 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 262 and received packet = 277 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 278 and received packet = 293 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 294 and received packet = 309 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 310 and received packet = 325 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 326 and received packet = 341 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 342 and received packet = 357 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 358 and received packet = 373 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 374 and received packet = 389 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 390 and received packet = 405 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 406 and received packet = 421 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 422 and received packet = 437 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 438 and received packet = 453 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 454 and received packet = 469 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 470 and received packet = 485 AND SP = 5

iperf3: OUT OF ORDER - incoming packet = 486 and received packet = 501 AND SP = 5

 

Notice that the packet numbers are 16 apart.  The board does not consistently do this and will run correctly for a while but then fall into this type of error situation.  I've even seen more than one buffer get into this state where the pattern will be every 6th and 10th packet.  Also, if I pull the ethernet cable and then plug it back in the situation will be resolved for a while.

 

Has anyone seen something like this before or have any ideas what could be causing this problem?

 

I've attached a Wireshark capture illustrating this problem.  In the capture a ping request will be skipped until later when it goes out together with a later ping request.

 

Message was edited by: Robert Daniels

Original Attachment has been moved to: FECProblem.txt.zip

Outcomes