[SCTP]: Strike the transport before updating rto.
authorVlad Yasevich <vladislav.yasevich@hp.com>
Wed, 21 Feb 2007 10:06:19 +0000 (02:06 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 26 Feb 2007 19:42:50 +0000 (11:42 -0800)
Once we reach a point where we exceed the max.path.retrans, strike the
transport before updating the rto.  This will force transport switch at
the right time, instead of 1 retransmit too late.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/sm_statefuns.c

index b3cad8a..70c39ea 100644 (file)
@@ -4605,12 +4605,12 @@ sctp_disposition_t sctp_sf_do_6_3_3_rtx(const struct sctp_endpoint *ep,
         * sent as soon as cwnd allows (normally when a SACK arrives).
         */
 
-       /* NB: Rules E4 and F1 are implicit in R1.  */
-       sctp_add_cmd_sf(commands, SCTP_CMD_RETRAN, SCTP_TRANSPORT(transport));
-
        /* Do some failure management (Section 8.2). */
        sctp_add_cmd_sf(commands, SCTP_CMD_STRIKE, SCTP_TRANSPORT(transport));
 
+       /* NB: Rules E4 and F1 are implicit in R1.  */
+       sctp_add_cmd_sf(commands, SCTP_CMD_RETRAN, SCTP_TRANSPORT(transport));
+
        return SCTP_DISPOSITION_CONSUME;
 }