net/tcp(unbuffered): fixed an issue with tx_unacked overflow that occurred if NET_TCP_WINDOW_SCALE option was enabled.

If the remote TCP receiver advertised TCP window size greater than 64 KB
and TCP ACK packets returned to the NuttX TCP sender with a significant delay,
tx_unacked variable overflowed and further TCP send stalled forever
(until TCP re-connection).
This commit is contained in:
Alexander Lunev 2021-12-26 22:50:29 +03:00 committed by Xiang Xiao
parent ab0f5f607d
commit 19dc121a4f

View File

@ -215,7 +215,8 @@ struct tcp_conn_s
int32_t snd_bufs; /* Maximum amount of bytes queued in send */
sem_t snd_sem; /* Semaphore signals send completion */
#endif
#ifdef CONFIG_NET_TCP_WRITE_BUFFERS
#if defined(CONFIG_NET_TCP_WRITE_BUFFERS) || \
defined(CONFIG_NET_TCP_WINDOW_SCALE)
uint32_t tx_unacked; /* Number bytes sent but not yet ACKed */
#else
uint16_t tx_unacked; /* Number bytes sent but not yet ACKed */