Hello, Lars has send me an sniffer log which captures the problem. It shows several TCP retransmissions and DUP ACK's.The IO Graph shows that the first 2 seconds contains a burst of Data, then the TCP connection is stuck within Flow Control... or however you want to call it.
I think here we can see several problems ( just guessing ):1. A low-level driver problem. Which results in lost packets. (maybe because of speed of packet scheduling?) TCP should be able to handle it. 2. The FreeMiNT TCP module fails to handle the problems, maybe it fails because packet scheduling is to fast for a small tcp window?
Either someone is able to fix the Protocol level, maybe the driver problem is still there then, but maybe the speed is still good enough, depends on how many errors occur... or maybe someone is able to fix the driver... so that there won't be so much errors. Maybe it is just an buffer somewhere, which is to small for the speed of packet scheduling... It could be wihtin both layers. Or maybe there is an error reading Packets from the ethernet device.
Personally, I could just try to pinpoint a workaround, may some of the results in success:
1. Enable 200Hz interrupt for the Ethernec driver, instead of the i6 approach ( which seems to be enabled by default ). Btw. what is that for an interrupt source?
2. Play around with the Ethernat control register, the readme says:The interrupt vectors are $C3 for the USB and $C4 for the ethernet. There
is a kind of main control register implemented in the CPLD, which is a byte at 0x80000023. In this register you'll find the following bits: The Ethernat control reg Bit 0: LAN half clock mode, default 1 (on) Bit 1: LAN interrupt enable, default 0 (off) Bit 2: USB interrupt enable, default 0 (off) Bit 3: unused Bit 4: unused Bit 5: unused Bit 6: Led 1 active low, default 1 (off) Bit 7: Led 2 active low, default 1 (off)A few words about this register: Bit0 must always be on if your CT60 clock frequency is above 50MHz, else it should be off to get higher throughput
from the LAN chip. But you'll have to recompile the driver to change this... Bit 1 and Bit 2 are the main interrupt enable switches for the ethernetand USB respectively. If these aren't enabled then no interrupts will get
through to the CT60. -------So, it looks like the Bit 0 is properly set for the CT60 + Bus speeder. (which is the case here, right?) - But anyway, trying to disable it maybe results
in better results. Or maybe the defult is not correctly documented?Bit 1 seems to be disabled by default, I don't know if it makes sense to pass these interrupts to the CT60... one could also try that,
that results in an total of 14 driver setups ... Maybe it's faster to compile 14 different versions of the driver, than searching within the sources for an bug with default settings =) ?
I'm attaching : - IO Graph screenshot - TCP Flow as plain Text (ignore ICMP from 192.168.02) - Sniffer log as plain text - Sniffer log as wireshark file. Greets, m
|Time | 192.168.0.4 | 192.168.0.2 | | | | 193.195.70.9 | |0,058 | SYN | | |Seq = 0 Ack = 370916845 | |(1027) ------------------> (80) | | |0,087 | SYN, ACK | | |Seq = 0 Ack = 1 | |(1027) <------------------ (80) | | |0,092 | ACK | | |Seq = 1 Ack = 1 | |(1027) ------------------> (80) | | |0,102 | PSH, ACK - Len: 194 | |Seq = 1 Ack = 1 | |(1027) ------------------> (80) | | |0,130 | ACK | | |Seq = 1 Ack = 195 | |(1027) <------------------ (80) | | |0,134 | ACK - Len: 1460 | |Seq = 1 Ack = 195 | |(1027) <------------------ (80) | | |0,134 | PSH, ACK - Len: 1460 | |Seq = 1461 Ack = 195 | |(1027) <------------------ (80) | | |0,138 | ACK | | |Seq = 195 Ack = 2921 | |(1027) ------------------> (80) | | |0,142 | ACK | | |Seq = 195 Ack = 2921 | |(1027) ------------------> (80) | | |0,167 | ACK - Len: 1460 | |Seq = 2921 Ack = 195 | |(1027) <------------------ (80) | | |0,171 | PSH, ACK - Len: 1460 | |Seq = 4381 Ack = 195 | |(1027) <------------------ (80) | | |0,171 | ACK - Len: 1460 | |Seq = 5841 Ack = 195 | |(1027) <------------------ (80) | | |0,177 | ACK | | |Seq = 195 Ack = 5841 | |(1027) ------------------> (80) | | |0,206 | ACK - Len: 1460 | |Seq = 7301 Ack = 195 | |(1027) <------------------ (80) | | |0,206 | ACK - Len: 1460 | |Seq = 8761 Ack = 195 | |(1027) <------------------ (80) | | |0,213 | ACK | | |Seq = 195 Ack = 5841 | |(1027) ------------------> (80) | | |0,217 | ACK | | |Seq = 195 Ack = 5841 | |(1027) ------------------> (80) | | |0,434 | ACK - Len: 1460 | |Seq = 5841 Ack = 195 | |(1027) <------------------ (80) | | |0,438 | ACK | | |Seq = 195 Ack = 10221 | |(1027) ------------------> (80) | | |0,442 | ACK | | |Seq = 195 Ack = 10221 | |(1027) ------------------> (80) | | |0,468 | PSH, ACK - Len: 1460 | |Seq = 10221 Ack = 195 | |(1027) <------------------ (80) | | |0,469 | PSH, ACK - Len: 1460 | |Seq = 11681 Ack = 195 | |(1027) <------------------ (80) | | |0,473 | ACK | | |Seq = 195 Ack = 13141 | |(1027) ------------------> (80) | | |0,477 | ACK | | |Seq = 195 Ack = 13141 | |(1027) ------------------> (80) | | |0,502 | ACK - Len: 1460 | |Seq = 13141 Ack = 195 | |(1027) <------------------ (80) | | |0,506 | PSH, ACK - Len: 1460 | |Seq = 14601 Ack = 195 | |(1027) <------------------ (80) | | |0,506 | ACK - Len: 1460 | |Seq = 16061 Ack = 195 | |(1027) <------------------ (80) | | |0,513 | ACK | | |Seq = 195 Ack = 16061 | |(1027) ------------------> (80) | | |0,517 | ACK | | |Seq = 195 Ack = 17521 | |(1027) ------------------> (80) | | |0,541 | PSH, ACK - Len: 1460 | |Seq = 17521 Ack = 195 | |(1027) <------------------ (80) | | |0,545 | ACK - Len: 1460 | |Seq = 18981 Ack = 195 | |(1027) <------------------ (80) | | |0,546 | PSH, ACK - Len: 1460 | |Seq = 20441 Ack = 195 | |(1027) <------------------ (80) | | |0,549 | ACK | | |Seq = 195 Ack = 20441 | |(1027) ------------------> (80) | | |0,552 | ACK | | |Seq = 195 Ack = 21901 | |(1027) ------------------> (80) | | |0,581 | ACK - Len: 1460 | |Seq = 21901 Ack = 195 | |(1027) <------------------ (80) | | |0,582 | PSH, ACK - Len: 1460 | |Seq = 23361 Ack = 195 | |(1027) <------------------ (80) | | |0,582 | PSH, ACK - Len: 1460 | |Seq = 24821 Ack = 195 | |(1027) <------------------ (80) | | |0,589 | ACK | | |Seq = 195 Ack = 24821 | |(1027) ------------------> (80) | | |0,592 | ACK | | |Seq = 195 Ack = 26281 | |(1027) ------------------> (80) | | |0,621 | ACK - Len: 1460 | |Seq = 26281 Ack = 195 | |(1027) <------------------ (80) | | |0,622 | PSH, ACK - Len: 1460 | |Seq = 27741 Ack = 195 | |(1027) <------------------ (80) | | |0,622 | ACK - Len: 1460 | |Seq = 29201 Ack = 195 | |(1027) <------------------ (80) | | |0,629 | ACK | | |Seq = 195 Ack = 29201 | |(1027) ------------------> (80) | | |0,632 | ACK | | |Seq = 195 Ack = 30661 | |(1027) ------------------> (80) | | |0,660 | PSH, ACK - Len: 1460 | |Seq = 30661 Ack = 195 | |(1027) <------------------ (80) | | |0,660 | PSH, ACK - Len: 1460 | |Seq = 32121 Ack = 195 | |(1027) <------------------ (80) | | |0,662 | ACK - Len: 1460 | |Seq = 33581 Ack = 195 | |(1027) <------------------ (80) | | |0,668 | ACK | | |Seq = 195 Ack = 32121 | |(1027) ------------------> (80) | | |0,934 | PSH, ACK - Len: 1460 | |Seq = 32121 Ack = 195 | |(1027) <------------------ (80) | | |0,938 | ACK | | |Seq = 195 Ack = 35041 | |(1027) ------------------> (80) | | |0,942 | ACK | | |Seq = 195 Ack = 35041 | |(1027) ------------------> (80) | | |0,967 | PSH, ACK - Len: 1460 | |Seq = 35041 Ack = 195 | |(1027) <------------------ (80) | | |0,970 | ACK - Len: 1460 | |Seq = 36501 Ack = 195 | |(1027) <------------------ (80) | | |0,973 | ACK | | |Seq = 195 Ack = 37961 | |(1027) ------------------> (80) | | |0,977 | ACK | | |Seq = 195 Ack = 37961 | |(1027) ------------------> (80) | | |1,004 | PSH, ACK - Len: 1460 | |Seq = 37961 Ack = 195 | |(1027) <------------------ (80) | | |1,008 | ACK - Len: 1460 | |Seq = 39421 Ack = 195 | |(1027) <------------------ (80) | | |1,008 | PSH, ACK - Len: 1460 | |Seq = 40881 Ack = 195 | |(1027) <------------------ (80) | | |1,013 | ACK | | |Seq = 195 Ack = 40881 | |(1027) ------------------> (80) | | |1,017 | ACK | | |Seq = 195 Ack = 42341 | |(1027) ------------------> (80) | | |1,044 | ACK - Len: 1460 | |Seq = 42341 Ack = 195 | |(1027) <------------------ (80) | | |1,049 | PSH, ACK - Len: 1460 | |Seq = 43801 Ack = 195 | |(1027) <------------------ (80) | | |1,049 | ACK - Len: 1460 | |Seq = 45261 Ack = 195 | |(1027) <------------------ (80) | | |1,054 | ACK | | |Seq = 195 Ack = 45261 | |(1027) ------------------> (80) | | |1,057 | ACK | | |Seq = 195 Ack = 46721 | |(1027) ------------------> (80) | | |1,085 | PSH, ACK - Len: 1460 | |Seq = 46721 Ack = 195 | |(1027) <------------------ (80) | | |1,088 | ACK - Len: 1460 | |Seq = 48181 Ack = 195 | |(1027) <------------------ (80) | | |1,088 | PSH, ACK - Len: 1460 | |Seq = 49641 Ack = 195 | |(1027) <------------------ (80) | | |1,093 | ACK | | |Seq = 195 Ack = 49641 | |(1027) ------------------> (80) | | |1,097 | ACK | | |Seq = 195 Ack = 51101 | |(1027) ------------------> (80) | | |1,124 | ACK - Len: 1460 | |Seq = 51101 Ack = 195 | |(1027) <------------------ (80) | | |1,128 | PSH, ACK - Len: 1460 | |Seq = 52561 Ack = 195 | |(1027) <------------------ (80) | | |1,128 | ACK - Len: 1460 | |Seq = 54021 Ack = 195 | |(1027) <------------------ (80) | | |1,133 | ACK | | |Seq = 195 Ack = 54021 | |(1027) ------------------> (80) | | |1,137 | ACK | | |Seq = 195 Ack = 55481 | |(1027) ------------------> (80) | | |1,161 | PSH, ACK - Len: 1460 | |Seq = 55481 Ack = 195 | |(1027) <------------------ (80) | | |1,166 | PSH, ACK - Len: 1460 | |Seq = 56941 Ack = 195 | |(1027) <------------------ (80) | | |1,166 | ACK - Len: 1460 | |Seq = 58401 Ack = 195 | |(1027) <------------------ (80) | | |1,173 | ACK | | |Seq = 195 Ack = 58401 | |(1027) ------------------> (80) | | |1,177 | ACK | | |Seq = 195 Ack = 59861 | |(1027) ------------------> (80) | | |1,205 | PSH, ACK - Len: 1460 | |Seq = 59861 Ack = 195 | |(1027) <------------------ (80) | | |1,209 | ACK - Len: 1460 | |Seq = 61321 Ack = 195 | |(1027) <------------------ (80) | | |1,209 | PSH, ACK - Len: 1460 | |Seq = 62781 Ack = 195 | |(1027) <------------------ (80) | | |1,213 | ACK | | |Seq = 195 Ack = 62781 | |(1027) ------------------> (80) | | |1,217 | ACK | | |Seq = 195 Ack = 64241 | |(1027) ------------------> (80) | | |1,241 | ACK - Len: 1460 | |Seq = 64241 Ack = 195 | |(1027) <------------------ (80) | | |1,246 | PSH, ACK - Len: 1460 | |Seq = 65701 Ack = 195 | |(1027) <------------------ (80) | | |1,246 | ACK - Len: 1460 | |Seq = 67161 Ack = 195 | |(1027) <------------------ (80) | | |1,252 | ACK | | |Seq = 195 Ack = 67161 | |(1027) ------------------> (80) | | |1,279 | PSH, ACK - Len: 1460 | |Seq = 68621 Ack = 195 | |(1027) <------------------ (80) | | |1,279 | PSH, ACK - Len: 1460 | |Seq = 70081 Ack = 195 | |(1027) <------------------ (80) | | |1,283 | ACK | | |Seq = 195 Ack = 67161 | |(1027) ------------------> (80) | | |1,287 | ACK | | |Seq = 195 Ack = 67161 | |(1027) ------------------> (80) | | |1,514 | ACK - Len: 1460 | |Seq = 67161 Ack = 195 | |(1027) <------------------ (80) | | |1,518 | ACK | | |Seq = 195 Ack = 71541 | |(1027) ------------------> (80) | | |1,522 | ACK | | |Seq = 195 Ack = 71541 | |(1027) ------------------> (80) | | |1,551 | ACK - Len: 1460 | |Seq = 71541 Ack = 195 | |(1027) <------------------ (80) | | |1,551 | PSH, ACK - Len: 1460 | |Seq = 73001 Ack = 195 | |(1027) <------------------ (80) | | |1,559 | ACK | | |Seq = 195 Ack = 74461 | |(1027) ------------------> (80) | | |1,562 | ACK | | |Seq = 195 Ack = 74461 | |(1027) ------------------> (80) | | |1,586 | ACK - Len: 1460 | |Seq = 74461 Ack = 195 | |(1027) <------------------ (80) | | |1,591 | PSH, ACK - Len: 1460 | |Seq = 75921 Ack = 195 | |(1027) <------------------ (80) | | |1,591 | ACK - Len: 1460 | |Seq = 77381 Ack = 195 | |(1027) <------------------ (80) | | |1,593 | ACK | | |Seq = 195 Ack = 77381 | |(1027) ------------------> (80) | | |1,598 | ACK | | |Seq = 195 Ack = 77381 | |(1027) ------------------> (80) | | |1,617 | ACK | | |Seq = 195 Ack = 78841 | |(1027) ------------------> (80) | | |1,627 | PSH, ACK - Len: 1460 | |Seq = 78841 Ack = 195 | |(1027) <------------------ (80) | | |1,628 | ACK - Len: 1460 | |Seq = 80301 Ack = 195 | |(1027) <------------------ (80) | | |1,633 | ACK | | |Seq = 195 Ack = 81761 | |(1027) ------------------> (80) | | |1,637 | ACK | | |Seq = 195 Ack = 81761 | |(1027) ------------------> (80) | | |1,649 | PSH, ACK - Len: 1460 | |Seq = 81761 Ack = 195 | |(1027) <------------------ (80) | | |1,657 | ACK | | |Seq = 195 Ack = 83221 | |(1027) ------------------> (80) | | |1,669 | PSH, ACK - Len: 1460 | |Seq = 83221 Ack = 195 | |(1027) <------------------ (80) | | |1,669 | ACK - Len: 1460 | |Seq = 84681 Ack = 195 | |(1027) <------------------ (80) | | |1,673 | ACK | | |Seq = 195 Ack = 86141 | |(1027) ------------------> (80) | | |1,677 | ACK | | |Seq = 195 Ack = 86141 | |(1027) ------------------> (80) | | |1,687 | PSH, ACK - Len: 1460 | |Seq = 86141 Ack = 195 | |(1027) <------------------ (80) | | |1,697 | ACK | | |Seq = 195 Ack = 87601 | |(1027) ------------------> (80) | | |1,705 | ACK - Len: 1460 | |Seq = 87601 Ack = 195 | |(1027) <------------------ (80) | | |1,705 | PSH, ACK - Len: 1460 | |Seq = 89061 Ack = 195 | |(1027) <------------------ (80) | | |1,709 | ACK | | |Seq = 195 Ack = 90521 | |(1027) ------------------> (80) | | |1,712 | ACK | | |Seq = 195 Ack = 90521 | |(1027) ------------------> (80) | | |1,729 | ACK - Len: 1460 | |Seq = 90521 Ack = 195 | |(1027) <------------------ (80) | | |1,737 | ACK | | |Seq = 195 Ack = 91981 | |(1027) ------------------> (80) | | |1,742 | PSH, ACK - Len: 1460 | |Seq = 91981 Ack = 195 | |(1027) <------------------ (80) | | |1,742 | ACK - Len: 1460 | |Seq = 93441 Ack = 195 | |(1027) <------------------ (80) | | |1,748 | ACK | | |Seq = 195 Ack = 94901 | |(1027) ------------------> (80) | | |1,752 | ACK | | |Seq = 195 Ack = 94901 | |(1027) ------------------> (80) | | |1,766 | PSH, ACK - Len: 1460 | |Seq = 94901 Ack = 195 | |(1027) <------------------ (80) | | |1,777 | ACK | | |Seq = 195 Ack = 96361 | |(1027) ------------------> (80) | | |1,784 | ACK - Len: 1460 | |Seq = 96361 Ack = 195 | |(1027) <------------------ (80) | | |1,785 | PSH, ACK - Len: 1460 | |Seq = 97821 Ack = 195 | |(1027) <------------------ (80) | | |1,789 | ACK | | |Seq = 195 Ack = 99281 | |(1027) ------------------> (80) | | |1,792 | ACK | | |Seq = 195 Ack = 99281 | |(1027) ------------------> (80) | | |1,810 | ACK - Len: 1460 | |Seq = 99281 Ack = 195 | |(1027) <------------------ (80) | | |1,817 | ACK | | |Seq = 195 Ack = 100741 | |(1027) ------------------> (80) | | |1,822 | PSH, ACK - Len: 1460 | |Seq = 100741 Ack = 195 | |(1027) <------------------ (80) | | |1,822 | PSH, ACK - Len: 1460 | |Seq = 102201 Ack = 195 | |(1027) <------------------ (80) | | |1,829 | ACK | | |Seq = 195 Ack = 103661 | |(1027) ------------------> (80) | | |1,832 | ACK | | |Seq = 195 Ack = 103661 | |(1027) ------------------> (80) | | |1,847 | ACK - Len: 1460 | |Seq = 103661 Ack = 195 | |(1027) <------------------ (80) | | |1,857 | ACK | | |Seq = 195 Ack = 105121 | |(1027) ------------------> (80) | | |1,860 | PSH, ACK - Len: 1460 | |Seq = 105121 Ack = 195 | |(1027) <------------------ (80) | | |1,860 | ACK - Len: 1460 | |Seq = 106581 Ack = 195 | |(1027) <------------------ (80) | | |1,868 | ACK | | |Seq = 195 Ack = 108041 | |(1027) ------------------> (80) | | |1,885 | PSH, ACK - Len: 1460 | |Seq = 108041 Ack = 195 | |(1027) <------------------ (80) | | |1,888 | ACK | | |Seq = 195 Ack = 109501 | |(1027) ------------------> (80) | | |1,898 | ACK - Len: 1460 | |Seq = 109501 Ack = 195 | |(1027) <------------------ (80) | | |1,915 | PSH, ACK - Len: 1460 | |Seq = 110961 Ack = 195 | |(1027) <------------------ (80) | | |1,915 | ACK - Len: 1460 | |Seq = 112421 Ack = 195 | |(1027) <------------------ (80) | | |2,147 | ACK - Len: 1460 | |Seq = 109501 Ack = 195 | |(1027) <------------------ (80) | | |2,153 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |2,153 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |2,604 | ACK - Len: 1460 | |Seq = 109501 Ack = 195 | |(1027) <------------------ (80) | | |2,608 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |2,608 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |3,524 | ACK - Len: 1460 | |Seq = 109501 Ack = 195 | |(1027) <------------------ (80) | | |3,528 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |3,528 | ACK | | |Seq = 1313077895 Ack = 3924162872 | |(80) <-------------------------------------- (1027) | |3,528 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |5,364 | ACK - Len: 1460 | |Seq = 109501 Ack = 195 | |(1027) <------------------ (80) | | |5,368 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |5,368 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |9,045 | ACK - Len: 1460 | |Seq = 109501 Ack = 195 | |(1027) <------------------ (80) | | |9,048 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |9,048 | ACK | | |Seq = 1313077895 Ack = 3924162872 | |(80) <-------------------------------------- (1027) | |9,048 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |16,405 | ACK - Len: 1460 | |Seq = 109501 Ack = 195 | |(1027) <------------------ (80) | | |16,409 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |16,409 | ACK | | |Seq = 1313077895 Ack = 3924162872 | |(80) <-------------------------------------- (1027) | |16,409 | ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |20,464 | FIN, ACK | | |Seq = 195 Ack = 112421 | |(1027) ------------------> (80) | | |20,491 | ACK - Len: 1460 | |Seq = 112421 Ack = 195 | |(1027) <------------------ (80) | | |20,491 | PSH, ACK - Len: 1460 | |Seq = 113881 Ack = 196 | |(1027) <------------------ (80) | | |20,495 | RST | | |Seq = 195 Ack = 113881 | |(1027) ------------------> (80) | | |20,495 | RST | | |Seq = 195 Ack = 113881 | |(1027) ------------------> (80) | | |20,499 | RST | | |Seq = 196 Ack = 115341 | |(1027) ------------------> (80) | | |20,499 | RST | | |Seq = 196 Ack = 115341 | |(1027) ------------------> (80) | |
Attachment:
iograph.png
Description: PNG image
��� ��