All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] SCTP: Fix DATA retransmit after fast retransmit
@ 2008-04-18  7:56 Wei Yongjun
  2008-04-18 19:41 ` Vlad Yasevich
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Wei Yongjun @ 2008-04-18  7:56 UTC (permalink / raw)
  To: linux-sctp

If DATA chunk is resend by fast retransmit, and no SACK is received, 
this DATA chunk can not be send again after T3 timeout.

This is because chunk->sent_at will be update after chunk is 
transmitted, but after fast retransmit, T3 timer will not be reset, so 
sctp_retransmit_mark() can not mark this chunk for retransmit, and will 
never sent again because not T3 timer is running.

You can test this by following data transmit:

Endpoint A                    Endpoint B

              <--------------  DATA1
              <--------------  DATA2
              <--------------  DATA3
              <--------------  DATA4
              <--------------  DATA5
 SACK(1,2)    --------------->
 SACK(1,3)    --------------->
 SACK(1,3,4)  --------------->
 SACK(1,3,4,5)--------------->
              <--------------  DATA2 (Fast retransmit)
 NO SACK is sent, DATA2 will never be send again.


Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>

--- a/net/sctp/outqueue.c	2008-04-18 09:00:58.000000000 -0400
+++ b/net/sctp/outqueue.c	2008-04-18 09:06:07.000000000 -0400
@@ -425,7 +425,8 @@ void sctp_retransmit_mark(struct sctp_ou
 			 * retransmitting due to T3 timeout.
 			 */
 			if (reason = SCTP_RTXR_T3_RTX &&
-			    (jiffies - chunk->sent_at) < transport->last_rto)
+			    (jiffies - chunk->sent_at) < transport->last_rto &&
+			    !chunk->fast_retransmit)
 				continue;
 
 			/* RFC 2960 6.2.1 Processing a Received SACK



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-04-25 17:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-18  7:56 [PATCH] SCTP: Fix DATA retransmit after fast retransmit Wei Yongjun
2008-04-18 19:41 ` Vlad Yasevich
2008-04-19  5:45 ` Wei Yongjun
2008-04-21 14:37 ` Vlad Yasevich
2008-04-22  4:29 ` Wei Yongjun
2008-04-23 19:53 ` Vlad Yasevich
2008-04-25  4:04 ` Wei Yongjun
2008-04-25 17:56 ` Vlad Yasevich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.