pub struct LinkSnapshot {
pub signal_quality: Option<u8>,
pub drop_rate: Option<f32>,
pub mcs_norm: Option<f32>,
pub retry_rate: Option<f32>,
pub phy_rate_kbps: Option<u32>,
pub class: LinkClass,
}Expand description
A normalized link-quality reading. Every field is optional because no single platform / interface exposes them all.
Fields§
§signal_quality: Option<u8>Signal quality, 0..=100 (Wi-Fi). None on wired links.
drop_rate: Option<f32>Fraction of recent packets dropped / errored at the interface,
0.0..=1.0. None if counters are unavailable.
mcs_norm: Option<f32>Normalized current PHY rate (current TX rate / the best rate seen),
0.0..=1.0, Wi-Fi. A falling value is rate-adaptation backing off under
poor radio conditions - an early loss predictor before frames drop.
None off Wi-Fi.
retry_rate: Option<f32>MAC-layer transmit retry rate (tx_retries / tx_packets), 0.0..=1.0,
Wi-Fi. A climbing value is the radio struggling milliseconds before the
loss reaches shard accounting. None where the OS does not expose it
(Windows WLAN has no retry counter; Linux nl80211 does).
phy_rate_kbps: Option<u32>The raw first-hop PHY rate in kbit/s (Windows ulTxRate, Linux nl80211
tx_bitrate). This is nominal - the rate a SINGLE Wi-Fi hop can carry -
which the mesh-hop detector compares against the measured end-to-end
BtlBw: each single-radio backhaul hop roughly halves throughput, so
round(log2(nominal / BtlBw)) is the backhaul-hop count. None off
Wi-Fi.
class: LinkClassThe link’s class (wired / Wi-Fi / cellular / loopback / unknown).
Implementations§
Source§impl LinkSnapshot
impl LinkSnapshot
Sourcepub fn link_stress(&self) -> f32
pub fn link_stress(&self) -> f32
Combined “link stress” in 0..=1: how degraded the link looks right now. Low signal quality, a high interface drop rate, a fallen PHY rate, and a climbing retry rate all push it up - the worst of the available signals wins. Used as a feed-forward term in the fusion controller.
Trait Implementations§
Source§impl Clone for LinkSnapshot
impl Clone for LinkSnapshot
Source§fn clone(&self) -> LinkSnapshot
fn clone(&self) -> LinkSnapshot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more