SCTP: Initialize partial_bytes_acked to 0, when all of the data is acked.
authorGui Jianfeng <guijianfeng@cn.fujitsu.com>
Thu, 17 Apr 2008 21:22:18 +0000 (14:22 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 17 Apr 2008 21:22:18 +0000 (14:22 -0700)
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>
net/sctp/outqueue.c

index a7ba9e146dff9e3ba1c7de3a4cda1d74b06dc694..59edfd25a19c3ca08a1158b32947fabc53e34cf9 100644 (file)
@@ -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