pub struct RandomLoss { /* private fields */ }Expand description
Random loss model configuration.
Each packet has the given probability of being dropped. By default, each decision is independent (Bernoulli process), producing unrealistic “spread out” loss patterns.
Use correlation to make losses more bursty, or
prefer GilbertElliot for more realistic bursty loss with finer control.
§Example
use str0m_netem::{RandomLoss, Probability};
// 5% loss, independent
let simple = RandomLoss::new(Probability::new(0.05));
// 5% loss, bursty (losses cluster together)
let bursty = RandomLoss::new(Probability::new(0.05))
.correlation(Probability::new(0.5));Implementations§
Source§impl RandomLoss
impl RandomLoss
Sourcepub fn new(probability: Probability) -> Self
pub fn new(probability: Probability) -> Self
Create a new random loss model with the given drop probability.
Loss decisions are independent by default (no correlation).
Sourcepub fn correlation(self, correlation: Probability) -> Self
pub fn correlation(self, correlation: Probability) -> Self
Set correlation between consecutive loss decisions.
Controls how “bursty” random loss is:
0.0: Each loss decision is independent (Bernoulli process)0.5: If a packet was lost, next packet is more likely to be lost too0.9: Very bursty - losses come in clusters
For realistic bursty loss, consider using GilbertElliot instead,
which provides more control over burst characteristics.
Trait Implementations§
Source§impl Clone for RandomLoss
impl Clone for RandomLoss
Source§fn clone(&self) -> RandomLoss
fn clone(&self) -> RandomLoss
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RandomLoss
impl Debug for RandomLoss
Source§impl From<RandomLoss> for LossModel
impl From<RandomLoss> for LossModel
Source§fn from(value: RandomLoss) -> Self
fn from(value: RandomLoss) -> Self
Converts to this type from the input type.
impl Copy for RandomLoss
Auto Trait Implementations§
impl Freeze for RandomLoss
impl RefUnwindSafe for RandomLoss
impl Send for RandomLoss
impl Sync for RandomLoss
impl Unpin for RandomLoss
impl UnsafeUnpin for RandomLoss
impl UnwindSafe for RandomLoss
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
Mutably borrows from an owned value. Read more