diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2010-04-30 21:42:43 -0400 |
---|---|---|
committer | Vlad Yasevich <vladislav.yasevich@hp.com> | 2010-04-30 21:42:43 -0400 |
commit | bd69b981a354be40cc709f3046f0c56f00da6163 (patch) | |
tree | 60fec31042a51203b945c8b492c6fa6e9366fccc /net/sctp | |
parent | c17b02b38aa99ef806c7066ef19a6f51122304f1 (diff) |
sctp: assure at least one T3-rtx timer is running if a FORWARD TSN is sent
PR-SCTP extension section 3.5 Sender Side Implementation of PR-SCTP:
C5) If a FORWARD TSN is sent, the sender MUST assure that at
least one T3-rtx timer is running.
So this patch fix to assure at least one T3-rtx timer is running
if a FORWARD TSN is or will to sent.
Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/outqueue.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index abfc0b8dee74..16d451a62b3f 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c | |||
@@ -854,6 +854,12 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout) | |||
854 | if (status != SCTP_XMIT_OK) { | 854 | if (status != SCTP_XMIT_OK) { |
855 | /* put the chunk back */ | 855 | /* put the chunk back */ |
856 | list_add(&chunk->list, &q->control_chunk_list); | 856 | list_add(&chunk->list, &q->control_chunk_list); |
857 | } else if (chunk->chunk_hdr->type == SCTP_CID_FWD_TSN) { | ||
858 | /* PR-SCTP C5) If a FORWARD TSN is sent, the | ||
859 | * sender MUST assure that at least one T3-rtx | ||
860 | * timer is running. | ||
861 | */ | ||
862 | sctp_transport_reset_timers(transport, 0); | ||
857 | } | 863 | } |
858 | break; | 864 | break; |
859 | 865 | ||