Hello,
When I run a TCP Iperf client, it works with expected TPUT of 6.5 Mbps for approximately 3 hours. After 3 hrs the TPUT drops to ~654 Kbps and eventually to 0, and I see a lot of “prvTCPWindowFastRetransmit”.
TCP: active 8066 => 1.1.168.192 port 5001 set ESTAB (scaling 1)
Socket 8066 -> [192.168.1.1]:5001 State eCONNECT_SYN->eESTABLISHED
--->Time = 2149901
--->ulSequenceNumber= 4280409148, ulFirstSequenceNumber= 2580287303, ulFirst= 4280410608
prvTCPWindowFastRetransmit: Requeue sequence number 1700121845 < 1700123305
ICMPv6_recv 133 (ROUTER_SOL) from 0x2000ea50ip to 0x2000ea60ip end-point = 192.168.1.2
ICMPv6_recv 133 (ROUTER_SOL) from 0x2000eca0ip to 0x2000ecb0ip end-point = 192.168.1.2
ICMPv6_recv 133 (ROUTER_SOL) from 0x2000eb30ip to 0x2000eb40ip end-point = 192.168.1.2
--->Time = 12094922
--->ulSequenceNumber= 3968841002, ulFirstSequenceNumber= 2580287303, ulFirst= 3968842462
prvTCPWindowFastRetransmit: Requeue sequence number 1388553699 < 1388555159
--->Time = 12094923
--->ulSequenceNumber= 3968843922, ulFirstSequenceNumber= 2580287303, ulFirst= 3968845382
prvTCPWindowFastRetransmit: Requeue sequence number 1388556619 < 1388558079
--->Time = 12095030
--->ulSequenceNumber= 3968841002, ulFirstSequenceNumber= 2580287303, ulFirst= 3968845382
prvTCPWindowFastRetransmit: Requeue sequence number 1388553699 < 1388558079
--->Time = 12095040
--->ulSequenceNumber= 3968851222, ulFirstSequenceNumber= 2580287303, ulFirst= 3968852682
prvTCPWindowFastRetransmit: Requeue sequence number 1388563919 < 1388565379
--->Time = 12095046
--->ulSequenceNumber= 3968854142, ulFirstSequenceNumber= 2580287303, ulFirst= 3968855602
prvTCPWindowFastRetransmit: Requeue sequence number 1388566839 < 1388568299
Has anyone run iperf for a long duration with FreeRTOS+TCP stack.? I think this happens when the sequence number wraps around UINT32_MAX.? I have tried the same with LWIP stack and it works. Any help would be appreciated.
I am using the following configs:
#define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 10
#define ipconfigUSE_TCP_WIN ( 1 )
#define ipconfigNETWORK_MTU 1500U
#define ipconfigTCP_WIN_SEG_COUNT 240
#define ipconfigTCP_RX_BUFFER_LENGTH ( 20000 )
#define ipconfigTCP_TX_BUFFER_LENGTH ( 20000 )
Thanks.