summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstephen hemminger <stephen@networkplumber.org>2013-11-29 11:03:35 -0800
committerDavid S. Miller <davem@davemloft.net>2013-11-30 12:49:28 -0500
commitab6c27be8178a4682446faa5aa017b948997937f (patch)
tree2159be97daea3dc8980376ff13dc7b90c140ca4e
parent7c2781fa92f5b9ca3188817a56a2ced0400355f3 (diff)
downloadkernel-common-ab6c27be8178a4682446faa5aa017b948997937f.tar.gz
kernel-common-ab6c27be8178a4682446faa5aa017b948997937f.tar.bz2
kernel-common-ab6c27be8178a4682446faa5aa017b948997937f.zip
netem: fix loss 4 state model
Patch from developers of the alternative loss models, downloaded from: http://netgroup.uniroma2.it/twiki/bin/view.cgi/Main/NetemCLG "In the case 1 of the switch statement in the if conditions we need to add clg->a4 to clg->a1, according to the model." Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/sched/sch_netem.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
index 6e91323f3dac..9685624f7bc7 100644
--- a/net/sched/sch_netem.c
+++ b/net/sched/sch_netem.c
@@ -215,10 +215,10 @@ static bool loss_4state(struct netem_sched_data *q)
if (rnd < clg->a4) {
clg->state = 4;
return true;
- } else if (clg->a4 < rnd && rnd < clg->a1) {
+ } else if (clg->a4 < rnd && rnd < clg->a1 + clg->a4) {
clg->state = 3;
return true;
- } else if (clg->a1 < rnd)
+ } else if (clg->a1 + clg->a4 < rnd)
clg->state = 1;
break;