sctp: stop pending timers and purge queues when peer restart asoc
If the peer restart the asoc, we should not only fail any unsent/unacked data, but also stop the T3-rtx, SACK, T4-rto timers, and teardown ASCONF queues. Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b10cec8a4e
commit
a000c01e60
5 changed files with 31 additions and 12 deletions
|
@ -1718,11 +1718,21 @@ static sctp_disposition_t sctp_sf_do_dupcook_a(const struct sctp_endpoint *ep,
|
|||
return SCTP_DISPOSITION_CONSUME;
|
||||
}
|
||||
|
||||
/* For now, fail any unsent/unacked data. Consider the optional
|
||||
* choice of resending of this data.
|
||||
/* For now, stop pending T3-rtx and SACK timers, fail any unsent/unacked
|
||||
* data. Consider the optional choice of resending of this data.
|
||||
*/
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_T3_RTX_TIMERS_STOP, SCTP_NULL());
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_TIMER_STOP,
|
||||
SCTP_TO(SCTP_EVENT_TIMEOUT_SACK));
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_PURGE_OUTQUEUE, SCTP_NULL());
|
||||
|
||||
/* Stop pending T4-rto timer, teardown ASCONF queue, ASCONF-ACK queue
|
||||
* and ASCONF-ACK cache.
|
||||
*/
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_TIMER_STOP,
|
||||
SCTP_TO(SCTP_EVENT_TIMEOUT_T4_RTO));
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_PURGE_ASCONF_QUEUE, SCTP_NULL());
|
||||
|
||||
repl = sctp_make_cookie_ack(new_asoc, chunk);
|
||||
if (!repl)
|
||||
goto nomem;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue