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;

Reply via email to