java.lang.Object
net.i2p.router.Tuner.BaseParam
net.i2p.router.Tuner.REDMinThresholdParam
All Implemented Interfaces:
Tuner.TunableParam
Enclosing class:
Tuner

private class Tuner.REDMinThresholdParamextends Tuner.BaseParam
SyntheticREDQueue minimum queue threshold (bytes). Below this queue size, no packets are dropped. Increase when healthy to reduce unnecessary drops; decrease under heavy congestion.
  • Constructor Details

    • REDMinThresholdParam

      REDMinThresholdParam()
      Creates the parameter that tunes the RED drop floor.
  • Method Details

    • getDefaultMin

      protected int getDefaultMin(RouterContext ctx)
      Scale min/max/step with share bandwidth. Default = bwBps / 4; range = [bwBps/16 .. bwBps]. Min is clamped to half the 256KB max cap so the range stays non-inverted at high share bandwidth.
      Overrides:
      getDefaultMin in class Tuner.BaseParam
      Parameters:
      ctx - router context passed by refreshRanges, for bandwidth-scaled overrides
      Returns:
      the default min
    • getDefaultMax

      protected int getDefaultMax(RouterContext ctx)
      Description copied from class: Tuner.BaseParam
      Effective default max — override for bandwidth-scaled params. Called by refreshRanges() instead of _defaultMax.
      Overrides:
      getDefaultMax in class Tuner.BaseParam
      Parameters:
      ctx - router context passed by refreshRanges, for bandwidth-scaled overrides
      Returns:
      the default max
    • getDefaultStep

      protected int getDefaultStep(RouterContext ctx)
      Description copied from class: Tuner.BaseParam
      Effective default step — override for bandwidth-scaled params. Called by refreshRanges() instead of _defaultStep.
      Overrides:
      getDefaultStep in class Tuner.BaseParam
      Parameters:
      ctx - router context passed by refreshRanges, for bandwidth-scaled overrides
      Returns:
      the default step
    • applyValue

      protected void applyValue(int value)
      Description copied from class: Tuner.BaseParam
      Apply the tunable value to the router configuration.
      Specified by:
      applyValue in class Tuner.BaseParam
      Parameters:
      value - the tunable value to apply to router configuration
    • getRuntimeValue

      protected int getRuntimeValue()
      Description copied from class: Tuner.BaseParam
      Current runtime value read from the router configuration.
      Specified by:
      getRuntimeValue in class Tuner.BaseParam
      Returns:
      current runtime value read from router config
    • getObservedStat

      protected double getObservedStat(RouterContext ctx)
      Description copied from class: Tuner.BaseParam
      Observed stat value used for autotuning.

      ctx is always this param's own context: Tuner takes a single RouterContext, hands the same instance to every BaseParam constructor, and both call sites pass Tuner.BaseParam._ctx. It was previously passed as null, which silently broke any implementation that used the argument instead of the field — a param reading a cross-reference stat then threw on every tuning cycle, was caught by the cycle handler, and never tuned at all, with nothing but a repeated WARN to show for it. Implementations may use either ctx or Tuner.BaseParam._ctx; both are the same object.

      Specified by:
      getObservedStat in class Tuner.BaseParam
      Parameters:
      ctx - router context, never null
      Returns:
      observed stat value for autotuning
    • computeTarget

      protected int computeTarget(double observed)
      Description copied from class: Tuner.BaseParam
      Target tunable value computed from the observed stat.
      Specified by:
      computeTarget in class Tuner.BaseParam
      Parameters:
      observed - current stat value
      Returns:
      target tunable value