lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-devel] [bug #32417] TCP_OVERSIZE seems to have problems with (


From: jre1
Subject: Re: [lwip-devel] [bug #32417] TCP_OVERSIZE seems to have problems with (fast-)retransmission
Date: Sun, 4 Sep 2011 15:28:10 -0700 (PDT)

I think I've come up with fixes for this and a related problem.

    1. pcb->last_oversize would not match last_seg->oversize_left
    causing an assert failure.  This occurs after retransmission when
    the retransmitted frame becomes the only frame on the unsent list.
    Fix by clearing seg->oversize_left when sending the frame for the
    first time.
    
    2.  When a segment is requeued on the unsent list for retransmission,
    occasionally tcp_write() would tack on more data either in the oversize,
    or as additional pbufs.  If the window size is sufficiently small, 
    and the original transmission was eventually acked, the frame would 
    not be re-sent, causing the (one-way) connection to hang.
    
    3.  The fix to bug 34019 may also help, so I included that in my patch.
    Note that the single-PBUF #define should keep tcp_write() from
    appending additional PBUFs, but doesn't.  I haven't fixed that yet.

The patch I used is attached.  This is for 1.4.0-rc1, but should apply to
later versions as well.  I'll verify later and may be back with an update.
http://old.nabble.com/file/p32397830/lwip-32417.patch lwip-32417.patch 
-- 
View this message in context: 
http://old.nabble.com/-bug--32417--TCP_OVERSIZE-seems-to-have-problems-with-%28fast-%29retransmission-tp30896314p32397830.html
Sent from the lwip-devel mailing list archive at Nabble.com.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]