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§fn default() -> EdgeRttReport
fn default() -> 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 ==.