I've almost finished porting our application from 2010R1 to 2013R1. I could port my drivers, applications, everything.
There is only one issue left. We have a 5 port ethernet switch chip on our board. Ethernet driver works fine, I had to make small modifications in genphy driver. Analysing the traffic I sometimes see retransmitted packages, duplicated ACK, sometimes out of order messages.
It was in our 2010R1 based firmware but the ethernet connection was fast.
Using the same board with 2013R1 firmware I see more duplicated ACKs and retransmissions. The connection slows down and the performance is very poor.
If I try to upload big file (couple of MB using ftp or web) from my Linux computer it is fast. Upload the same file from a Windows computer is always terrible slow.
During the upload the number of dropped packages (ifconfig eth0) does not increasing dramatically just a little bit. I think the HW and the driver works fine.
It must be something with the TCP. I tried to turned off tcp scaling window option but no effect.
Sniffing the traffic with Wireshark I see that the initial size of the window is higher in this kernel. As soon as the window size reached 32k limit the transfer start to being disturbed. Download is OK, I have problems with upload only.
I need advice what should I check.