Package net.i2p.router
Class TunnelPoolSettings
java.lang.Object
net.i2p.router.TunnelPoolSettings
public class TunnelPoolSettings extends Object
Wrap up the settings for a pool of tunnels.
-
Field Summary
Fields Modifier and Type Field Description static boolean
DEFAULT_ALLOW_ZERO_HOP
static int
DEFAULT_BACKUP_QUANTITY
static int
DEFAULT_DURATION
static int
DEFAULT_IP_RESTRICTION
static int
DEFAULT_QUANTITY
static String
PREFIX_INBOUND_EXPLORATORY
prefix used to configure the inbound exploratory poolstatic String
PREFIX_OUTBOUND_EXPLORATORY
prefix used to configure the outbound exploratory poolstatic String
PROP_ALLOW_ZERO_HOP
don't trust this, always truestatic String
PROP_BACKUP_QUANTITY
static String
PROP_DURATION
static String
PROP_IP_RESTRICTION
static String
PROP_LENGTH
static String
PROP_LENGTH_VARIANCE
static String
PROP_NICKNAME
static String
PROP_PRIORITY
static String
PROP_QUANTITY
static String
PROP_RANDOM_KEY
-
Constructor Summary
Constructors Constructor Description TunnelPoolSettings(boolean isInbound)
Exploratory tunnelTunnelPoolSettings(Hash dest, boolean isInbound)
Client tunnel unless dest == null -
Method Summary
Modifier and Type Method Description Set<Hash>
getAliases()
Other destinations that use the same tunnel (or null if exploratory) Modifiable, concurrent, not a copyHash
getAliasOf()
Other destination that this is an alias of (or null).boolean
getAllowZeroHop()
If there are no tunnels to build with, will this pool allow 0 hop tunnels? As of 0.9.44, same goes for exploratory: Prior to 0.9.35, generally true for client.int
getBackupQuantity()
how many backup tunnels should be kept waiting in the wingsHash
getDestination()
what destination is this a client tunnel for (or null if exploratory)String
getDestinationNickname()
what user supplied name was given to the client connected (can be null)int
getIPRestriction()
How many bytes to match to determine if a router's IP is too close to another's to be in the same tunnel (1-4, 0 to disable)int
getLength()
How many remote hops should be in the tunnel NOT including usint
getLengthOverride()
A temporary length to be used due to network conditions.int
getLengthVariance()
how should the length be varied.int
getPriority()
Outbound message priority - for outbound tunnels onlyint
getQuantity()
how many tunnels should be available at all timesSessionKey
getRandomKey()
random key used for peer orderingint
getTotalQuantity()
ConvenienceProperties
getUnknownOptions()
boolean
isExploratory()
is this an exploratory tunnel (or a client tunnel)boolean
isInbound()
is this an inbound tunnel?void
readFromProperties(String prefix, Properties props)
Defaults in props are NOT honored.void
setAliasOf(Hash h)
Set other destination that this is an alias of (or null).void
setAllowZeroHop(boolean ok)
Deprecated.unusedvoid
setBackupQuantity(int quantity)
void
setDestinationNickname(String name)
void
setIPRestriction(int b)
void
setLength(int length)
How many remote hops should be in the tunnel NOT including usvoid
setLengthOverride(int length)
A temporary length to be used due to network conditions.void
setLengthVariance(int variance)
void
setQuantity(int quantity)
String
toString()
void
writeToProperties(String prefix, Properties props)
-
Field Details
-
PREFIX_INBOUND_EXPLORATORY
prefix used to configure the inbound exploratory pool- See Also:
- Constant Field Values
-
PREFIX_OUTBOUND_EXPLORATORY
prefix used to configure the outbound exploratory pool- See Also:
- Constant Field Values
-
PROP_NICKNAME
- See Also:
- Constant Field Values
-
PROP_QUANTITY
- See Also:
- Constant Field Values
-
PROP_BACKUP_QUANTITY
- See Also:
- Constant Field Values
-
PROP_DURATION
- See Also:
- Constant Field Values
-
PROP_LENGTH
- See Also:
- Constant Field Values
-
PROP_LENGTH_VARIANCE
- See Also:
- Constant Field Values
-
PROP_ALLOW_ZERO_HOP
don't trust this, always true- See Also:
- Constant Field Values
-
PROP_IP_RESTRICTION
- See Also:
- Constant Field Values
-
PROP_PRIORITY
- See Also:
- Constant Field Values
-
PROP_RANDOM_KEY
- Since:
- 0.9.17
- See Also:
- Constant Field Values
-
DEFAULT_QUANTITY
public static final int DEFAULT_QUANTITY- See Also:
- Constant Field Values
-
DEFAULT_BACKUP_QUANTITY
public static final int DEFAULT_BACKUP_QUANTITY- See Also:
- Constant Field Values
-
DEFAULT_DURATION
public static final int DEFAULT_DURATION- See Also:
- Constant Field Values
-
DEFAULT_ALLOW_ZERO_HOP
public static final boolean DEFAULT_ALLOW_ZERO_HOP- See Also:
- Constant Field Values
-
DEFAULT_IP_RESTRICTION
public static final int DEFAULT_IP_RESTRICTION- See Also:
- Constant Field Values
-
-
Constructor Details
-
TunnelPoolSettings
public TunnelPoolSettings(boolean isInbound)Exploratory tunnel -
TunnelPoolSettings
Client tunnel unless dest == null
-
-
Method Details
-
getQuantity
public int getQuantity()how many tunnels should be available at all times -
setQuantity
public void setQuantity(int quantity) -
getBackupQuantity
public int getBackupQuantity()how many backup tunnels should be kept waiting in the wings -
setBackupQuantity
public void setBackupQuantity(int quantity) -
getTotalQuantity
public int getTotalQuantity()Convenience- Returns:
- getQuantity() + getBackupQuantity()
- Since:
- 0.8.11
-
getLength
public int getLength()How many remote hops should be in the tunnel NOT including us- Returns:
- 0 to 7
-
setLength
public void setLength(int length)How many remote hops should be in the tunnel NOT including us- Parameters:
length
- 0 to 7 (not enforced here)
-
getAllowZeroHop
public boolean getAllowZeroHop()If there are no tunnels to build with, will this pool allow 0 hop tunnels? As of 0.9.44, same goes for exploratory: Prior to 0.9.35, generally true for client. As of 0.9.35, generally false for client, but true if getLength() + Math.min(getLengthVariance(), 0) <= 0, OR if getLengthOverride() == 0 OR if setAllowZeroHop(true) was called or set in properties. -
setAllowZeroHop
Deprecated.unusedIf there are no tunnels to build with, will this pool allow 0 hop tunnels? No effect on exploratory (always true)- Parameters:
ok
- if true, getAllowZeroHop() will always return true if false, getAllowZeroHop will return as documented.
-
getLengthVariance
public int getLengthVariance()how should the length be varied. if negative, this randomly skews from (length - variance) to (length + variance), or if positive, from length to (length + variance), inclusive. -
setLengthVariance
public void setLengthVariance(int variance) -
getLengthOverride
public int getLengthOverride()A temporary length to be used due to network conditions. If less than zero, the standard length should be used. Unused until 0.8.11 -
setLengthOverride
public void setLengthOverride(int length)A temporary length to be used due to network conditions. If less than zero, the standard length will be used. Unused until 0.8.11 -
isInbound
public boolean isInbound()is this an inbound tunnel? -
isExploratory
public boolean isExploratory()is this an exploratory tunnel (or a client tunnel) -
getDestination
what destination is this a client tunnel for (or null if exploratory) -
getAliases
Other destinations that use the same tunnel (or null if exploratory) Modifiable, concurrent, not a copy- Since:
- 0.9.21
-
getAliasOf
Other destination that this is an alias of (or null). If non-null, don't build tunnels.- Since:
- 0.9.21
-
setAliasOf
Set other destination that this is an alias of (or null). If non-null, don't build tunnels.- Since:
- 0.9.21
-
getRandomKey
random key used for peer ordering- Returns:
- non-null
-
getDestinationNickname
what user supplied name was given to the client connected (can be null) -
setDestinationNickname
-
getIPRestriction
public int getIPRestriction()How many bytes to match to determine if a router's IP is too close to another's to be in the same tunnel (1-4, 0 to disable) -
setIPRestriction
public void setIPRestriction(int b) -
getPriority
public int getPriority()Outbound message priority - for outbound tunnels only- Returns:
- -25 to +30, default 30 for outbound exploratory and 0 for others
- Since:
- 0.9.4
-
getUnknownOptions
- Returns:
- non-null
-
readFromProperties
Defaults in props are NOT honored. In-JVM client side must promote defaults to the primary map.- Parameters:
prefix
- non-null
-
writeToProperties
- Parameters:
prefix
- non-null
-
toString
-