# Uses of Package
net.i2p.data.i2np

- Packages that use net.i2p.data.i2np
  Package | Description
  --- | ---
  net.i2p.data.i2np | The Invisible Internet Network Protocol (I2NP) is only a part of how an application can send messages over the network.
  net.i2p.router | The I2P router application handles the I2P network communication.
  net.i2p.router.message |
  net.i2p.router.networkdb |
  net.i2p.router.networkdb.kademlia |
  net.i2p.router.transport | The transport system allows the usage of communication layers that are below I2P in the stack, on which I2P messages are sent.
  net.i2p.router.transport.udp | The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.
  net.i2p.router.tunnel |

- Classes in net.i2p.data.i2np used by net.i2p.data.i2np
  Class and Description
  DeliveryInstructions Contains the delivery instructions
  I2NPMessage Base interface for all I2NP messages
  I2NPMessageException Represent an error serializing or deserializing an APIMessage
  I2NPMessageHandler Handle messages from router to router.
  I2NPMessageImpl Defines the base message implementation.
  I2NPMessageImpl.Builder interface for extending the types of messages handled - unused
  I2NPMessageReader The I2NPMessageReader reads an InputStream (using `I2NPMessageHandler`) and passes out events to a registered listener, where events are either messages being received, exceptions being thrown, or the connection being closed.
  I2NPMessageReader.I2NPMessageEventListener Defines the different events the reader produces while reading the stream
  TunnelBuildMessage
  TunnelBuildReplyMessage Transmitted from the new outbound endpoint to the creator through a reply tunnel

- Classes in net.i2p.data.i2np used by net.i2p.router
  Class and Description
  I2NPMessage Base interface for all I2NP messages

- Classes in net.i2p.data.i2np used by net.i2p.router.message
  Class and Description
  DeliveryInstructions Contains the delivery instructions
  GarlicClove Contains one deliverable message encrypted to a router along with instructions and a certificate 'paying for' the delivery.
  GarlicMessage Defines the wrapped garlic message
  I2NPMessage Base interface for all I2NP messages

- Classes in net.i2p.data.i2np used by net.i2p.router.networkdb
  Class and Description
  DatabaseLookupMessage Defines the message a router sends to another router to search for a key in the network database.
  DatabaseStoreMessage Defines the message a router sends to another router to test the network database reachability, as well as the reply message sent back.
  I2NPMessage Base interface for all I2NP messages

- Classes in net.i2p.data.i2np used by net.i2p.router.networkdb.kademlia
  Class and Description
  DatabaseLookupMessage Defines the message a router sends to another router to search for a key in the network database.
  DatabaseSearchReplyMessage Defines the message a router sends to another router in response to a search (DatabaseFindNearest or DatabaseLookup) when it doesn't have the value, specifying what routers it would search.
  DatabaseStoreMessage Defines the message a router sends to another router to test the network database reachability, as well as the reply message sent back.
  GarlicMessage Defines the wrapped garlic message
  I2NPMessage Base interface for all I2NP messages

- Classes in net.i2p.data.i2np used by net.i2p.router.transport
  Class and Description
  I2NPMessage Base interface for all I2NP messages

- Classes in net.i2p.data.i2np used by net.i2p.router.transport.udp
  Class and Description
  I2NPMessage Base interface for all I2NP messages
  I2NPMessageHandler Handle messages from router to router.

- Classes in net.i2p.data.i2np used by net.i2p.router.tunnel
  Class and Description
  BuildRequestRecord Hold the tunnel request record, managing its ElGamal encryption and decryption.
  DeliveryInstructions Contains the delivery instructions
  I2NPMessage Base interface for all I2NP messages
  TunnelBuildMessage
  TunnelBuildReplyMessage Transmitted from the new outbound endpoint to the creator through a reply tunnel
  TunnelDataMessage Defines the message sent between routers as part of the tunnel delivery
  TunnelGatewayMessage Defines the message sent between one tunnel's endpoint and another's gateway.