Package net.i2p.router.transport
Class FIFOBandwidthRefiller
- java.lang.Object
-
- net.i2p.router.transport.FIFOBandwidthRefiller
-
- All Implemented Interfaces:
Runnable
public class FIFOBandwidthRefiller extends Object implements Runnable
Thread that runs several times a second to "give" bandwidth to FIFOBandwidthLimiter. Instantiated by FIFOBandwidthLimiter. As of 0.8.12, this also contains a counter for outbound participating bandwidth. This was a good place for it since we needed a thread for it. Public only for the properties and defaults.
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_BURST_SECONDS
static int
DEFAULT_INBOUND_BANDWIDTH
static int
DEFAULT_INBOUND_BURST_BANDWIDTH
static int
DEFAULT_OUTBOUND_BANDWIDTH
Caution, do not make DEFAULT_OUTBOUND_BANDWIDTH * DEFAULT_SHARE_PCT > 32 without thinking about the implications (default connection limits, for example) of moving the default bandwidth class from L to M, or maybe adjusting bandwidth class boundaries.static int
DEFAULT_OUTBOUND_BURST_BANDWIDTH
static int
MAX_OUTBOUND_BANDWIDTH
Max for reasonable Bloom filter false positive rate.static int
MIN_INBOUND_BANDWIDTH
For now, until there is some tuning and safe throttling, we set the floor at this inbound (KBps)static int
MIN_INBOUND_BANDWIDTH_PEAK
For now, until there is some tuning and safe throttling, we set the floor at this during burst (KBps)static int
MIN_OUTBOUND_BANDWIDTH
For now, until there is some tuning and safe throttling, we set the floor at this outbound (KBps)static int
MIN_OUTBOUND_BANDWIDTH_PEAK
For now, until there is some tuning and safe throttling, we set the floor at this during burst (KBps)static String
PROP_INBOUND_BANDWIDTH
static String
PROP_INBOUND_BANDWIDTH_PEAK
static String
PROP_INBOUND_BURST_BANDWIDTH
static String
PROP_OUTBOUND_BANDWIDTH
static String
PROP_OUTBOUND_BANDWIDTH_PEAK
static String
PROP_OUTBOUND_BURST_BANDWIDTH
-
Constructor Summary
Constructors Constructor Description FIFOBandwidthRefiller(RouterContext context, FIFOBandwidthLimiter limiter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) int
getCurrentParticipatingBandwidth()
Out bandwidth.(package private) int
getInboundBurstKBytesPerSecond()
(package private) int
getInboundKBytesPerSecond()
(package private) int
getOutboundBurstKBytesPerSecond()
(package private) int
getOutboundKBytesPerSecond()
(package private) boolean
incrementParticipatingMessageBytes(int size, float factor)
We intend to send traffic for a participating tunnel with the given size and adjustment factor.(package private) void
reinitialize()
void
run()
(package private) void
shutdown()
-
-
-
Field Detail
-
PROP_INBOUND_BANDWIDTH
public static final String PROP_INBOUND_BANDWIDTH
- See Also:
- Constant Field Values
-
PROP_OUTBOUND_BANDWIDTH
public static final String PROP_OUTBOUND_BANDWIDTH
- See Also:
- Constant Field Values
-
PROP_INBOUND_BURST_BANDWIDTH
public static final String PROP_INBOUND_BURST_BANDWIDTH
- See Also:
- Constant Field Values
-
PROP_OUTBOUND_BURST_BANDWIDTH
public static final String PROP_OUTBOUND_BURST_BANDWIDTH
- See Also:
- Constant Field Values
-
PROP_INBOUND_BANDWIDTH_PEAK
public static final String PROP_INBOUND_BANDWIDTH_PEAK
- See Also:
- Constant Field Values
-
PROP_OUTBOUND_BANDWIDTH_PEAK
public static final String PROP_OUTBOUND_BANDWIDTH_PEAK
- See Also:
- Constant Field Values
-
DEFAULT_INBOUND_BANDWIDTH
public static final int DEFAULT_INBOUND_BANDWIDTH
- See Also:
- Constant Field Values
-
DEFAULT_OUTBOUND_BANDWIDTH
public static final int DEFAULT_OUTBOUND_BANDWIDTH
Caution, do not make DEFAULT_OUTBOUND_BANDWIDTH * DEFAULT_SHARE_PCT > 32 without thinking about the implications (default connection limits, for example) of moving the default bandwidth class from L to M, or maybe adjusting bandwidth class boundaries.- See Also:
- Constant Field Values
-
DEFAULT_INBOUND_BURST_BANDWIDTH
public static final int DEFAULT_INBOUND_BURST_BANDWIDTH
- See Also:
- Constant Field Values
-
DEFAULT_OUTBOUND_BURST_BANDWIDTH
public static final int DEFAULT_OUTBOUND_BURST_BANDWIDTH
- See Also:
- Constant Field Values
-
DEFAULT_BURST_SECONDS
public static final int DEFAULT_BURST_SECONDS
- See Also:
- Constant Field Values
-
MIN_INBOUND_BANDWIDTH
public static final int MIN_INBOUND_BANDWIDTH
For now, until there is some tuning and safe throttling, we set the floor at this inbound (KBps)- See Also:
- Constant Field Values
-
MIN_OUTBOUND_BANDWIDTH
public static final int MIN_OUTBOUND_BANDWIDTH
For now, until there is some tuning and safe throttling, we set the floor at this outbound (KBps)- See Also:
- Constant Field Values
-
MIN_INBOUND_BANDWIDTH_PEAK
public static final int MIN_INBOUND_BANDWIDTH_PEAK
For now, until there is some tuning and safe throttling, we set the floor at this during burst (KBps)- See Also:
- Constant Field Values
-
MIN_OUTBOUND_BANDWIDTH_PEAK
public static final int MIN_OUTBOUND_BANDWIDTH_PEAK
For now, until there is some tuning and safe throttling, we set the floor at this during burst (KBps)- See Also:
- Constant Field Values
-
MAX_OUTBOUND_BANDWIDTH
public static final int MAX_OUTBOUND_BANDWIDTH
Max for reasonable Bloom filter false positive rate. Do not increase without adding a new Bloom filter size! See util/DecayingBloomFilter and tunnel/BloomFilterIVValidator.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FIFOBandwidthRefiller
FIFOBandwidthRefiller(RouterContext context, FIFOBandwidthLimiter limiter)
-
-
Method Detail
-
shutdown
void shutdown()
- Since:
- 0.8.8
-
reinitialize
void reinitialize()
-
getOutboundKBytesPerSecond
int getOutboundKBytesPerSecond()
-
getInboundKBytesPerSecond
int getInboundKBytesPerSecond()
-
getOutboundBurstKBytesPerSecond
int getOutboundBurstKBytesPerSecond()
-
getInboundBurstKBytesPerSecond
int getInboundBurstKBytesPerSecond()
-
incrementParticipatingMessageBytes
boolean incrementParticipatingMessageBytes(int size, float factor)
We intend to send traffic for a participating tunnel with the given size and adjustment factor. Returns true if the message can be sent within the current share bandwidth limits, or false if it should be dropped.- Parameters:
size
- bytesfactor
- multiplier of size for the drop calculation, 1 for no adjustment- Returns:
- true for accepted, false for drop
- Since:
- 0.8.12
-
getCurrentParticipatingBandwidth
int getCurrentParticipatingBandwidth()
Out bandwidth. Actual bandwidth, not smoothed, not bucketed.- Returns:
- Bps in recent period (a few seconds)
- Since:
- 0.8.12
-
-