diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2009-11-23 15:53:56 -0500 |
---|---|---|
committer | Vlad Yasevich <vladislav.yasevich@hp.com> | 2009-11-23 15:53:56 -0500 |
commit | b93d6471748de2ce02cc24774b774deb306a57a8 (patch) | |
tree | 98c69d791297d3805d00f9d8ce2fa04dfbd63c9a /net/sctp/outqueue.c | |
parent | 6dc7694f9df20f148076d82d00cb3663afb0b000 (diff) |
sctp: implement the sender side for SACK-IMMEDIATELY extension
This patch implement the sender side for SACK-IMMEDIATELY
extension.
Section 4.1. Sender Side Considerations
Whenever the sender of a DATA chunk can benefit from the
corresponding SACK chunk being sent back without delay, the sender
MAY set the I-bit in the DATA chunk header.
Reasons for setting the I-bit include
o The sender is in the SHUTDOWN-PENDING state.
o The application requests to set the I-bit of the last DATA chunk
of a user message when providing the user message to the SCTP
implementation.
Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Diffstat (limited to 'net/sctp/outqueue.c')
-rw-r--r-- | net/sctp/outqueue.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index c9f20e28521b..5732661c87d3 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c | |||
@@ -1011,6 +1011,13 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout) | |||
1011 | break; | 1011 | break; |
1012 | 1012 | ||
1013 | case SCTP_XMIT_OK: | 1013 | case SCTP_XMIT_OK: |
1014 | /* The sender is in the SHUTDOWN-PENDING state, | ||
1015 | * The sender MAY set the I-bit in the DATA | ||
1016 | * chunk header. | ||
1017 | */ | ||
1018 | if (asoc->state == SCTP_STATE_SHUTDOWN_PENDING) | ||
1019 | chunk->chunk_hdr->flags |= SCTP_DATA_SACK_IMM; | ||
1020 | |||
1014 | break; | 1021 | break; |
1015 | 1022 | ||
1016 | default: | 1023 | default: |