# Uses of Package
net.i2p.router.tunnel

- Packages that use net.i2p.router.tunnel
  Package | Description
  --- | ---
  net.i2p.router | The I2P router application handles the I2P network communication.
  net.i2p.router.tunnel |
  net.i2p.router.tunnel.pool |

- Classes in net.i2p.router.tunnel used by net.i2p.router
  Class and Description
  HopConfig Defines the general configuration for a hop in a tunnel.
  TunnelDispatcher Handle the actual processing and forwarding of messages through the various tunnels.

- Classes in net.i2p.router.tunnel used by net.i2p.router.tunnel
  Class and Description
  BatchedPreprocessor Batching preprocessor that will briefly delay the sending of a message if it doesn't fill up a full tunnel message, in which case it queues up an additional flush task.
  DummyValidator accept everything
  FragmentHandler Handle fragments at the endpoint of a tunnel, peeling off fully completed I2NPMessages when they arrive, and dropping fragments if they take too long to arrive.
  FragmentHandler.DefragmentedReceiver Receive messages out of the tunnel endpoint.
  HopConfig Defines the general configuration for a hop in a tunnel.
  HopProcessor Take a received tunnel message, verify that it isn't a duplicate, and translate it into what the next hop will want.
  InboundEndpointProcessor Receive the inbound tunnel message, removing all of the layers added by earlier hops to recover the preprocessed data sent by the gateway.
  IVValidator Provide a generic interface for IV validation which may be implemented through something as simple as a hashtable or more a complicated bloom filter.
  PumpedTunnelGateway This is used for all gateways with more than zero hops.
  TrivialPreprocessor Do the simplest thing possible for preprocessing - for each message available, turn it into the minimum number of fragmented preprocessed blocks, sending each of those out.
  TunnelCreatorConfig Coordinate the info that the tunnel creator keeps track of, including what peers are in the tunnel and what their configuration is
  TunnelGateway Serve as the gatekeeper for a tunnel, accepting messages, coallescing and/or fragmenting them before wrapping them up for tunnel delivery.
  TunnelGateway.Pending Stores all the state for an unsent or partially-sent message
  TunnelGateway.QueuePreprocessor
  TunnelGateway.Receiver
  TunnelGateway.Sender
  TunnelGatewayPumper run through the tunnel gateways that have had messages added to them and push those messages through the preprocessing and sending process

- Classes in net.i2p.router.tunnel used by net.i2p.router.tunnel.pool
  Class and Description
  TunnelCreatorConfig Coordinate the info that the tunnel creator keeps track of, including what peers are in the tunnel and what their configuration is