pub struct EdgeRttReport {
pub next_hop_site_id: u64,
pub chain_id: u64,
pub hop_index: u32,
pub srtt_ns: u64,
pub rttvar_ns: u64,
pub sample_count: u64,
}Expand description
PLAN tender-noodling-sky Phase 3e-iv — per-edge RTT report
piggybacked on a response envelope. The sending peer reports its
observed SRTT/RTTVAR for its outgoing edge to next_hop_site_id
in chain chain_id. The caller writes the report into
AddressBookEntry.reported_outgoing\[(next_hop, chain_id)\] so a
multi-hop chain budget can be composed from a single direct
neighbor’s address-book entry.
Fields§
§next_hop_site_id: u64Logical site identifier of the next hop in the chain. Encoded as a u64 — derived from the receiver’s NodeSiteId.
chain_id: u64Stable identifier hashed from the analyzer’s chain_targets CSV.
hop_index: u32Zero-based hop position within the chain.
srtt_ns: u64Jacobson SRTT for this edge in nanoseconds.
rttvar_ns: u64Jacobson RTTVAR for this edge in nanoseconds.
sample_count: u64Sample count backing the EMA — lets the caller weight the report (e.g. discount reports with very few samples).
Trait Implementations§
Source§impl Clone for EdgeRttReport
impl Clone for EdgeRttReport
Source§fn clone(&self) -> EdgeRttReport
fn clone(&self) -> EdgeRttReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for EdgeRttReport
Source§impl Debug for EdgeRttReport
impl Debug for EdgeRttReport
Source§impl Default for EdgeRttReport
impl Default for EdgeRttReport
Source§impl Message for EdgeRttReport
impl Message for EdgeRttReport
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for EdgeRttReport
impl PartialEq for EdgeRttReport
Source§fn eq(&self, other: &EdgeRttReport) -> bool
fn eq(&self, other: &EdgeRttReport) -> bool
self and other values to be equal, and is used by ==.