diff options
author | Gui Jianfeng <guijianfeng@cn.fujitsu.com> | 2008-04-17 17:22:18 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-17 17:22:18 -0400 |
commit | 8b73a07c8ffaa70683022566080f4df3328ea18d (patch) | |
tree | 2892c383511fc73fe31e1dc93d1f6dcf8f316737 /net/sctp | |
parent | 2e5a3eaca386ce026f240c7b21e5c4958fcea946 (diff) |
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>
Diffstat (limited to 'net/sctp')
-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, | |||
1532 | bytes_acked); | 1532 | bytes_acked); |
1533 | 1533 | ||
1534 | transport->flight_size -= bytes_acked; | 1534 | transport->flight_size -= bytes_acked; |
1535 | if (transport->flight_size == 0) | ||
1536 | transport->partial_bytes_acked = 0; | ||
1535 | q->outstanding_bytes -= bytes_acked; | 1537 | q->outstanding_bytes -= bytes_acked; |
1536 | } else { | 1538 | } else { |
1537 | /* RFC 2960 6.1, sctpimpguide-06 2.15.2 | 1539 | /* RFC 2960 6.1, sctpimpguide-06 2.15.2 |