Good afternoon,
I am having an issue with flow control of tcp data being received by the am335x running lwip 1.4.1. My code is based on the Starterware example only we are using sys/bios and I updated lwip to try and remedy this and a couple of other issues I saw.
Basically what I am doing is receiving data into the tcp_recv function which pushes the data into a thread safe buffer and frees the pbuf. Then in another thread this data is pulled in chunks and written to file.
I then call tcp_recved() with the amount of data I have written. I checked nothing is over flowing and I tried just printing the window size and emptying the buffer without writing and its the same issue. It takes a varied amount of time to happen.
However when I put the tcp_recved() in the tcp_recv() function and throttle the data by reducing the window sir or sending it slower it works?
Below is how it ends in wireshark with some duplicate acks then reporting window full, 195.0.0.133 is the lwip macine.
Has anybody seen anything similar or have any suggestions?
Thanks
Sean