pub struct ResolvedProbe {
pub per_peer_rate_per_sec: f64,
pub per_peer_burst: u32,
pub per_ip_rate_per_sec: f64,
pub per_ip_burst: u32,
pub global_rate_per_sec: f64,
pub global_burst: u32,
pub max_tracked_per_ip: usize,
pub max_tracked_per_peer: usize,
}Expand description
Resolved cdn/probe/v1 settings (ADR 005 §Probe rate limiting).
Mirrors ResolvedDht in shape; Default returns the ADR 005 defaults
(a tighter per-peer cap than the DHT layer, since probes are
unauthenticated and cheaper to flood) so hand-built ResolvedConfig test
sites can write ResolvedProbe::default(). The production
resolve_probe_into path threads the defaults through the resolver bag.
Fields§
§per_peer_rate_per_sec: f64Token refill rate for the per-peer (NodeId) limiter, in probes/second.
per_peer_burst: u32Bucket capacity for the per-peer limiter: how many probes one
peer may send back to back before the refill rate binds. 0 alongside
a 0.0 rate disables the layer; 0 against a nonzero rate is rejected
as a deny-all. The same pairing rule holds for the two below.
per_ip_rate_per_sec: f64Token refill rate for the per-source-IP limiter, in probes/second.
per_ip_burst: u32Bucket capacity for the per-IP limiter.
global_rate_per_sec: f64Token refill rate for the handler-wide limiter, in probes/second. Applies across all peers and all source IPs together.
global_burst: u32Bucket capacity for the handler-wide limiter.
max_tracked_per_ip: usizeHard cap on the per-IP keyed-limiter map (#645). 0 => unbounded.
max_tracked_per_peer: usizeHard cap on the per-peer (NodeId) keyed-limiter map (#645). 0
=> unbounded.
Trait Implementations§
Source§impl Clone for ResolvedProbe
impl Clone for ResolvedProbe
Source§impl Debug for ResolvedProbe
impl Debug for ResolvedProbe
Auto Trait Implementations§
impl Freeze for ResolvedProbe
impl RefUnwindSafe for ResolvedProbe
impl Send for ResolvedProbe
impl Sync for ResolvedProbe
impl Unpin for ResolvedProbe
impl UnsafeUnpin for ResolvedProbe
impl UnwindSafe for ResolvedProbe
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more