X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@lists.alpinelinux.org Received: from mail-ew0-f213.google.com (mail-ew0-f213.google.com [209.85.219.213]) by lists.alpinelinux.org (Postfix) with ESMTP id 6A2833617A1A for ; Tue, 1 Jun 2010 15:17:02 +0000 (UTC) Received: by ewy5 with SMTP id 5so1216742ewy.20 for ; Tue, 01 Jun 2010 08:17:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:from:to:cc:subject :date:message-id:x-mailer; bh=1qj2Wb5qzZ8YcHWT9E38u7KJAfB8Cuzo4uyYjBlEiM4=; b=WewXxkfZ787daU8PtxDyQejrUEO5Sm8SNnwMHBe1eKFV6CUTW5VVmhgI9MD+3i4Znr UE4LuBPuVfR3yeXPeDA+iQlkqlrt/6i1AWyV4yJCNZmZHT0o4RZcsR0F8+yzX8bz0rJ3 jMyLbvavTi5fESvCZrQ702t4xe+vLInq92G4w= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:to:cc:subject:date:message-id:x-mailer; b=LpZACR1rLRY052Z5fTKCvh2MxGqkbS+Y6hhjpkPYActXupz4+jHDc4R4y5B1j0FsT+ syEgabjMIq1L0Q5bVy4QzmwvS0cvPoDDmwMomZNAbhjTbb0wyCc28SXPmU5J7yZCwiwe rfO+bpAsXZOf5U2dTun6xFVY3vkXY2OyhsdiI= Received: by 10.213.20.80 with SMTP id e16mr3524320ebb.13.1275405421702; Tue, 01 Jun 2010 08:17:01 -0700 (PDT) Received: from localhost.localdomain (letku109.adsl.netsonic.fi [194.29.195.109]) by mx.google.com with ESMTPS id 13sm3807811ewy.5.2010.06.01.08.17.00 (version=SSLv3 cipher=RC4-MD5); Tue, 01 Jun 2010 08:17:00 -0700 (PDT) Sender: =?UTF-8?Q?Timo_Ter=C3=A4s?= From: =?UTF-8?q?Timo=20Ter=C3=A4s?= To: Ilya Strelkin , alpine-devel@lists.alpinelinux.org Cc: =?UTF-8?q?Timo=20Ter=C3=A4s?= Subject: [alpine-devel] [PATCH] main/iproute2-qos: add htb burst and fix privileged class ceiling Date: Tue, 1 Jun 2010 18:16:54 +0300 Message-Id: <1275405414-26680-1-git-send-email-timo.teras@iki.fi> X-Mailer: git-send-email 1.7.0.4 X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: The HTB classifier uses a burst parameter to figure how much of packets can be queued when the class is lending from other classes. It should be set automatically by tc / kernel, but appears not be set, so set it explictly. This fixes htb class not getting full speed if difference of ceil and rate is large. This also changes Privileged class to get ceil of the total bandwidth instead of the previous hard limit of guaranteed rate. While, it is consider good practices for Privileged class to have hard ceil less than max. speed, it will cause problems links with asymmetric speeds (e.g. ADSL 24M/1M cannot gain full download speed if Privileged class is limited this heavily). It might be a good idea to later have the hard ceiling configurable, but for now it's better to ceil it to wire speed. --- main/iproute2-qos/APKBUILD | 2 +- main/iproute2-qos/qos.initd | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/main/iproute2-qos/APKBUILD b/main/iproute2-qos/APKBUILD index bb0b27a..2d3c3b8 100644 --- a/main/iproute2-qos/APKBUILD +++ b/main/iproute2-qos/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Ilya Strelkin # Maintainer: Ilya Strelkin pkgname=iproute2-qos -pkgver=0.3 +pkgver=0.4 pkgrel=0 pkgdesc="Scripts to set up quality of service with iproute2" url="http://git.alpinelinux.org/cgit/aports" diff --git a/main/iproute2-qos/qos.initd b/main/iproute2-qos/qos.initd index 9986a8c..0967735 100644 --- a/main/iproute2-qos/qos.initd +++ b/main/iproute2-qos/qos.initd @@ -225,11 +225,11 @@ set_filters() set_htb() { $ECHO tc qdisc add dev $DEV root handle 1 htb default 60 - $ECHO tc class add dev $DEV parent 1: classid 1:2 htb rate $DEV_RATE - $ECHO tc class add dev $DEV parent 1:2 classid 1:30 htb rate $WAN_SUB_RATE - $ECHO tc class add dev $DEV parent 1:30 classid 1:40 htb rate $INTERACTIVE_RATE prio 1 - $ECHO tc class add dev $DEV parent 1:30 classid 1:50 htb rate $PRIVILEGED_RATE ceil $WAN_SUB_RATE prio 3 - $ECHO tc class add dev $DEV parent 1:30 classid 1:60 htb rate $BESTEFFORT_RATE ceil $WAN_SUB_RATE prio 6 + $ECHO tc class add dev $DEV parent 1: classid 1:2 htb rate $DEV_RATE burst $(($DEV_RATE*5/4)) + $ECHO tc class add dev $DEV parent 1:2 classid 1:30 htb rate $WAN_SUB_RATE burst $(($WAN_SUB_RATE*5/4)) + $ECHO tc class add dev $DEV parent 1:30 classid 1:40 htb rate $INTERACTIVE_RATE ceil $WAN_SUB_RATE prio 1 + $ECHO tc class add dev $DEV parent 1:30 classid 1:50 htb rate $PRIVILEGED_RATE ceil $WAN_SUB_RATE prio 3 burst $(($WAN_SUB_RATE*5/4)) + $ECHO tc class add dev $DEV parent 1:30 classid 1:60 htb rate $BESTEFFORT_RATE ceil $WAN_SUB_RATE prio 6 burst $(($WAN_SUB_RATE*5/4)) if [ $OUT_OF_WAN_RATE -gt 0 ]; then $ECHO tc class add dev $DEV parent 1:2 classid 1:70 htb rate $OUT_OF_WAN_RATE prio 7 @@ -250,7 +250,7 @@ set_hfsc() $ECHO tc qdisc add dev $DEV root handle 1 hfsc default 60 $ECHO tc class add dev $DEV parent 1: classid 1:2 hfsc sc rate $DEV_RATE ul rate $DEV_RATE $ECHO tc class add dev $DEV parent 1:2 classid 1:30 hfsc sc rate $WAN_SUB_RATE ul rate $WAN_SUB_RATE - $ECHO tc class add dev $DEV parent 1:30 classid 1:40 hfsc sc umax $INTERACTIVE_HFSC_UMAX dmax $INTERACTIVE_HFSC_DMAX rate $INTERACTIVE_RATE ul rate $INTERACTIVE_RATE + $ECHO tc class add dev $DEV parent 1:30 classid 1:40 hfsc sc umax $INTERACTIVE_HFSC_UMAX dmax $INTERACTIVE_HFSC_DMAX rate $INTERACTIVE_RATE ul rate $WAN_SUB_RATE $ECHO tc class add dev $DEV parent 1:30 classid 1:50 hfsc sc umax $PRIVILEGED_HFSC_UMAX dmax $PRIVILEGED_HFSC_DMAX rate $PRIVILEGED_RATE ul rate $WAN_SUB_RATE $ECHO tc class add dev $DEV parent 1:30 classid 1:60 hfsc sc rate $BESTEFFORT_RATE ul rate $WAN_SUB_RATE @@ -272,7 +272,7 @@ set_prio() { PARENT_CLASSID=10 $ECHO tc qdisc add dev $DEV root handle 1 prio bands 2 priomap 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 # by default unclassified traffic goes to flowid 1:2 - $ECHO tc qdisc add dev $DEV parent 1:1 handle 40: tbf rate $INTERACTIVE_RATE burst $INTERACTIVE_PRIO_BURST latency $INTERACTIVE_PRIO_LATENCY + $ECHO tc qdisc add dev $DEV parent 1:1 handle 40: tbf rate $INTERACTIVE_RATE burst $WAN_SUB_RATE latency $INTERACTIVE_PRIO_LATENCY $ECHO tc qdisc add dev $DEV parent 1:2 handle $PARENT_CLASSID: htb default 60 $ECHO tc class add dev $DEV parent $PARENT_CLASSID: classid $PARENT_CLASSID:30 htb rate $WAN_SUB_RATE $ECHO tc class add dev $DEV parent $PARENT_CLASSID:30 classid $PARENT_CLASSID:50 htb rate $PRIVILEGED_RATE ceil $WAN_SUB_RATE prio 3 @@ -309,7 +309,7 @@ set_police() # burst = rate / 17 (taken basing on experemental results) POLICE_BURST_SCALE=17 - WAN_POLICE_BURST=$((WAN_RATE / POLICE_BURST_SCALE)) + WAN_POLICE_BURST=$((WAN_RATE / POLICE_BURST_SCALE)) WAN_POLICE_FLOWID=1 @@ -329,9 +329,9 @@ set_cpolice() # burst = rate / 17 (taken basing on experemental results) POLICE_BURST_SCALE=17 - INTERACTIVE_POLICE_BURST=$((INTERACTIVE_RATE / POLICE_BURST_SCALE)) - PRIVILEGED_POLICE_BURST=$((PRIVILEGED_RATE / POLICE_BURST_SCALE)) - BESTEFFORT_POLICE_BURST=$((BESTEFFORT_RATE / POLICE_BURST_SCALE)) + INTERACTIVE_POLICE_BURST=$((INTERACTIVE_RATE / POLICE_BURST_SCALE)) + PRIVILEGED_POLICE_BURST=$((PRIVILEGED_RATE / POLICE_BURST_SCALE)) + BESTEFFORT_POLICE_BURST=$((BESTEFFORT_RATE / POLICE_BURST_SCALE)) CLASS_TYPES="INTERACTIVE PRIVILEGED" INTERACTIVE_POLICE_FLOWID=1 -- 1.7.0.4 --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---