From 182cda3d11cc48437b25022bf2b08b2fa329da1f Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 20 May 2009 12:40:27 -0700 Subject: Fix RED calculation One extra division by 8 was bein done (bandwidth already in bits/sec). --- lib/Vyatta/Qos/Util.pm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/Vyatta/Qos/Util.pm b/lib/Vyatta/Qos/Util.pm index 1d12bb3..2e0eec9 100644 --- a/lib/Vyatta/Qos/Util.pm +++ b/lib/Vyatta/Qos/Util.pm @@ -321,18 +321,18 @@ sub ethtoolRate { # Compute parameters for RED algorithim based on bandwidth and latency # -# 0.01 * Bandwidth Share * Desired Latency * Network Bandwidth -# Maximum Threshold = ------------------------------------------------------------------- -# 8 bits/byte* 1000 ms/sec +# Bandwidth (bits/sec) * Latency (ms) +# Maximum Threshold = -------------------------------------- +# 1000 ms/sec # -# Minimum Threshold = 1/2 * Maximum Threshold +# Minimum Threshold = Maximum Threshold / 3 # Avpkt = Average Packet Length # Burst = ( 2 * MinThreshold + MaxThreshold) / ( 3 * Avpkt ) # Limit = 4 * MaxThreshold sub RedParam { my ($bandwidth, $latency, $avgpkt) = @_; - my $qmax = ($bandwidth * $latency) / 8000; - my $qmin = $qmax / 2; + my $qmax = ($bandwidth * $latency) / 1000; + my $qmin = $qmax / 3; my $burst = ( 2 * $qmin + $qmax ) / ( 3 * $avgpkt ); return ($qmin, $qmax, $burst); -- cgit v1.2.3