summary refs log tree commit diff
path: root/net/sched/sch_netem.c
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 /net/sched/sch_netem.c
parent7c2781fa92f5b9ca3188817a56a2ced0400355f3 (diff)
downloadlinux-ab6c27be8178a4682446faa5aa017b948997937f.tar.gz
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>
Diffstat (limited to 'net/sched/sch_netem.c')
-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;