Packages that use TunnelId
Package
Description
Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P.
Common data structures used by the I2P protocols: Destination, LeaseSet, PublicKey, Signature, Certificate and their friends.
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).
Low-level messages sent between routers - the Invisible Internet Network Protocol (I2NP).
The I2P router application handles I2P network communication.
Network database message handling shared by all facades: database lookup jobs and local RouterInfo publication.
The Kademlia distributed hash table (DHT) network database: lookup, store and explore jobs, the data store, the floodfill variants, and lookup throttling.
Peer profiles and capacity calculation, peer test jobs, peer selection for tunnel building, and the database and tunnel history used for peer selection.
Tunnel messages and the tunnel layer: the
TunnelManagerFacade, tunnel build request and reply processing, and the inbound and outbound tunnel structures. Tunnel pool management: pool lifecycle, peer selection, build scheduling and failure handling for client and exploratory tunnels.
Uses of TunnelId in net.i2p.client
Fields in net.i2p.client declared as TunnelIdModifier and TypeFieldDescriptionprivate final TunnelIdI2PSession.TunnelPair._inboundTunnelIdThe tunnel messages arrive on.private final TunnelIdI2PSession.TunnelPair._outboundTunnelIdThe tunnel messages are sent on.private final TunnelIdTunnelRemovalEvent._tunnelIdThe tunnel being removed.Methods in net.i2p.client that return TunnelIdModifier and TypeMethodDescriptionI2PSession.TunnelPair.getInboundTunnelId()Inbound tunnel for this pair.I2PSession.TunnelPair.getOutboundTunnelId()Outbound tunnel for this pair.TunnelRemovalEvent.getTunnelId()Return the tunnel ID.Constructors in net.i2p.client with parameters of type TunnelIdModifierConstructorDescriptionTunnelPair(TunnelId inbound, TunnelId outbound) Inbound tunnel ID.TunnelRemovalEvent(String poolName, TunnelId tunnelId, boolean isInbound, TunnelRemovalEvent.RemovalReason reason) Create a new tunnel removal event.Uses of TunnelId in net.i2p.data
Fields in net.i2p.data declared as TunnelIdMethods in net.i2p.data that return TunnelIdModifier and TypeMethodDescriptionLease.getTunnelId()Tunnel on the gateway to communicate with.MetaLease.getTunnelId()UnsupportedOperationException always.Methods in net.i2p.data with parameters of type TunnelIdModifier and TypeMethodDescriptionvoidLease.setTunnelId(TunnelId id) Configure the tunnel on the gateway to communicate with.voidMetaLease.setTunnelId(TunnelId id) UnsupportedOperationException always.Uses of TunnelId in net.i2p.data.i2cp
Fields in net.i2p.data.i2cp declared as TunnelIdModifier and TypeFieldDescriptionprivate final TunnelIdRequestLeaseSetMessage.TunnelEndpoint._tunnelIdThe gateway's tunnel id.Methods in net.i2p.data.i2cp that return TunnelIdModifier and TypeMethodDescriptionRequestLeaseSetMessage.getTunnelId(int endpoint) Tunnel of one of the requested endpoints.RequestLeaseSetMessage.TunnelEndpoint.getTunnelId()Tunnel this endpoint reaches the router over.Methods in net.i2p.data.i2cp with parameters of type TunnelIdModifier and TypeMethodDescriptionvoidRequestLeaseSetMessage.addEndpoint(Hash router, TunnelId tunnel) Add a router and tunnel endpoint.Constructors in net.i2p.data.i2cp with parameters of type TunnelIdModifierConstructorDescriptionTunnelEndpoint(Hash router, TunnelId id) One requested tunnel, pairing a router with one of its tunnel ids.Uses of TunnelId in net.i2p.data.i2np
Fields in net.i2p.data.i2np declared as TunnelIdModifier and TypeFieldDescriptionprivate TunnelIdDatabaseLookupMessage._replyTunnelTunnel id to reply through.private TunnelIdDatabaseStoreMessage._replyTunnelTunnel the reply should go back through.private TunnelIdDeliveryInstructions._tunnelIdTunnel ID for TUNNEL mode.private TunnelIdTunnelGatewayMessage._tunnelIdThe tunnel this message enters.private TunnelIdTunnelDataMessage._tunnelIdObjThe tunnel id in object form.Methods in net.i2p.data.i2np that return TunnelIdModifier and TypeMethodDescriptionDatabaseLookupMessage.getReplyTunnel()Contains the tunnel ID a reply should be sent to.DatabaseStoreMessage.getReplyTunnel()The tunnel to send the reply through, or null if no reply is requested.DeliveryInstructions.getTunnelId()Default null.TunnelGatewayMessage.getTunnelId()Return the tunnel to deliver this message to.TunnelDataMessage.getTunnelIdObj()TheTunnelIdform of the tunnel ID, built once and then cached.Methods in net.i2p.data.i2np with parameters of type TunnelIdModifier and TypeMethodDescriptionvoidDatabaseLookupMessage.setReplyTunnel(TunnelId replyTunnel) Assigns the tunnel a reply should be sent to.voidDatabaseStoreMessage.setReplyTunnel(TunnelId id) Assigns the tunnel to send the reply through.voidDeliveryInstructions.LocalInstructions.setTunnelId(TunnelId id) Throws, as local delivery instructions are immutable.voidDeliveryInstructions.setTunnelId(TunnelId id) Required for TUNNEL.voidTunnelDataMessage.setTunnelId(TunnelId id) (correctly) Invalidates stored checksum.voidTunnelGatewayMessage.setTunnelId(TunnelId id) Tunnel ID for this message; may only be set once.Uses of TunnelId in net.i2p.router
Methods in net.i2p.router that return TunnelIdModifier and TypeMethodDescriptionTunnelInfo.getReceiveTunnelId(int hop) The tunnelId that the given hop receives messages on.TunnelInfo.getSendTunnelId(int hop) The tunnelId that the given hop sends messages on.Methods in net.i2p.router with parameters of type TunnelIdModifier and TypeMethodDescriptionvoidMessageHistory.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.voidMessageHistory.tunnelFailed(TunnelId tunnel) The local router has detected a failure in the given tunnel.voidMessageHistory.tunnelRejected(Hash peer, TunnelId tunnel, Hash replyThrough, String reason) The peer did not accept the tunnel join for the given reason.voidMessageHistory.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).Uses of TunnelId in net.i2p.router.networkdb
Methods in net.i2p.router.networkdb with parameters of type TunnelIdModifier and TypeMethodDescriptionprotected voidHandleDatabaseLookupMessageJob.sendClosest(Hash key, Set<Hash> routerHashes, Hash toPeer, TunnelId replyTunnel) Send the closest routers to the requesting peer.private voidHandleDatabaseLookupMessageJob.sendData(Hash key, DatabaseEntry data, Hash toPeer, TunnelId replyTunnel) Sends the data that was found.protected voidHandleDatabaseLookupMessageJob.sendMessage(I2NPMessage message, Hash toPeer, TunnelId replyTunnel) Send an I2NP message to the specified peer.private voidHandleDatabaseLookupMessageJob.sendThroughTunnel(I2NPMessage message, Hash toPeer, TunnelId replyTunnel) Sends the message through the reply tunnel.Uses of TunnelId in net.i2p.router.networkdb.kademlia
Fields in net.i2p.router.networkdb.kademlia declared as TunnelIdModifier and TypeFieldDescriptionprivate static final TunnelIdLookupBanHammer.DUMMY_IDTunnel id standing in for an unknown id.private static final TunnelIdLookupThrottler.DUMMY_IDThe id of this is -1.final TunnelIdLookupBanHammer.ReplyTunnel.idThe tunnel id the reply came through.Fields in net.i2p.router.networkdb.kademlia with type parameters of type TunnelIdModifier and TypeFieldDescriptionLookupThrottler.burstTimestampsMap of peer hashes to sets of reply tunnel IDs for throttling.private final ConcurrentHashMap<Hash, ConcurrentHashMap<TunnelId, AtomicInteger>> LookupThrottler.counterConcurrent hash map.Methods in net.i2p.router.networkdb.kademlia with parameters of type TunnelIdModifier and TypeMethodDescriptionprotected I2NPMessageExploreJob.buildMessage(TunnelId replyTunnelId, Hash replyGateway, long expiration, RouterInfo peer) Builds the database lookup message to send to a peer.protected I2NPMessageSearchJob.buildMessage(TunnelId replyTunnelId, Hash replyGateway, long expiration, RouterInfo peer) Build the database search message.protected voidHandleFloodfillDatabaseLookupMessageJob.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) booleanRecord a lookup and check if the requester should be banned.(package private) booleanFloodfillNetworkDatabaseFacade.shouldBanLookup(Hash from, TunnelId id) Check if lookup from a peer should be banned.(package private) booleanLookupThrottler.shouldThrottle(Hash key, TunnelId id) Increment and check throttling for the given peer and tunnel.(package private) booleanFloodfillNetworkDatabaseFacade.shouldThrottleLookup(Hash from, TunnelId id) Increments and tests.Constructors in net.i2p.router.networkdb.kademlia with parameters of type TunnelIdModifierConstructorDescription(package private)ReplyTunnel(Hash h, TunnelId id) Identifies one reply tunnel.Uses of TunnelId in net.i2p.router.peermanager
Methods in net.i2p.router.peermanager with parameters of type TunnelIdModifier and TypeMethodDescriptionprivate DatabaseStoreMessagePeerTestJob.buildMessage(RouterInfo peer, TunnelId replyTunnel, Hash replyGateway, long nonce, long expiration) Build a message to test the peer with.Uses of TunnelId in net.i2p.router.tunnel
Fields in net.i2p.router.tunnel declared as TunnelIdModifier and TypeFieldDescriptionprivate TunnelIdHopConfig._receiveTunnelThe tunnel id we receive on.private TunnelIdHopConfig._sendTunnelThe tunnel id we send on.private TunnelIdFragmentedMessage._toTunnelThe tunnel the message goes through.protected final TunnelIdPendingGatewayMessage._toTunnelThe destination tunnel.private final TunnelIdOutboundMessageDistributor.DistributeJob._tunnelThe tunnel the reply comes back on.Fields in net.i2p.router.tunnel with type parameters of type TunnelIdModifier and TypeFieldDescriptionprivate final ConcurrentHashMap<TunnelId, TunnelGateway> TunnelDispatcher._inboundGatewaysMap of inbound gateways (IBGW or zero-hop tunnels).private final ConcurrentHashMap<TunnelId, OutboundTunnelEndpoint> TunnelDispatcher._outboundEndpointsMap of outbound endpoints we joined.private final ConcurrentHashMap<TunnelId, TunnelGateway> TunnelDispatcher._outboundGatewaysMap of outbound gateways we created.private final ConcurrentHashMap<TunnelId, TunnelParticipant> TunnelDispatcher._participantsMap of tunnel participants (either IBEP or middle hop).private final ConcurrentHashMap<TunnelId, HopConfig> TunnelDispatcher._participatingConfigConfigurations for tunnels we are participating in but not creating.private final ConcurrentHashMap<TunnelId, Long> TunnelDispatcher._recentlyExpiredRecently expired tunnel IDs to suppress warnings.Methods in net.i2p.router.tunnel that return TunnelIdModifier and TypeMethodDescriptionTunnelDispatcher.getNewIBEPID()A random receive tunnel ID that isn't a duplicate.TunnelDispatcher.getNewIBZeroHopID()A random receive tunnel ID that isn't a duplicate (zero hop).TunnelDispatcher.getNewOBGWID()A random send tunnel ID that isn't a duplicate.HopConfig.getReceiveTunnel()What tunnel ID are we receiving on? (null if uninitialized).TunnelCreatorConfig.getReceiveTunnelId(int hop) Retrieve the tunnelId that the given hop receives messages on.HopConfig.getSendTunnel()What is the next tunnel ID we are sending to? (null if endpoint).TunnelCreatorConfig.getSendTunnelId(int hop) Retrieve the tunnelId that the given hop sends messages on.FragmentedMessage.getTargetTunnel()The tunnel this message is being sent to.PendingGatewayMessage.getToTunnel()The destination tunnel.Methods in net.i2p.router.tunnel with parameters of type TunnelIdModifier and TypeMethodDescriptionbooleanPumpedTunnelGateway.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel) Adds a message to be sent down the tunnel.booleanThrottledPumpedTunnelGateway.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel) Adds a message to the inbound gateway after a bandwidth-based drop check.booleanTunnelGateway.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).booleanTunnelGatewayZeroHop.add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel) Add a message to be sent down the tunnel (immediately forwarding it to theInboundMessageDistributororOutboundMessageDistributor, as necessary).private voidTunnelDispatcher.addRecentlyExpired(TunnelId id) Records a tunnel id as recently expired.booleanTunnelDispatcher.dispatchOutbound(I2NPMessage msg, TunnelId outboundTunnel, Hash targetPeer) Dispatch an outbound message through a tunnel.booleanTunnelDispatcher.dispatchOutbound(I2NPMessage msg, TunnelId outboundTunnel, TunnelId targetTunnel, Hash targetPeer) Dispatch an outbound message through a tunnel.voidInboundMessageDistributor.distribute(I2NPMessage msg, Hash target, TunnelId tunnel) Distribute the message to the target, giving the tunnel ID for remote delivery.voidOutboundMessageDistributor.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.private voidOutboundMessageDistributor.distribute(I2NPMessage msg, RouterInfo target, TunnelId tunnel) Warning - as of 0.9.63, msg will be an UnknownI2NPMessage, and must be converted before handling locally.booleanTunnelDispatcher.hasOutboundGateway(TunnelId tid) Whether an outbound gateway exists for the given TunnelId.booleanFragmentedMessage.receive(byte[] payload, int offset, int length, boolean isLast, Hash toRouter, TunnelId toTunnel) Receive the first fragment (#0) and related metadata.voidFragmentHandler.DefragmentedReceiver.receiveComplete(I2NPMessage msg, Hash toRouter, TunnelId toTunnel) Receive a fully formed I2NPMessage out of the tunnel.private voidFragmentHandler.receiveComplete(byte[] data, int offset, int len, Hash router, TunnelId tunnelId) Zero-copy reception of an unfragmented message.voidOutboundTunnelEndpoint.DefragmentedHandler.receiveComplete(I2NPMessage msg, Hash toRouter, TunnelId toTunnel) Warning - as of 0.9.63, msg will be an UnknownI2NPMessage, and must be converted before handling locally.voidTunnelParticipant.DefragmentedHandler.receiveComplete(I2NPMessage msg, Hash toRouter, TunnelId toTunnel) Distribute the complete message to its target.voidHopConfig.setReceiveTunnelId(TunnelId id) The tunnel ID to receive messages on.voidHopConfig.setSendTunnelId(TunnelId id) The tunnel ID to send messages through.Constructors in net.i2p.router.tunnel with parameters of type TunnelIdModifierConstructorDescriptionDistributeJob(RouterContext ctx, I2NPMessage msg, Hash target, TunnelId id) Builds the distribution job.OutboundGatewayMessage(I2NPMessage message, Hash toRouter, TunnelId toTunnel) Caches the message priority, which the fragmenter queue orders by.PendingGatewayMessage(I2NPMessage message, Hash toRouter, TunnelId toTunnel) Stores the message data, destination, and expiration for a pending send.Uses of TunnelId in net.i2p.router.tunnel.pool
Fields in net.i2p.router.tunnel.pool declared as TunnelIdModifier and TypeFieldDescriptionprivate TunnelIdPooledTunnelCreatorConfig._pairedGWThe gateway tunnel paired with this one, by id only - storing the config itself leads to OOM.Fields in net.i2p.router.tunnel.pool with type parameters of type TunnelIdModifier and TypeFieldDescriptionTunnelPool._recentlyAddedTunnelsTunnels added recently, by id, for duplicate suppression.Methods in net.i2p.router.tunnel.pool that return TunnelIdModifier and TypeMethodDescriptionprivate TunnelIdTunnelPool.getGatewayTunnelId(TunnelInfo info) The tunnel ID used to dedupe additions: receive side for inbound pools, send side for outbound.PooledTunnelCreatorConfig.getPairedGW()The ID of the gateway of the paired tunnel used to send/receive the build request.Methods in net.i2p.router.tunnel.pool with parameters of type TunnelIdModifier and TypeMethodDescriptionprivate booleanTunnelPool.addOrReplaceTunnel(TunnelInfo info, TunnelId gatewayId, long now, int usable, int maxUsable, int target) Add the tunnel unless the pool is at capacity; at capacity try replacing a non-GOOD tunnel instead of dropping the new build.private PooledTunnelCreatorConfigTunnelPool.findPairedInPool(TunnelPool pool, TunnelId pairedGW) Look up the paired tunnel in the given pool.Tunnel by its gateway tunnel ID.private booleanTunnelPool.isDuplicateInPool(TunnelInfo info, TunnelId gatewayId) Reject re-adds of the same object (buildComplete called twice) and different objects with the same gateway tunnel ID.private booleanTunnelPool.isRecentlyAddedDuplicate(TunnelInfo info, TunnelId gatewayId, long now) Check the recent-additions map for a duplicate gateway ID, cleaning stale entries so the map cannot grow unbounded.private booleanTunnelPool.replaceNonGoodTunnel(TunnelInfo info, TunnelId gatewayId, long now, int usable, int maxUsable, int target) At capacity, swap the new tunnel in for the first replaceable one — only FAILED tunnels (or FAILING for non-server pools).voidPooledTunnelCreatorConfig.setPairedGW(TunnelId gw) The ID of the gateway of the paired tunnel used to send/receive the build request.private voidTunnelPool.swapInReplacement(TunnelInfo replacee, TunnelInfo info, TunnelId gatewayId, long now) Swap the replacement into the pool and record it as recently added.