Dear TI team,
i do have a problem with your TI RTOS network stack:
In case of an idle network connection for about 300-400 seconds, all following, incoming packets (e.g. ICMP Echo or TCP) seems to be dropped for a - about 5 to 10 seconds - period of time.
Sending data over an open but inactive TCP connection (keep-alive disabled) leads to retransmission packets.
After about 10 seconds or non-response and dropping some retransmission packets, the stack responds and the TCP connection can be used as before.
Using a TCP connection with enabled keep-alive feature avoids this issue.
The host (Windows 10 computer) and the target (AM3352) are connected directly (without any other network components, e.g. switches) and use static IP addresses.
Computer: 192.168.1.77
AM3352: 192.168.1.20
I can confirm this behaviour on 2 different boards:
A customized PCB and the BBB (BeagleBone Black).
Toolchain:
NDK 3.60.00.13
PDK 1.0.15
EDMA3 LL 2.12.5
Sys/Bios 6.75.2.00
UIA 2.30.1.02
XDCtools 3.60.2.34
Processor:
AM3352
The same issue occurs when I use NDK 2.26.0.08.
I use a patched NDK which fixes a network stack lockup bug.
-> see the solution in this thread: e2e.ti.com/.../3149418
Debugging via "XDS220 ISO" and enabled SemiHosting feature does not show any messages but only the init message:
[CortxA8] Network Added: If-1:192.168.1.20
The tcps data structure does not show any problems, too.
Beyond you will find the debug- and a wireshark log for the following test case ('Idle-Retransmission-Problem'):
* Boot up AM3352
* Establish a TCP connection at port 12666
* Wait for a period of time (in this case 478s)
* Try to send data over the TCP connection
You will see retransmission packets in the wireshark log until the network stack works again.
I also added a screenshot of the "tcps" data structure after the incident.
The same kind of problem occurs if I do not use a TCP server but ICMP echo instead.
I wrote a test which sends a ICMP Echo, delayed by an increasing interval (10s), starting a delay of 300s until the ICMP Echo fails.
This procedure is executed 3 times.
The wireshark log 'Interval Ping Timeout' shows the results of this test.
You can see the issue starting at packets #18, #41, #65
IMHO this looks like a bug in the network stack.
Kind regards,
Markus
