net: sched: sch_netem: Refactor code in 4-state loss generator
Fixed comments to match description with variable names and
refactored code to match the convention as per [1].
To match the convention mapping is done as follows:
State 3 - LOST_IN_BURST_PERIOD
State 4 - LOST_IN_GAP_PERIOD
[1] S. Salsano, F. Ludovici, A. Ordine, "Definition of a general
and intuitive loss model for packet networks and its implementation
in the Netem module in the Linux kernel"
Fixes: a6e2fe17eb
("sch_netem: replace magic numbers with enumerate")
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e99fa4230f
commit
cb3ef7b000
|
@ -208,17 +208,17 @@ static bool loss_4state(struct netem_sched_data *q)
|
|||
* next state and if the next packet has to be transmitted or lost.
|
||||
* The four states correspond to:
|
||||
* TX_IN_GAP_PERIOD => successfully transmitted packets within a gap period
|
||||
* LOST_IN_BURST_PERIOD => isolated losses within a gap period
|
||||
* LOST_IN_GAP_PERIOD => lost packets within a burst period
|
||||
* TX_IN_GAP_PERIOD => successfully transmitted packets within a burst period
|
||||
* LOST_IN_GAP_PERIOD => isolated losses within a gap period
|
||||
* LOST_IN_BURST_PERIOD => lost packets within a burst period
|
||||
* TX_IN_BURST_PERIOD => successfully transmitted packets within a burst period
|
||||
*/
|
||||
switch (clg->state) {
|
||||
case TX_IN_GAP_PERIOD:
|
||||
if (rnd < clg->a4) {
|
||||
clg->state = LOST_IN_BURST_PERIOD;
|
||||
clg->state = LOST_IN_GAP_PERIOD;
|
||||
return true;
|
||||
} else if (clg->a4 < rnd && rnd < clg->a1 + clg->a4) {
|
||||
clg->state = LOST_IN_GAP_PERIOD;
|
||||
clg->state = LOST_IN_BURST_PERIOD;
|
||||
return true;
|
||||
} else if (clg->a1 + clg->a4 < rnd) {
|
||||
clg->state = TX_IN_GAP_PERIOD;
|
||||
|
@ -227,24 +227,24 @@ static bool loss_4state(struct netem_sched_data *q)
|
|||
break;
|
||||
case TX_IN_BURST_PERIOD:
|
||||
if (rnd < clg->a5) {
|
||||
clg->state = LOST_IN_GAP_PERIOD;
|
||||
clg->state = LOST_IN_BURST_PERIOD;
|
||||
return true;
|
||||
} else {
|
||||
clg->state = TX_IN_BURST_PERIOD;
|
||||
}
|
||||
|
||||
break;
|
||||
case LOST_IN_GAP_PERIOD:
|
||||
case LOST_IN_BURST_PERIOD:
|
||||
if (rnd < clg->a3)
|
||||
clg->state = TX_IN_BURST_PERIOD;
|
||||
else if (clg->a3 < rnd && rnd < clg->a2 + clg->a3) {
|
||||
clg->state = TX_IN_GAP_PERIOD;
|
||||
} else if (clg->a2 + clg->a3 < rnd) {
|
||||
clg->state = LOST_IN_GAP_PERIOD;
|
||||
clg->state = LOST_IN_BURST_PERIOD;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case LOST_IN_BURST_PERIOD:
|
||||
case LOST_IN_GAP_PERIOD:
|
||||
clg->state = TX_IN_GAP_PERIOD;
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue