| Package | Description |
|---|---|
| net.i2p.client | Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P. |
| net.i2p.data | These classes define the common data structures used by the various I2P protocols. |
| net.i2p.data.i2cp | The Invisible Internet Client Protocol (I2CP) allows applications simplified access to I2P network without requiring them to deal with the issues involved with the Invisible Internet Network Protocol (I2NP). |
| net.i2p.data.i2np | This package defines the low-level messages sent between routers,
called Invisible Internet Network Protocol (I2NP). |
| net.i2p.router | The I2P router application handles I2P network communication. |
| net.i2p.router.networkdb | Network database management and coordination for the I2P distributed hash table. |
| net.i2p.router.networkdb.kademlia | Kademlia DHT implementation and floodfill router functionality for I2P. |
| net.i2p.router.tunnel | Core tunnel management, message processing, and encryption for I2P's anonymous routing system. |
| net.i2p.router.tunnel.pool | Tunnel pool management, creation, and peer selection for I2P's anonymous routing system. |
| Modifier and Type | Method and Description |
|---|---|
TunnelId | I2PSession.TunnelPair.getInboundTunnelId()Inbound tunnel for this pair. |
TunnelId | I2PSession.TunnelPair.getOutboundTunnelId()Outbound tunnel for this pair. |
TunnelId | TunnelRemovalEvent.getTunnelId()Return the tunnel ID. |
| Constructor and Description |
|---|
TunnelPair(TunnelId inbound,
TunnelId outbound)Inbound tunnel ID. |
TunnelRemovalEvent(String poolName,
TunnelId tunnelId,
boolean isInbound,
TunnelRemovalEvent.RemovalReason reason)Create a new tunnel removal event. |
| Modifier and Type | Field and Description |
|---|---|
protected TunnelId | Lease._tunnelIdTunnel identifier on the gateway. |
| Modifier and Type | Method and Description |
|---|---|
TunnelId | Lease.getTunnelId()Tunnel on the gateway to communicate with |
TunnelId | MetaLease.getTunnelId()UnsupportedOperationException always. |
| Modifier and Type | Method and Description |
|---|---|
void | Lease.setTunnelId(TunnelId id)Configure the tunnel on the gateway to communicate with |
void | MetaLease.setTunnelId(TunnelId id)UnsupportedOperationException always. |
| Modifier and Type | Method and Description |
|---|---|
TunnelId | RequestLeaseSetMessage.getTunnelId(int endpoint)Tunnel id. |
| Modifier and Type | Method and Description |
|---|---|
void | RequestLeaseSetMessage.addEndpoint(Hash router,
TunnelId tunnel)addEndpoint. |
| Modifier and Type | Method and Description |
|---|---|
TunnelId | DatabaseLookupMessage.getReplyTunnel()Contains the tunnel ID a reply should be sent to |
TunnelId | DatabaseStoreMessage.getReplyTunnel()Get the reply tunnel. |
TunnelId | DeliveryInstructions.getTunnelId()default null |
TunnelId | TunnelGatewayMessage.getTunnelId()Return the tunnelId |
TunnelId | TunnelDataMessage.getTunnelIdObj()Return the tunnelIdObj |
| Modifier and Type | Method and Description |
|---|---|
void | DatabaseLookupMessage.setReplyTunnel(TunnelId replyTunnel) |
void | DatabaseStoreMessage.setReplyTunnel(TunnelId id)Set the reply tunnel. |
void | TunnelDataMessage.setTunnelId(TunnelId id)(correctly) Invalidates stored checksum |
void | DeliveryInstructions.setTunnelId(TunnelId id)required for TUNNEL |
void | TunnelGatewayMessage.setTunnelId(TunnelId id) |
| Modifier and Type | Method and Description |
|---|---|
TunnelId | TunnelInfo.getReceiveTunnelId(int hop)retrieve the tunnelId that the given hop receives messages on. |
TunnelId | TunnelInfo.getSendTunnelId(int hop)retrieve the tunnelId that the given hop sends messages on. |
| Modifier and Type | Method and Description |
|---|---|
void | MessageHistory.droppedTunnelMessage(TunnelId id,
long msgId,
Date expiration,
Hash from)We don't know about the given tunnel, so we are dropping a message sent to us by the
given router |
void | MessageHistory.tunnelFailed(TunnelId tunnel)The local router has detected a failure in the given tunnel |
void | MessageHistory.tunnelRejected(Hash peer,
TunnelId tunnel,
Hash replyThrough,
String reason)The peer did not accept the tunnel join for the given reason |
void | MessageHistory.tunnelRequestTimedOut(Hash peer,
TunnelId tunnel)The peer did not accept the tunnel join for the given reason (this may be because
of a timeout or an explicit refusal). |
| Modifier and Type | Method and Description |
|---|---|
protected void | HandleDatabaseLookupMessageJob.sendClosest(Hash key,
Set<Hash> routerHashes,
Hash toPeer,
TunnelId replyTunnel)Send the closest routers to the requesting peer. |
protected void | HandleDatabaseLookupMessageJob.sendMessage(I2NPMessage message,
Hash toPeer,
TunnelId replyTunnel)Send an I2NP message to the specified peer. |
| Modifier and Type | Method and Description |
|---|---|
protected I2NPMessage | ExploreJob.buildMessage(TunnelId replyTunnelId,
Hash replyGateway,
long expiration,
RouterInfo peer)Builds the database lookup message to send to a peer. |
protected I2NPMessage | SearchJob.buildMessage(TunnelId replyTunnelId,
Hash replyGateway,
long expiration,
RouterInfo peer)Build the database search message |
protected void | HandleFloodfillDatabaseLookupMessageJob.sendClosest(Hash key,
Set<Hash> routerInfoSet,
Hash toPeer,
TunnelId replyTunnel)We extend this here to send our routerInfo back as well, if we are not floodfill. |
(package private) boolean | LookupBanHammer.shouldBan(Hash key,
TunnelId id)Record a lookup and check if the requester should be banned. |
(package private) boolean | FloodfillNetworkDatabaseFacade.shouldBanLookup(Hash from,
TunnelId id)Check if lookup from a peer should be banned. |
(package private) boolean | LookupThrottler.shouldThrottle(Hash key,
TunnelId id)Increment and check throttling for the given peer and tunnel. |
(package private) boolean | FloodfillNetworkDatabaseFacade.shouldThrottleLookup(Hash from,
TunnelId id)Increments and tests. |
| Modifier and Type | Field and Description |
|---|---|
protected TunnelId | PendingGatewayMessage._toTunnelthe destination tunnel |
| Modifier and Type | Method and Description |
|---|---|
TunnelId | TunnelDispatcher.getNewIBEPID()Get a new random receive tunnel ID that isn't a duplicate |
TunnelId | TunnelDispatcher.getNewIBZeroHopID()Get a new random receive tunnel ID that isn't a duplicate (zero hop) |
TunnelId | TunnelDispatcher.getNewOBGWID()Get a new random send tunnel ID that isn't a duplicate |
TunnelId | HopConfig.getReceiveTunnel()What tunnel ID are we receiving on? (null if uninitialized) |
TunnelId | TunnelCreatorConfig.getReceiveTunnelId(int hop)retrieve the tunnelId that the given hop receives messages on. |
TunnelId | HopConfig.getSendTunnel()What is the next tunnel ID we are sending to? (null if endpoint) |
TunnelId | TunnelCreatorConfig.getSendTunnelId(int hop)retrieve the tunnelId that the given hop sends messages on. |
TunnelId | FragmentedMessage.getTargetTunnel() |
TunnelId | PendingGatewayMessage.getToTunnel()The destination tunnel. |
| Modifier and Type | Method and Description |
|---|---|
boolean | TunnelGatewayZeroHop.add(I2NPMessage msg,
Hash toRouter,
TunnelId toTunnel)Add a message to be sent down the tunnel (immediately forwarding it to the
InboundMessageDistributor or OutboundMessageDistributor, as
necessary). |
boolean | PumpedTunnelGateway.add(I2NPMessage msg,
Hash toRouter,
TunnelId toTunnel)Adds a message to be sent down the tunnel. |
boolean | ThrottledPumpedTunnelGateway.add(I2NPMessage msg,
Hash toRouter,
TunnelId toTunnel)Adds a message to the inbound gateway after a bandwidth-based drop check. |
boolean | TunnelGateway.add(I2NPMessage msg,
Hash toRouter,
TunnelId toTunnel)Add a message to be sent down the tunnel, either sending it now (perhaps
coalesced with other pending messages) or after a brief pause (_flushFrequency). |
boolean | TunnelDispatcher.dispatchOutbound(I2NPMessage msg,
TunnelId outboundTunnel,
Hash targetPeer)Dispatch an outbound message through a tunnel. |
boolean | TunnelDispatcher.dispatchOutbound(I2NPMessage msg,
TunnelId outboundTunnel,
TunnelId targetTunnel,
Hash targetPeer)Dispatch an outbound message through a tunnel. |
void | InboundMessageDistributor.distribute(I2NPMessage msg,
Hash target,
TunnelId tunnel)distribute. |
void | OutboundMessageDistributor.distribute(I2NPMessage msg,
Hash target,
TunnelId tunnel)Warning - as of 0.9.63, msg will be an UnknownI2NPMessage,
and must be converted before handling locally. |
boolean | TunnelDispatcher.hasOutboundGateway(TunnelId tid) |
boolean | FragmentedMessage.receive(byte[] payload,
int offset,
int length,
boolean isLast,
Hash toRouter,
TunnelId toTunnel)Receive the first fragment (#0) and related metadata. |
void | FragmentHandler.DefragmentedReceiver.receiveComplete(I2NPMessage msg,
Hash toRouter,
TunnelId toTunnel)Receive a fully formed I2NPMessage out of the tunnel |
void | HopConfig.setReceiveTunnelId(TunnelId id)Set the receive tunnel ID |
void | HopConfig.setSendTunnelId(TunnelId id)Set the send tunnel ID. |
| Constructor and Description |
|---|
OutboundGatewayMessage(I2NPMessage message,
Hash toRouter,
TunnelId toTunnel)OutboundGatewayMessage. |
PendingGatewayMessage(I2NPMessage message,
Hash toRouter,
TunnelId toTunnel)PendingGatewayMessage. |
| Modifier and Type | Method and Description |
|---|---|
TunnelId | PooledTunnelCreatorConfig.getPairedGW()The ID of the gateway of the paired tunnel used to send/receive the build request |
| Modifier and Type | Method and Description |
|---|---|
TunnelInfo | AliasedTunnelPool.getTunnel(TunnelId gatewayId) |
TunnelInfo | TunnelPool.getTunnel(TunnelId gatewayId)tunnel by its gateway tunnel ID. |
void | PooledTunnelCreatorConfig.setPairedGW(TunnelId gw)The ID of the gateway of the paired tunnel used to send/receive the build request |