summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGui Jianfeng <guijianfeng@cn.fujitsu.com>2008-04-17 14:22:18 -0700
committerDavid S. Miller <davem@davemloft.net>2008-04-17 14:22:18 -0700
commit8b73a07c8ffaa70683022566080f4df3328ea18d (patch)
tree2892c383511fc73fe31e1dc93d1f6dcf8f316737
parent2e5a3eaca386ce026f240c7b21e5c4958fcea946 (diff)
downloadlinux-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.c2
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