Class RouterThrottleImpl

java.lang.Object
net.i2p.router.RouterThrottleImpl
All Implemented Interfaces:
RouterThrottle
Direct Known Subclasses:
RouterDoSThrottle

public class RouterThrottleImpl extends Object implements RouterThrottle
Simple throttle that basically stops accepting messages or nontrivial requests if the jobQueue lag is too large.
  • Field Details

  • Constructor Details

    • RouterThrottleImpl

      public RouterThrottleImpl(RouterContext context)
  • Method Details

    • acceptNetworkMessage

      public boolean acceptNetworkMessage()
      Should we accept any more data from the network for any sort of message, taking into account our current load, or should we simply slow down? FIXME only called by SSU Receiver, not NTCP! FIXME should put warning on the console FIXME or should we do this at all? We have Codel queues all over now...
      Specified by:
      acceptNetworkMessage in interface RouterThrottle
    • acceptNetDbLookupRequest

      @Deprecated public boolean acceptNetDbLookupRequest(Hash key)
      Deprecated.
      unused, function moved to netdb
      Description copied from interface: RouterThrottle
      Should we accept the netDb lookup message, replying either with the value or some closer peers, or should we simply drop it due to overload?
      Specified by:
      acceptNetDbLookupRequest in interface RouterThrottle
    • acceptTunnelRequest

      public int acceptTunnelRequest()
      If we should send a reject, return a nonzero reject code. Anything that causes us to drop a request instead of rejecting it must go in BuildHandler.handleInboundRequest(), not here.
      Specified by:
      acceptTunnelRequest in interface RouterThrottle
      Returns:
      0 for accept or nonzero reject code
    • getMessageDelay

      public long getMessageDelay()
      Description copied from interface: RouterThrottle
      How backed up we are at the moment processing messages (in milliseconds)
      Specified by:
      getMessageDelay in interface RouterThrottle
    • getTunnelLag

      public long getTunnelLag()
      Description copied from interface: RouterThrottle
      How backed up our tunnels are at the moment (in milliseconds)
      Specified by:
      getTunnelLag in interface RouterThrottle
    • getInboundRateDelta

      public double getInboundRateDelta()
      Description copied from interface: RouterThrottle
      How much faster (or if negative, slower) we are receiving data as opposed to our longer term averages?
      Specified by:
      getInboundRateDelta in interface RouterThrottle
    • getTunnelStatus

      public String getTunnelStatus()
      Description copied from interface: RouterThrottle
      Message on the state of participating tunnel acceptance
      Specified by:
      getTunnelStatus in interface RouterThrottle
    • getLocalizedTunnelStatus

      public String getLocalizedTunnelStatus()
      getTunnelStatus(), translated if available.
      Specified by:
      getLocalizedTunnelStatus in interface RouterThrottle
      Since:
      0.9.45
    • setShutdownStatus

      public void setShutdownStatus()
      Specified by:
      setShutdownStatus in interface RouterThrottle
      Since:
      0.8.12
    • cancelShutdownStatus

      public void cancelShutdownStatus()
      Specified by:
      cancelShutdownStatus in interface RouterThrottle
      Since:
      0.8.12
    • setTunnelStatus

      public void setTunnelStatus(String msg)
      Specified by:
      setTunnelStatus in interface RouterThrottle