From eae67ef9a5dfac4ced3467bdc7c593a1973c989d Mon Sep 17 00:00:00 2001 From: wangchen Date: Wed, 2 Jul 2025 15:40:21 +0800 Subject: [PATCH] tcp: Reset wb_nack to zero when it hits TCP fast retransmit threshold The modification is to solve the problem that the opposite end cannot receive the retransmission message, and the protocol stack no longer sends retransmission messages Signed-off-by: wangchen --- net/tcp/tcp_send_buffered.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/net/tcp/tcp_send_buffered.c b/net/tcp/tcp_send_buffered.c index 0be1cac5e6b..1e47081aefb 100644 --- a/net/tcp/tcp_send_buffered.c +++ b/net/tcp/tcp_send_buffered.c @@ -600,6 +600,12 @@ static uint16_t psock_send_eventhandler(FAR struct net_driver_s *dev, { /* Fast retransmission has been triggered */ +#ifndef CONFIG_NET_TCP_CC_NEWRENO + /* Reset counter */ + + TCP_WBNACK(wrb) = 0; +#endif + if ((flags & TCP_NEWDATA) != 0) { FAR uint8_t *buf = dev->d_buf; @@ -619,7 +625,6 @@ static uint16_t psock_send_eventhandler(FAR struct net_driver_s *dev, * driver to send the message and marked as rexmit */ - TCP_WBNACK(wrb) = 0; conn->timeout = true; netdev_txnotify_dev(conn->dev); @@ -653,11 +658,6 @@ static uint16_t psock_send_eventhandler(FAR struct net_driver_s *dev, /* Do fast retransmit */ rexmitno = ackno; -#ifndef CONFIG_NET_TCP_CC_NEWRENO - /* Reset counter */ - - TCP_WBNACK(wrb) = 0; -#endif #endif }