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 intDEFAULT_BURST_SECONDSstatic intDEFAULT_INBOUND_BANDWIDTHstatic intDEFAULT_INBOUND_BURST_BANDWIDTHstatic intDEFAULT_OUTBOUND_BANDWIDTHCaution, 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 intDEFAULT_OUTBOUND_BURST_BANDWIDTHstatic intMAX_OUTBOUND_BANDWIDTHMax for reasonable Bloom filter false positive rate.static intMIN_INBOUND_BANDWIDTHFor now, until there is some tuning and safe throttling, we set the floor at this inbound (KBps)static intMIN_INBOUND_BANDWIDTH_PEAKFor now, until there is some tuning and safe throttling, we set the floor at this during burst (KBps)static intMIN_OUTBOUND_BANDWIDTHFor now, until there is some tuning and safe throttling, we set the floor at this outbound (KBps)static intMIN_OUTBOUND_BANDWIDTH_PEAKFor now, until there is some tuning and safe throttling, we set the floor at this during burst (KBps)static StringPROP_INBOUND_BANDWIDTHstatic StringPROP_INBOUND_BANDWIDTH_PEAKstatic StringPROP_INBOUND_BURST_BANDWIDTHstatic StringPROP_OUTBOUND_BANDWIDTHstatic StringPROP_OUTBOUND_BANDWIDTH_PEAKstatic StringPROP_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) intgetCurrentParticipatingBandwidth()Out bandwidth.(package private) intgetInboundBurstKBytesPerSecond()(package private) intgetInboundKBytesPerSecond()(package private) intgetOutboundBurstKBytesPerSecond()(package private) intgetOutboundKBytesPerSecond()(package private) booleanincrementParticipatingMessageBytes(int size, float factor)We intend to send traffic for a participating tunnel with the given size and adjustment factor.(package private) voidreinitialize()voidrun()(package private) voidshutdown()
-
-
-
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
-
-