Skip to main content

SensorSnapshot

Struct SensorSnapshot 

Source
pub struct SensorSnapshot {
    pub loss: f32,
    pub burstiness: f32,
    pub owd_trend: f32,
    pub link_stress: f32,
    pub path_shift: f32,
    pub ecn_ce: f32,
    pub congestion_fraction: f32,
    pub rev_loss: f32,
    pub queue_delay_ms: f32,
    pub backhaul_hops: u8,
}
Expand description

A fused snapshot of the channel from all sensors.

Fields§

§loss: f32

Measured loss fraction, 0..=1 (in-band ground truth).

§burstiness: f32

Burstiness, 0..=1: how clustered the loss is (radio / temporal).

§owd_trend: f32

One-way-delay trend (delay added per unit time). Positive means the queue is building - congestion-driven loss is imminent.

§link_stress: f32

Link stress, 0..=1, from the platform link sensor (low signal / high interface drop rate). A feed-forward predictor of loss.

§path_shift: f32

Path shift, 0..=1, from the peer’s echoed TTL: high just after a hop-count change (a router-level re-route). A feed-forward predictor of the loss a path change often brings.

§ecn_ce: f32

ECN Congestion-Experienced rate, 0..=1, from the peer’s echoed TOS. An AQM router marks CE before it tail-drops, so this leads loss the way a rising delay trend does.

§congestion_fraction: f32

Share of recent loss the peer classed congestion (0..=1), from its loss_class report (Biaz + Spike). The congestion share drives parity up broadly; the wireless share is left to local FEC and does not inflate effective loss.

§rev_loss: f32

Reverse-path (feedback) loss share (0..=1): the fraction of the peer’s feedback the sender missed. Lost feedback impairs ARQ, so a lossy reverse path nudges FEC to carry more (less reliance on the round trip).

§queue_delay_ms: f32

Self-induced queue delay in milliseconds: RTT_now - RTprop from the BBR path model. A sustained value above QUEUE_BLOAT_MS is bufferbloat WE are causing - the rising delay is our own standing queue, not external congestion, so the answer is to pace down (drain the queue), not to add FEC parity (which only deepens it).

§backhaul_hops: u8

Estimated Wi-Fi backhaul-hop count (0..=3) behind the first hop. Each extra hop is a shared-medium retransmit that raises expected loss, so more hops bias parity up.

Trait Implementations§

Source§

impl Clone for SensorSnapshot

Source§

fn clone(&self) -> SensorSnapshot

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for SensorSnapshot

Source§

impl Debug for SensorSnapshot

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SensorSnapshot

Source§

fn default() -> SensorSnapshot

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.