From 5ec6dca64d9eeba73e5fe50c22a9671b40efade0 Mon Sep 17 00:00:00 2001
From: jrandom <jrandom>
Date: Tue, 23 Aug 2005 22:43:51 +0000
Subject: [PATCH] 2005-08-23  jrandom     * Removed the concept of "no
 bandwidth limit" - if none is specified, its       16KBps in/out.     *
 Include ack packets in the per-peer cwin throttle (they were part of the     
  bandwidth limit though).     * Tweak the SSU cwin operation to get more
 accurrate estimates under       congestions.     * SSU improvements to resend
 more efficiently.     * Added a basic scheduler to eepget to fetch multiple
 files sequentially.

---
 .../net/i2p/router/transport/udp/ACKSender.java  |  2 ++
 .../i2p/router/transport/udp/UDPTransport.java   | 16 +++++++++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/router/java/src/net/i2p/router/transport/udp/ACKSender.java b/router/java/src/net/i2p/router/transport/udp/ACKSender.java
index 3dd2386c16..d34d0cfa55 100644
--- a/router/java/src/net/i2p/router/transport/udp/ACKSender.java
+++ b/router/java/src/net/i2p/router/transport/udp/ACKSender.java
@@ -109,6 +109,8 @@ public class ACKSender implements Runnable {
                     ack.markType(1);
                     if (_log.shouldLog(Log.INFO))
                         _log.info("Sending ACK for " + ackBitfields);
+                    boolean ok = peer.allocateSendingBytes(ack.getPacket().getLength(), true);
+                    // ignore whether its ok or not, its a bloody ack.  this should be fixed, probably.
                     _transport.send(ack);
                     
                     if ( (wanted > 0) && (wanted <= peer.getWantedACKSendSince()) ) {
diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
index 12495618ea..9dcc8af137 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -884,7 +884,12 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
             buf.append(formatKBps(peer.getReceiveBps()));
             buf.append("KBps/");
             buf.append(formatKBps(peer.getSendBps()));
-            buf.append("KBps</td>");
+            buf.append("KBps ");
+            //buf.append(formatKBps(peer.getReceiveACKBps()));
+            //buf.append("KBps/");
+            //buf.append(formatKBps(peer.getSendACKBps()));
+            //buf.append("KBps ");
+            buf.append("</td>");
 
             buf.append("<td>");
             buf.append(DataHelper.formatDuration(now-peer.getKeyEstablishedTime()));
@@ -923,10 +928,15 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
             buf.append(peer.getPacketsReceived());
             buf.append("</td>");
             
-            double sendLostPct = (double)peer.getPacketsRetransmitted()/(double)PeerState.RETRANSMISSION_PERIOD_WIDTH;
+            double sent = (double)peer.getPacketsPeriodTransmitted();
+            double sendLostPct = 0;
+            if (sent > 0)
+                sendLostPct = (double)peer.getPacketsRetransmitted()/(sent);
+            
             buf.append("<td>");
             //buf.append(formatPct(sendLostPct));
-            buf.append(peer.getPacketRetransmissionRate());
+            buf.append(peer.getPacketsRetransmitted()); // + "/" + peer.getPacketsPeriodRetransmitted() + "/" + sent);
+            //buf.append(peer.getPacketRetransmissionRate());
             buf.append("</td>");
             
             double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived();
-- 
GitLab