diff options
author | Xufeng Zhang <xufeng.zhang@windriver.com> | 2013-11-25 11:26:57 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-28 18:29:58 -0500 |
commit | 6eabca54d6781f61c7318517c1463a098acb7a87 (patch) | |
tree | b546ca46b835a418c3e80d55c3fdcb86dade25b3 /net/sctp/output.c | |
parent | 5e53e689b737526308db2b5c9f56e9d0371a1676 (diff) | |
download | blackbird-op-linux-6eabca54d6781f61c7318517c1463a098acb7a87.tar.gz blackbird-op-linux-6eabca54d6781f61c7318517c1463a098acb7a87.zip |
sctp: Restore 'resent' bit to avoid retransmitted chunks for RTT measurements
Currently retransmitted DATA chunks could also be used for
RTT measurements since there are no flag to identify whether
the transmitted DATA chunk is a new one or a retransmitted one.
This problem is introduced by commit ae19c5486 ("sctp: remove
'resent' bit from the chunk") which inappropriately removed the
'resent' bit completely, instead of doing this, we should set
the resent bit only for the retransmitted DATA chunks.
Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
Acked-by: Vlad Yasevich <vyasevich@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/output.c')
-rw-r--r-- | net/sctp/output.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sctp/output.c b/net/sctp/output.c index e650978daf27..0e2644d0a773 100644 --- a/net/sctp/output.c +++ b/net/sctp/output.c @@ -474,10 +474,11 @@ int sctp_packet_transmit(struct sctp_packet *packet) * for a given destination transport address. */ - if (!tp->rto_pending) { + if (!chunk->resent && !tp->rto_pending) { chunk->rtt_in_progress = 1; tp->rto_pending = 1; } + has_data = 1; } |