Package | Description |
---|---|
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
the 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 the Invisible Internet Network Protocol (I2NP).
|
net.i2p.router |
The I2P router application handles the I2P network communication.
|
net.i2p.router.dummy |
Dummy versions of things for testing.
|
net.i2p.router.networkdb |
A couple of classes, but most things are in kademlia.
|
net.i2p.router.networkdb.kademlia |
The network database, including implementation of floodfills.
|
net.i2p.router.tunnel |
All the work of managing locally created and participating tunnels,
creating and handling tunnel messages, and their encryption.
|
net.i2p.router.tunnel.pool |
Tunnel creation, tunnel build message handling.
|
Modifier and Type | Method | Description |
---|---|---|
TunnelId |
Lease.getTunnelId() |
Tunnel on the gateway to communicate with
|
Modifier and Type | Method | Description |
---|---|---|
void |
Lease.setTunnelId(TunnelId id) |
Configure the tunnel on the gateway to communicate with
|
Modifier and Type | Method | Description |
---|---|---|
TunnelId |
RequestLeaseSetMessage.getTunnelId(int endpoint) |
Modifier and Type | Method | Description |
---|---|---|
void |
RequestLeaseSetMessage.addEndpoint(Hash router,
TunnelId tunnel) |
Modifier and Type | Method | Description |
---|---|---|
TunnelId |
DatabaseLookupMessage.getReplyTunnel() |
Contains the tunnel ID a reply should be sent to
|
TunnelId |
DatabaseStoreMessage.getReplyTunnel() |
|
TunnelId |
DeliveryInstructions.getTunnelId() |
default null
|
TunnelId |
TunnelGatewayMessage.getTunnelId() |
|
TunnelId |
TunnelDataMessage.getTunnelIdObj() |
Modifier and Type | Method | Description |
---|---|---|
void |
DatabaseLookupMessage.setReplyTunnel(TunnelId replyTunnel) |
|
void |
DatabaseStoreMessage.setReplyTunnel(TunnelId id) |
|
void |
DeliveryInstructions.setTunnelId(TunnelId id) |
required for TUNNEL
|
void |
TunnelDataMessage.setTunnelId(TunnelId id) |
(correctly) Invalidates stored checksum
|
void |
TunnelGatewayMessage.setTunnelId(TunnelId id) |
Modifier and Type | Method | 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 | 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
|
TunnelInfo |
TunnelManagerFacade.getTunnelInfo(TunnelId id) |
Deprecated.
unused
|
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 | Description |
---|---|---|
TunnelInfo |
DummyTunnelManagerFacade.getTunnelInfo(TunnelId id) |
Deprecated.
unused
|
Modifier and Type | Method | Description |
---|---|---|
protected void |
HandleDatabaseLookupMessageJob.sendClosest(Hash key,
Set<Hash> routerHashes,
Hash toPeer,
TunnelId replyTunnel) |
|
protected void |
HandleDatabaseLookupMessageJob.sendMessage(I2NPMessage message,
Hash toPeer,
TunnelId replyTunnel) |
Modifier and Type | Method | Description |
---|---|---|
protected I2NPMessage |
ExploreJob.buildMessage(TunnelId replyTunnelId,
Hash replyGateway,
long expiration,
RouterInfo peer) |
Build the database search message, but unlike the normal searches, we're more explicit in
what we /dont/ want.
|
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 |
LookupThrottler.shouldThrottle(Hash key,
TunnelId id) |
increments before checking
|
(package private) boolean |
FloodfillNetworkDatabaseFacade.shouldThrottleLookup(Hash from,
TunnelId id) |
Increments and tests.
|
Modifier and Type | Field | Description |
---|---|---|
protected TunnelId |
PendingGatewayMessage._toTunnel |
Modifier and Type | Method | Description |
---|---|---|
TunnelId |
HopConfig.getReceiveTunnel() |
|
TunnelId |
TunnelCreatorConfig.getReceiveTunnelId(int hop) |
retrieve the tunnelId that the given hop receives messages on.
|
TunnelId |
HopConfig.getSendTunnel() |
what is the next tunnel 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() |
may be null
|
Modifier and Type | Method | Description |
---|---|---|
void |
PumpedTunnelGateway.add(I2NPMessage msg,
Hash toRouter,
TunnelId toTunnel) |
Add a message to be sent down the tunnel, either sending it now (perhaps
coallesced with other pending messages) or after a brief pause (_flushFrequency).
|
void |
ThrottledPumpedTunnelGateway.add(I2NPMessage msg,
Hash toRouter,
TunnelId toTunnel) |
Possibly drop a message due to bandwidth before adding it to the preprocessor queue.
|
void |
TunnelGateway.add(I2NPMessage msg,
Hash toRouter,
TunnelId toTunnel) |
Add a message to be sent down the tunnel, either sending it now (perhaps
coallesced with other pending messages) or after a brief pause (_flushFrequency).
|
void |
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). |
void |
TunnelDispatcher.dispatchOutbound(I2NPMessage msg,
TunnelId outboundTunnel,
Hash targetPeer) |
We are the outbound tunnel gateway (we created it), so wrap up this message
with instructions to be forwarded to the targetPeer when it reaches the
endpoint.
|
void |
TunnelDispatcher.dispatchOutbound(I2NPMessage msg,
TunnelId outboundTunnel,
TunnelId targetTunnel,
Hash targetPeer) |
We are the outbound tunnel gateway (we created it), so wrap up this message
with instructions to be forwarded to the targetTunnel on the targetPeer when
it reaches the endpoint.
|
void |
InboundMessageDistributor.distribute(I2NPMessage msg,
Hash target,
TunnelId tunnel) |
|
void |
OutboundMessageDistributor.distribute(I2NPMessage msg,
Hash target,
TunnelId tunnel) |
|
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) |
Constructor | Description |
---|---|
OutboundGatewayMessage(I2NPMessage message,
Hash toRouter,
TunnelId toTunnel) |
|
PendingGatewayMessage(I2NPMessage message,
Hash toRouter,
TunnelId toTunnel) |
Modifier and Type | Method | Description |
---|---|---|
TunnelInfo |
AliasedTunnelPool.getTunnel(TunnelId gatewayId) |
|
TunnelInfo |
TunnelPool.getTunnel(TunnelId gatewayId) |
|
TunnelInfo |
TunnelPoolManager.getTunnelInfo(TunnelId id) |
Deprecated.
unused
|