This is an automated email from the ASF dual-hosted git repository. xiaoxiang781216 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 3966a7a61827587f7a60699f85a523038b125b9e Author: raiden00pl <[email protected]> AuthorDate: Thu Oct 22 14:10:30 2026 +0200 net/sixlowpan: retransmit a TCP segment dropped for lack of IOBs A segment that could not be queued because no IOB was free ended the TCP send with -ENOMEM. Count it as sent, so the retransmission timer resends it like a segment lost on the air. Assisted-by: Claude Code Signed-off-by: raiden00pl <[email protected]> --- net/sixlowpan/sixlowpan_tcpsend.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/net/sixlowpan/sixlowpan_tcpsend.c b/net/sixlowpan/sixlowpan_tcpsend.c index 91b6daddc2f..07cf1e2baff 100644 --- a/net/sixlowpan/sixlowpan_tcpsend.c +++ b/net/sixlowpan/sixlowpan_tcpsend.c @@ -464,7 +464,12 @@ static uint32_t tcp_send_eventhandler(FAR struct net_driver_s *dev, &ipv6tcp.ipv6, &sinfo->s_buf[sinfo->s_sent], sndlen, sinfo->s_destmac); - if (ret < 0) + + /* Without IOBs the segment is lost like on the air, the + * retransmission timer sends it again. + */ + + if (ret < 0 && ret != -ENOMEM) { nerr("ERROR: sixlowpan_queue_frames failed: %d\n", ret); sinfo->s_result = ret;
