Loading net/sched/sch_netem.c +9 −4 Original line number Diff line number Diff line Loading @@ -117,6 +117,11 @@ struct netem_sched_data { LOST_IN_BURST_PERIOD, } _4_state_model; enum { GOOD_STATE = 1, BAD_STATE, } GE_state_model; /* Correlated Loss Generation models */ struct clgstate { /* state of the Markov chain */ Loading Loading @@ -272,15 +277,15 @@ static bool loss_gilb_ell(struct netem_sched_data *q) struct clgstate *clg = &q->clg; switch (clg->state) { case 1: case GOOD_STATE: if (prandom_u32() < clg->a1) clg->state = 2; clg->state = BAD_STATE; if (prandom_u32() < clg->a4) return true; break; case 2: case BAD_STATE: if (prandom_u32() < clg->a2) clg->state = 1; clg->state = GOOD_STATE; if (prandom_u32() > clg->a3) return true; } Loading Loading
net/sched/sch_netem.c +9 −4 Original line number Diff line number Diff line Loading @@ -117,6 +117,11 @@ struct netem_sched_data { LOST_IN_BURST_PERIOD, } _4_state_model; enum { GOOD_STATE = 1, BAD_STATE, } GE_state_model; /* Correlated Loss Generation models */ struct clgstate { /* state of the Markov chain */ Loading Loading @@ -272,15 +277,15 @@ static bool loss_gilb_ell(struct netem_sched_data *q) struct clgstate *clg = &q->clg; switch (clg->state) { case 1: case GOOD_STATE: if (prandom_u32() < clg->a1) clg->state = 2; clg->state = BAD_STATE; if (prandom_u32() < clg->a4) return true; break; case 2: case BAD_STATE: if (prandom_u32() < clg->a2) clg->state = 1; clg->state = GOOD_STATE; if (prandom_u32() > clg->a3) return true; } Loading