public abstract class TunnelCreatorConfig extends Object implements TunnelInfo
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | _context_context. |
static int | MAX_CONSECUTIVE_TEST_FAILURESMAX_CONSECUTIVE_TEST_FAILURES. |
static int | REPLY_IV_LENGTHIV length for getAESReplyIV(int) |
| Constructor and Description |
|---|
TunnelCreatorConfig(RouterContext ctx,
int length,
boolean isInbound)For exploratory only (null destination) |
TunnelCreatorConfig(RouterContext ctx,
int length,
boolean isInbound,
Hash destination) |
| Modifier and Type | Method and Description |
|---|---|
void | addLatencySample(int ms)Add a latency sample from a test result. |
void | clearExpeditedTest()Clear the expedited test flag after running the expedited test. |
void | clearTestFailures()Reset the consecutive failure counter and mark the tunnel as GOOD. |
byte[] | getAESReplyIV(int hop)IV used to encrypt the reply sent for the tunnel creation crypto. |
SessionKey | getAESReplyKey(int hop)Key to encrypt the reply sent for the tunnel creation crypto. |
int | getAverageLatency()Get average latency from last 3 tests. |
Hash | getBlankHash()Checksum for blank record |
byte[] | getChaChaReplyAD(int hop)Get ECIES reply AD |
SessionKey | getChaChaReplyKey(int hop)Get ECIES reply key |
HopConfig | getConfig(int hop)retrieve the config for the given hop. |
int | getConsecutiveFailures()Get the number of consecutive test failures. |
Hash | getDestination()If this is a client tunnel, what destination is it for? |
String | getDestinationNickname() |
Hash | getEndpoint()For convenience |
long | getExpiration()Get the tunnel's expiration time. |
Hash | getFarEnd()For convenience |
MessageWrapper.OneTimeSession | getGarlicReplyKeys()ECIES short OBEP record only. |
Hash | getGateway()For convenience |
int | getLastLatency() |
long | getLastTransferred()When we last sent or received data on this tunnel |
int | getLength()How many hops are there in the tunnel?
INCLUDING US. |
Properties | getOptions() |
Hash | getPeer(int hop)retrieve the peer at the given hop. |
int | getPriority()Outbound message priority - for outbound tunnels only |
int | getProcessedMessagesCount()Get the count of messages that have been processed through this tunnel. |
TunnelId | getReceiveTunnelId(int hop)retrieve the tunnelId that the given hop receives messages on. |
int | getRecentTestExemptions()Get the number of recent-traffic test exemptions used. |
long | getReplyMessageId()new style reply message id |
List<Integer> | getReplyOrder()component ordering in the new style request |
TunnelId | getSendTunnelId(int hop)retrieve the tunnelId that the given hop sends messages on. |
TunnelTestStatus | getTestStatus()Get the current test status of this tunnel for UI display. |
boolean | getTunnelFailed()Has the tunnel failed completely? |
int | getTunnelFailures() |
long | getVerifiedBytesTransferred()we know for sure that this many bytes travelled through the tunnel in its lifetime |
boolean | hasEnoughLatencyTests() |
void | incrementProcessedMessages()take note of a message being pumped through this tunnel |
void | incrementRecentTestExemptions()Increment the recent-traffic test exemption counter. |
void | incrementTestFailures()Increment the failure count without triggering pool removal or reuse flag. |
void | incrementVerifiedBytesTransferred(int bytes)This calls profile manager tunnelDataPushed1m() for each peer |
boolean | isEC(int hop)Is it an ECIES hop? |
boolean | isInbound()is this an inbound tunnel? |
boolean | needsExpeditedTest() |
void | requestExpeditedTest()Set expedited test flag - called when tunnel appears slow. |
void | setAESReplyKeys(int hop,
SessionKey key,
byte[] iv)Key and IV to encrypt the reply sent for the tunnel creation crypto. |
void | setBlankHash(Hash h)Checksum for blank record |
void | setChaChaReplyKeys(int hop,
SessionKey key,
byte[] ad)Set ECIES reply key and IV |
void | setDestinationNickname(String name)Set an optional display nickname for this tunnel (e.g. |
void | setExpiration(long when)setExpiration. |
void | setGarlicReplyKeys(MessageWrapper.OneTimeSession keys)ECIES short OBEP record only. |
void | setLastLatency(int ms)Set last test latency |
void | setPeer(int hop,
Hash peer)setPeer. |
void | setPriority(int priority)Outbound message priority - for outbound tunnels only |
void | setReplyMessageId(long id)setReplyMessageId. |
void | setReplyOrder(List<Integer> order)setReplyOrder. |
void | setReused()Note that we reused this tunnel |
void | setTestFailed()Called when a test fails. |
void | setTestOverBudget()Mark tunnel as scheduled for early expiry due to pool being over budget. |
void | setTestStarted()Called when a test is started. |
void | setTestTooSlow()Mark tunnel as scheduled for early expiry (pruned from pool). |
void | testSuccessful(int ms)testSuccessful. |
String | toString()toString. |
String | toStringFull() |
boolean | tunnelFailed()The tunnel failed a test, so (maybe) stop using it |
void | tunnelFailedCompletely()The tunnel failed completely, so definitely stop using it |
boolean | wasReused()Did we reuse this tunnel? |
protected final RouterContext _context
public static final int MAX_CONSECUTIVE_TEST_FAILURES
public static final int REPLY_IV_LENGTH
getAESReplyIV(int)public TunnelCreatorConfig(RouterContext ctx, int length, boolean isInbound)
length - 1 minimum (0 hop is length 1)public TunnelCreatorConfig(RouterContext ctx, int length, boolean isInbound, Hash destination)
length - 1 minimum (0 hop is length 1)destination - null for exploratorypublic void addLatencySample(int ms)
ms - latency in millisecondspublic void clearExpeditedTest()
public void clearTestFailures()
public byte[] getAESReplyIV(int hop)
public SessionKey getAESReplyKey(int hop)
IllegalArgumentException - if iv not 16 bytespublic int getAverageLatency()
public Hash getBlankHash()
public byte[] getChaChaReplyAD(int hop)
public SessionKey getChaChaReplyKey(int hop)
public HopConfig getConfig(int hop)
public int getConsecutiveFailures()
getConsecutiveFailures in interface TunnelInfopublic Hash getDestination()
getDestination in interface TunnelInfopublic String getDestinationNickname()
public Hash getEndpoint()
getEndpoint in interface TunnelInfopublic long getExpiration()
TunnelInfogetExpiration in interface TunnelInfopublic Hash getFarEnd()
getFarEnd in interface TunnelInfopublic MessageWrapper.OneTimeSession getGarlicReplyKeys()
public Hash getGateway()
getGateway in interface TunnelInfopublic int getLastLatency()
getLastLatency in interface TunnelInfopublic long getLastTransferred()
public int getLength()
getLength in interface TunnelInfopublic Properties getOptions()
public Hash getPeer(int hop)
getPeer in interface TunnelInfopublic int getPriority()
public int getProcessedMessagesCount()
TunnelInfogetProcessedMessagesCount in interface TunnelInfopublic TunnelId getReceiveTunnelId(int hop)
getReceiveTunnelId in interface TunnelInfopublic int getRecentTestExemptions()
public long getReplyMessageId()
public TunnelId getSendTunnelId(int hop)
getSendTunnelId in interface TunnelInfopublic TunnelTestStatus getTestStatus()
getTestStatus in interface TunnelInfopublic boolean getTunnelFailed()
getTunnelFailed in interface TunnelInfopublic int getTunnelFailures()
public long getVerifiedBytesTransferred()
TunnelInfogetVerifiedBytesTransferred in interface TunnelInfopublic boolean hasEnoughLatencyTests()
public void incrementProcessedMessages()
public void incrementRecentTestExemptions()
public void incrementTestFailures()
public void incrementVerifiedBytesTransferred(int bytes)
incrementVerifiedBytesTransferred in interface TunnelInfobytes - the number of bytes to add to the verified totalpublic boolean isEC(int hop)
public boolean isInbound()
isInbound in interface TunnelInfopublic boolean needsExpeditedTest()
public void requestExpeditedTest()
public void setAESReplyKeys(int hop,
SessionKey key,
byte[] iv)IllegalArgumentException - if iv not 16 bytespublic void setBlankHash(Hash h)
public void setChaChaReplyKeys(int hop,
SessionKey key,
byte[] ad)public void setDestinationNickname(String name)
public void setExpiration(long when)
setExpiration in interface TunnelInfowhen - expiration time in milliseconds since epochpublic void setGarlicReplyKeys(MessageWrapper.OneTimeSession keys)
public void setLastLatency(int ms)
ms - latency in millisecondspublic void setPeer(int hop,
Hash peer)public void setPriority(int priority)
priority - -25 to +25, default 0public void setReplyMessageId(long id)
public void setReused()
setReused in interface TunnelInfopublic void setTestFailed()
setTestFailed in interface TunnelInfopublic void setTestOverBudget()
public void setTestStarted()
setTestStarted in interface TunnelInfopublic void setTestTooSlow()
public void testSuccessful(int ms)
testSuccessful in interface TunnelInfoms - the response time in millisecondspublic String toStringFull()
public boolean tunnelFailed()
public void tunnelFailedCompletely()
public boolean wasReused()
wasReused in interface TunnelInfo