Class 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.
    • Constructor Detail

      • RouterThrottleImpl

        public RouterThrottleImpl​(RouterContext context)
    • Method Detail

      • 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