From e63a69170e5d3035f27320a928e7fb00935805bf Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sat, 31 Jan 2015 15:12:21 +0000
Subject: [PATCH] Transport: set 4 MBps max bw due to bloom filter

---
 .../src/net/i2p/router/transport/FIFOBandwidthRefiller.java | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/router/java/src/net/i2p/router/transport/FIFOBandwidthRefiller.java b/router/java/src/net/i2p/router/transport/FIFOBandwidthRefiller.java
index 4da99288ed..3dc610b781 100644
--- a/router/java/src/net/i2p/router/transport/FIFOBandwidthRefiller.java
+++ b/router/java/src/net/i2p/router/transport/FIFOBandwidthRefiller.java
@@ -70,6 +70,8 @@ public class FIFOBandwidthRefiller implements Runnable {
     public static final int MIN_INBOUND_BANDWIDTH_PEAK = 3;
     /** For now, until there is some tuning and safe throttling, we set the floor at a 3KBps during burst */
     public static final int MIN_OUTBOUND_BANDWIDTH_PEAK = 3;
+    /** Max for reasonable bloom filter false positive rate. See util/DecayingBloomFilter and tunnel/BloomFilterIVValidator */
+    public static final int MAX_OUTBOUND_BANDWIDTH = 4096;
     
     /** 
      * how often we replenish the queues.  
@@ -199,7 +201,9 @@ public class FIFOBandwidthRefiller implements Runnable {
         int out = _context.getProperty(PROP_OUTBOUND_BANDWIDTH, DEFAULT_OUTBOUND_BANDWIDTH);
         if (out != _outboundKBytesPerSecond) {
             // bandwidth was specified *and* changed
-                if ( (out <= 0) || (out >= MIN_OUTBOUND_BANDWIDTH) )
+                if (out >= MAX_OUTBOUND_BANDWIDTH)
+                    _outboundKBytesPerSecond = MAX_OUTBOUND_BANDWIDTH;
+                else if ( (out <= 0) || (out >= MIN_OUTBOUND_BANDWIDTH) )
                     _outboundKBytesPerSecond = out;
                 else
                     _outboundKBytesPerSecond = MIN_OUTBOUND_BANDWIDTH;
-- 
GitLab