net.i2p.router
Interface TunnelManagerFacade

All Superinterfaces:
Service
All Known Implementing Classes:
DummyTunnelManagerFacade, TunnelPoolManager

public interface TunnelManagerFacade
extends Service

Build and maintain tunnels throughout the network.


Method Summary
 void buildTunnels(Destination client, ClientTunnelSettings settings)
          the client connected (or updated their settings), so make sure we have the tunnels for them, and whenever necessary, ask them to authorize leases.
 void fail(Hash peer)
           
 int getFreeTunnelCount()
          how many free inbound tunnels do we have available?
 int getInboundBuildQueueSize()
          count how many inbound tunnel requests we have received but not yet processed
 Map<Hash,TunnelPool> getInboundClientPools()
          for TunnelRenderer in router console
 int getInboundClientTunnelCount()
          how many free inbound client tunnels do we have available?
 TunnelPool getInboundExploratoryPool()
          for TunnelRenderer in router console
 TunnelPoolSettings getInboundSettings()
           
 TunnelPoolSettings getInboundSettings(Hash client)
           
 long getLastParticipatingExpiration()
          When does the last tunnel we are participating in expire?
 Map<Hash,TunnelPool> getOutboundClientPools()
          for TunnelRenderer in router console
 int getOutboundClientTunnelCount()
          how many outbound client tunnels do we have available?
 int getOutboundClientTunnelCount(Hash destination)
          how many outbound client tunnels in this pool?
 TunnelPool getOutboundExploratoryPool()
          for TunnelRenderer in router console
 TunnelPoolSettings getOutboundSettings()
           
 TunnelPoolSettings getOutboundSettings(Hash client)
           
 int getOutboundTunnelCount()
          how many outbound tunnels do we have available?
 int getParticipatingCount()
          how many tunnels are we participating in?
 double getShareRatio()
           
 TunnelInfo getTunnelInfo(TunnelId id)
          Retrieve the information related to a particular tunnel
 boolean isValidTunnel(Hash client, TunnelInfo tunnel)
          Is a tunnel a valid member of the pool?
 void listPools(List<TunnelPool> out)
          for TunnelRenderer in router console
 TunnelInfo selectInboundExploratoryTunnel(Hash closestTo)
          Pick the inbound exploratory tunnel with the gateway closest to the given hash.
 TunnelInfo selectInboundTunnel()
          Pick a random inbound exploratory tunnel
 TunnelInfo selectInboundTunnel(Hash destination)
          Pick a random inbound tunnel from the given destination's pool
 TunnelInfo selectInboundTunnel(Hash destination, Hash closestTo)
          Pick the inbound tunnel with the gateway closest to the given hash from the given destination's pool.
 TunnelInfo selectOutboundExploratoryTunnel(Hash closestTo)
          Pick the outbound exploratory tunnel with the endpoint closest to the given hash.
 TunnelInfo selectOutboundTunnel()
          Pick a random outbound exploratory tunnel
 TunnelInfo selectOutboundTunnel(Hash destination)
          Pick a random outbound tunnel from the given destination's pool
 TunnelInfo selectOutboundTunnel(Hash destination, Hash closestTo)
          Pick the outbound tunnel with the endpoint closest to the given hash from the given destination's pool.
 Set<Hash> selectPeersInTooManyTunnels()
           
 void setInboundSettings(Hash client, TunnelPoolSettings settings)
           
 void setInboundSettings(TunnelPoolSettings settings)
           
 void setOutboundSettings(Hash client, TunnelPoolSettings settings)
           
 void setOutboundSettings(TunnelPoolSettings settings)
           
 
Methods inherited from interface net.i2p.router.Service
renderStatusHTML, restart, shutdown, startup
 

Method Detail

getTunnelInfo

TunnelInfo getTunnelInfo(TunnelId id)
Retrieve the information related to a particular tunnel

Parameters:
id - the tunnelId as seen at the gateway

selectInboundTunnel

TunnelInfo selectInboundTunnel()
Pick a random inbound exploratory tunnel

Returns:
null if none

selectInboundTunnel

TunnelInfo selectInboundTunnel(Hash destination)
Pick a random inbound tunnel from the given destination's pool

Parameters:
destination - if null, returns inbound exploratory tunnel
Returns:
null if none

selectOutboundTunnel

TunnelInfo selectOutboundTunnel()
Pick a random outbound exploratory tunnel

Returns:
null if none

selectOutboundTunnel

TunnelInfo selectOutboundTunnel(Hash destination)
Pick a random outbound tunnel from the given destination's pool

Parameters:
destination - if null, returns outbound exploratory tunnel
Returns:
null if none

selectInboundExploratoryTunnel

TunnelInfo selectInboundExploratoryTunnel(Hash closestTo)
Pick the inbound exploratory tunnel with the gateway closest to the given hash. By using this instead of the random selectTunnel(), we force some locality in OBEP-IBGW connections to minimize those connections network-wide.

Parameters:
closestTo - non-null
Returns:
null if none
Since:
0.8.10

selectInboundTunnel

TunnelInfo selectInboundTunnel(Hash destination,
                               Hash closestTo)
Pick the inbound tunnel with the gateway closest to the given hash from the given destination's pool. By using this instead of the random selectTunnel(), we force some locality in OBEP-IBGW connections to minimize those connections network-wide.

Parameters:
destination - if null, returns inbound exploratory tunnel
closestTo - non-null
Returns:
null if none
Since:
0.8.10

selectOutboundExploratoryTunnel

TunnelInfo selectOutboundExploratoryTunnel(Hash closestTo)
Pick the outbound exploratory tunnel with the endpoint closest to the given hash. By using this instead of the random selectTunnel(), we force some locality in OBEP-IBGW connections to minimize those connections network-wide.

Parameters:
closestTo - non-null
Returns:
null if none
Since:
0.8.10

selectOutboundTunnel

TunnelInfo selectOutboundTunnel(Hash destination,
                                Hash closestTo)
Pick the outbound tunnel with the endpoint closest to the given hash from the given destination's pool. By using this instead of the random selectTunnel(), we force some locality in OBEP-IBGW connections to minimize those connections network-wide.

Parameters:
destination - if null, returns outbound exploratory tunnel
closestTo - non-null
Returns:
null if none
Since:
0.8.10

isValidTunnel

boolean isValidTunnel(Hash client,
                      TunnelInfo tunnel)
Is a tunnel a valid member of the pool?


getParticipatingCount

int getParticipatingCount()
how many tunnels are we participating in?


getFreeTunnelCount

int getFreeTunnelCount()
how many free inbound tunnels do we have available?


getOutboundTunnelCount

int getOutboundTunnelCount()
how many outbound tunnels do we have available?


getInboundClientTunnelCount

int getInboundClientTunnelCount()
how many free inbound client tunnels do we have available?


getOutboundClientTunnelCount

int getOutboundClientTunnelCount()
how many outbound client tunnels do we have available?


getOutboundClientTunnelCount

int getOutboundClientTunnelCount(Hash destination)
how many outbound client tunnels in this pool?


getShareRatio

double getShareRatio()

getLastParticipatingExpiration

long getLastParticipatingExpiration()
When does the last tunnel we are participating in expire?


getInboundBuildQueueSize

int getInboundBuildQueueSize()
count how many inbound tunnel requests we have received but not yet processed


selectPeersInTooManyTunnels

Set<Hash> selectPeersInTooManyTunnels()
Returns:
Set of peers that should not be allowed to be in another tunnel

buildTunnels

void buildTunnels(Destination client,
                  ClientTunnelSettings settings)
the client connected (or updated their settings), so make sure we have the tunnels for them, and whenever necessary, ask them to authorize leases.


getInboundSettings

TunnelPoolSettings getInboundSettings()

getOutboundSettings

TunnelPoolSettings getOutboundSettings()

getInboundSettings

TunnelPoolSettings getInboundSettings(Hash client)

getOutboundSettings

TunnelPoolSettings getOutboundSettings(Hash client)

setInboundSettings

void setInboundSettings(TunnelPoolSettings settings)

setOutboundSettings

void setOutboundSettings(TunnelPoolSettings settings)

setInboundSettings

void setInboundSettings(Hash client,
                        TunnelPoolSettings settings)

setOutboundSettings

void setOutboundSettings(Hash client,
                         TunnelPoolSettings settings)

listPools

void listPools(List<TunnelPool> out)
for TunnelRenderer in router console


getInboundClientPools

Map<Hash,TunnelPool> getInboundClientPools()
for TunnelRenderer in router console


getOutboundClientPools

Map<Hash,TunnelPool> getOutboundClientPools()
for TunnelRenderer in router console


getInboundExploratoryPool

TunnelPool getInboundExploratoryPool()
for TunnelRenderer in router console


getOutboundExploratoryPool

TunnelPool getOutboundExploratoryPool()
for TunnelRenderer in router console


fail

void fail(Hash peer)
Since:
0.8.13