pub struct RttTrackerEntry {
pub site_stats: RttEma,
pub per_edge_stats: HashMap<EdgeKey, RttEma>,
pub reported_outgoing: HashMap<(NodeSiteId, ChainId), RttEma>,
pub phi_accrual: PhiAccrualState,
pub last_seen_at_ns: u64,
pub last_updated_at_ns: u64,
pub last_phi_state: PhiState,
}Expand description
One AddressBook-side entry per logical site we’ve ever observed.
Fields§
§site_stats: RttEmaAggregate Jacobson over ALL round-trips to this site, any
context. Fed by data plane, control plane, handshakes,
anything using Engine::wire_send_tracked.
per_edge_stats: HashMap<EdgeKey, RttEma>Per-(chain, hop) refinement specific to this site.
reported_outgoing: HashMap<(NodeSiteId, ChainId), RttEma>Reverse-path piggyback: this site told us about ITS outgoing edges in chains, indexed by (next-hop, chain_id). Lets a chain originator compose a multi-hop budget from one entry per direct neighbor.
phi_accrual: PhiAccrualStateφ-accrual per direct neighbor.
last_seen_at_ns: u64Timestamp of the most recent wire round-trip with this site, nanoseconds since the engine clock epoch.
last_updated_at_ns: u64Timestamp of the most recent EMA update.
last_phi_state: PhiState-v - last φ state surfaced
by RttTracker::scan_phi. The scan emits a transition only
when the state changes so subscribers don’t get a Suspect
event every poll cycle while the site stays silent.
Trait Implementations§
Source§impl Default for RttTrackerEntry
impl Default for RttTrackerEntry
Source§fn default() -> RttTrackerEntry
fn default() -> RttTrackerEntry
Auto Trait Implementations§
impl Freeze for RttTrackerEntry
impl RefUnwindSafe for RttTrackerEntry
impl Send for RttTrackerEntry
impl Sync for RttTrackerEntry
impl Unpin for RttTrackerEntry
impl UnsafeUnpin for RttTrackerEntry
impl UnwindSafe for RttTrackerEntry
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedComponent for T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request