Hello,

I hope to get some advice on how to debug a problem. I am still investigating it and my knowledge on Ethernet drivers and lwIP is still limited.

We have 2 lwIP (2.0.2) RAW servers on a Zynq based board. Each server can serve only 1 client at a time. Over port 4040 server only receives and over 4041 it only sends data. Everything works fine if we don't receive and send simultaneously. Communication over 4041 (Tx port) stalls at some point. We send and receive at data rates of around 1MB/s, but over 1Gb network.

Looking at Wireshark (121 is PC, 124 is Zynq) we see a lot of Dup ACKs before communication stalls. But once it stalls, no traffic is captured at all. For whole minute nothing is captured, until we close our PC app.

Looking at Lwip memory stats on Zynq nothing unusual is observed. What is strange though is that when communication stalls, LINK STAT xmit value is being updated (increased), however TCP STAT xmit is not being updated at all. Therefore, TCP send buffers are not being emptied and we are not able to write anything at all. We call tcp_output when tcp_sndbuf(pcb) < TCP_MSS/2, where TCP_MSS is 1460. We don't use tcp sent callback at all (is that a problem?), just periodically write to tcp sndbuf. Other side of communication is alive all the time without problems.

Any ideas on what this situation with LINK and TCP xmit stats mean? Any ideas on how to debug this problem further?

Thank you very much,
Nenad

_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to