sctp: Start T3-RTX timer when fast retransmitting lowest TSN
When we are trying to fast retransmit the lowest outstanding TSN, we need to restart the T3-RTX timer, so that subsequent timeouts will correctly tag all the packets necessary for retransmissions. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Tested-by: Wei Yongjun <yjwei@cn.fujitsu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

orang tua
a646523481
melakukan
62aeaff5cc
@@ -191,7 +191,7 @@ static void sctp_transport_destroy(struct sctp_transport *transport)
|
||||
/* Start T3_rtx timer if it is not already running and update the heartbeat
|
||||
* timer. This routine is called every time a DATA chunk is sent.
|
||||
*/
|
||||
void sctp_transport_reset_timers(struct sctp_transport *transport)
|
||||
void sctp_transport_reset_timers(struct sctp_transport *transport, int force)
|
||||
{
|
||||
/* RFC 2960 6.3.2 Retransmission Timer Rules
|
||||
*
|
||||
@@ -201,7 +201,7 @@ void sctp_transport_reset_timers(struct sctp_transport *transport)
|
||||
* address.
|
||||
*/
|
||||
|
||||
if (!timer_pending(&transport->T3_rtx_timer))
|
||||
if (force || !timer_pending(&transport->T3_rtx_timer))
|
||||
if (!mod_timer(&transport->T3_rtx_timer,
|
||||
jiffies + transport->rto))
|
||||
sctp_transport_hold(transport);
|
||||
|
Reference in New Issue
Block a user