diff options
author | Gui Jianfeng <guijianfeng@cn.fujitsu.com> | 2008-04-17 14:22:18 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-17 14:22:18 -0700 |
commit | 8b73a07c8ffaa70683022566080f4df3328ea18d (patch) | |
tree | 2892c383511fc73fe31e1dc93d1f6dcf8f316737 | |
parent | 2e5a3eaca386ce026f240c7b21e5c4958fcea946 (diff) | |
download | linux-stable-8b73a07c8ffaa70683022566080f4df3328ea18d.tar.gz linux-stable-8b73a07c8ffaa70683022566080f4df3328ea18d.tar.bz2 linux-stable-8b73a07c8ffaa70683022566080f4df3328ea18d.zip |
SCTP: Initialize partial_bytes_acked to 0, when all of the data is acked.
According to RFC4960 7.2.2,
When all of the data transmitted by the sender has
been acknowledged by the recerver, partial_bytes_acked is initialized to 0.
This patch conforms to rfc requirement.
Without this fix, cwnd might be error incremented.
Signed-off-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/sctp/outqueue.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index a7ba9e146dff..59edfd25a19c 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c @@ -1532,6 +1532,8 @@ static void sctp_check_transmitted(struct sctp_outq *q, bytes_acked); transport->flight_size -= bytes_acked; + if (transport->flight_size == 0) + transport->partial_bytes_acked = 0; q->outstanding_bytes -= bytes_acked; } else { /* RFC 2960 6.1, sctpimpguide-06 2.15.2 |