Package net.i2p.router

The I2P router application handles the I2P network communication.

It encompasses sending and receiving messages, building up tunnels, encrypting and decrypting (on multiple levels) where applicable, and so on.

Classes in this package, sub-packages, and others in router.jar are not for use by apps, clients or plugins (except for routerconsole). Subject to change. Not necessarily maintained as a stable API.

For applications bundling the I2P router, instantiate Router and call runRouter(), or use Router.main() or RouterLaunch. Most public methods in Router are maintained as a stable I2P for those bundling the router.

  • Interface Summary 
    Interface Description
    HandlerJobBuilder
    Defines a class that builds jobs to handle a particular message - these builders are registered with the InNetMessagePool for various I2NP message types, allowing immediate queueing of a handler job rather than waiting for a polling job to come pick it up.
    Job
    Defines an executable task For use by the router only.
    MessageSelector
    Define a mechanism to select what messages are associated with a particular OutNetMessage.
    PeerManagerFacade
    Manage peer references and keep them up to date so that when asked for peers, it can provide appropriate peers according to the criteria provided.
    ProfileManager  
    ReplyJob
    Defines an executable task that can be fired off in reply to a message
    RouterClock.ClockShiftListener  
    RouterThrottle
    Gatekeeper for deciding whether to throttle the further processing of messages through the router.
    Service
    Define the manageable service interface for the subsystems in the I2P router
    TunnelInfo
    Defines the information associated with a tunnel
    TunnelManagerFacade
    Build and maintain tunnels throughout the network.
  • Class Summary 
    Class Description
    Banlist
    Routers are banlisted only if none of our transports can talk to them or their signed router info is completely screwy.
    Banlist.Entry  
    Blocklist
    Manage blocking by IP address, in a manner similar to the Banlist, which blocks by router hash.
    ClientManagerFacade
    Manage all interactions with clients
    ClientMessage
    Wrap a message either destined for a local client or received from one.
    ClientMessagePool
    Manage all of the inbound and outbound client messages maintained by the router.
    ClientTunnelSettings
    Wrap up the client settings specifying their tunnel criteria
    CommandLine
    Simple command line access to various utilities.
    CommSystemFacade
    Manages the communication subsystem between peers, including connections, listeners, transports, connection keys, etc.
    InNetMessagePool
    Manage a pool of inbound InNetMessages.
    JobImpl
    Base implementation of a Job For use by the router only.
    JobQueue
    Manage the pending jobs according to whatever algorithm is appropriate, giving preference to earlier scheduled jobs.
    JobQueueRunner
    a do run run run a do run run
    JobStats
    Glorified struct to contain basic job stats.
    JobTiming
    Define the timing requirements and statistics for a particular job For use by the router only.
    KeyManager
    Maintain all of the key pairs for the router.
    LeaseSetKeys
    Wrap up the keys given to the router when a destination connects to it.
    MessageHistory
    Simply act as a pen register of messages sent in and out of the router.
    MessageValidator
    Singleton to manage the logic (and historical data) to determine whether a message is valid or not (meaning it isn't expired and hasn't already been received).
    MultiRouter
    Fire up multiple routers in the same VM, all with their own RouterContext (and all that entails).
    NetworkDatabaseFacade
    Defines the mechanism for interacting with I2P's network database
    OutNetMessage
    Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.
    OutNetMessagePool
    Maintain a pool of OutNetMessages destined for other routers, organized by priority, expiring messages as necessary.
    PersistentKeyRing
    ConcurrentHashMap with backing in the router.config file.
    Router
    Main driver for the router.
    RouterClock
    Alternate location for determining the time which takes into account an offset.
    RouterContext
    Build off the core I2P context to provide a root for a router instance to coordinate its resources.
    RouterDoSThrottle Deprecated.
    unused
    RouterLaunch
    This is the class called by the runplain.sh script on linux and the i2p.exe launcher on Windows.
    RouterThrottleImpl
    Simple throttle that basically stops accepting messages or nontrivial requests if the jobQueue lag is too large.
    RouterVersion
    Expose a version string
    StatisticsManager
    Publishes some statistics about the router in the netDB.
    TunnelPoolSettings
    Wrap up the settings for a pool of tunnels.
  • Enum Summary 
    Enum Description
    CommSystemFacade.Status
    Since the codes may change.