sctp: Fix broken RTO-doubling for data retransmits
Commit faee47cdbf
(sctp: Fix the RTO-doubling on idle-link heartbeats)
broke the RTO doubling for data retransmits. If the
heartbeat was sent before the data T3-rtx time, the
the RTO will not double upon the T3-rtx expiration.
Distingish between the operations by passing an argument
to the function.
Additionally, Wei Youngjun pointed out that our treatment
of requested HEARTBEATS and timer HEARTBEATS is the same
wrt resetting congestion window. That needs to be separated,
since user requested HEARTBEATS should not treat the link
as idle.
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f61f6f82c9
commit
7e99013a50
@@ -988,7 +988,9 @@ sctp_disposition_t sctp_sf_sendbeat_8_3(const struct sctp_endpoint *ep,
|
||||
/* Set transport error counter and association error counter
|
||||
* when sending heartbeat.
|
||||
*/
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_TRANSPORT_RESET,
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_TRANSPORT_IDLE,
|
||||
SCTP_TRANSPORT(transport));
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_TRANSPORT_HB_SENT,
|
||||
SCTP_TRANSPORT(transport));
|
||||
}
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_HB_TIMER_UPDATE,
|
||||
@@ -4967,7 +4969,7 @@ sctp_disposition_t sctp_sf_do_prm_requestheartbeat(
|
||||
* to that address and not acknowledged within one RTO.
|
||||
*
|
||||
*/
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_TRANSPORT_RESET,
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_TRANSPORT_HB_SENT,
|
||||
SCTP_TRANSPORT(arg));
|
||||
return SCTP_DISPOSITION_CONSUME;
|
||||
}
|
||||
|
Reference in New Issue
Block a user