aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2010-06-01 18:16:54 +0300
committerNatanael Copa <ncopa@alpinelinux.org>2010-06-07 12:01:05 +0000
commit53299ce146937482c8263aff0dc20357f592e8a2 (patch)
tree6e0df002aa36dc4a82249b7a9e7a306406a7337b
parent40427bebdbd5fb4b4506fdbb971a1164a1bc85b6 (diff)
downloadalpine_aports-53299ce146937482c8263aff0dc20357f592e8a2.tar.bz2
alpine_aports-53299ce146937482c8263aff0dc20357f592e8a2.tar.xz
alpine_aports-53299ce146937482c8263aff0dc20357f592e8a2.zip
main/iproute2-qos: add htb burst and fix privileged class ceiling
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. (cherry picked from commit 537214e7bfd9ce56e8f0c418ac0cd628365387b8)
-rw-r--r--main/iproute2-qos/APKBUILD2
-rw-r--r--main/iproute2-qos/qos.initd22
2 files changed, 12 insertions, 12 deletions
diff --git a/main/iproute2-qos/APKBUILD b/main/iproute2-qos/APKBUILD
index bb0b27a6f3..2d3c3b8f6f 100644
--- a/main/iproute2-qos/APKBUILD
+++ b/main/iproute2-qos/APKBUILD
@@ -1,7 +1,7 @@
1# Contributor: Ilya Strelkin <iilluzion@gmail.com> 1# Contributor: Ilya Strelkin <iilluzion@gmail.com>
2# Maintainer: Ilya Strelkin <iilluzion@gmail.com> 2# Maintainer: Ilya Strelkin <iilluzion@gmail.com>
3pkgname=iproute2-qos 3pkgname=iproute2-qos
4pkgver=0.3 4pkgver=0.4
5pkgrel=0 5pkgrel=0
6pkgdesc="Scripts to set up quality of service with iproute2" 6pkgdesc="Scripts to set up quality of service with iproute2"
7url="http://git.alpinelinux.org/cgit/aports" 7url="http://git.alpinelinux.org/cgit/aports"
diff --git a/main/iproute2-qos/qos.initd b/main/iproute2-qos/qos.initd
index 9986a8cce4..09677353a9 100644
--- a/main/iproute2-qos/qos.initd
+++ b/main/iproute2-qos/qos.initd
@@ -225,11 +225,11 @@ set_filters()
225set_htb() 225set_htb()
226{ 226{
227 $ECHO tc qdisc add dev $DEV root handle 1 htb default 60 227 $ECHO tc qdisc add dev $DEV root handle 1 htb default 60
228 $ECHO tc class add dev $DEV parent 1: classid 1:2 htb rate $DEV_RATE 228 $ECHO tc class add dev $DEV parent 1: classid 1:2 htb rate $DEV_RATE burst $(($DEV_RATE*5/4))
229 $ECHO tc class add dev $DEV parent 1:2 classid 1:30 htb rate $WAN_SUB_RATE 229 $ECHO tc class add dev $DEV parent 1:2 classid 1:30 htb rate $WAN_SUB_RATE burst $(($WAN_SUB_RATE*5/4))
230 $ECHO tc class add dev $DEV parent 1:30 classid 1:40 htb rate $INTERACTIVE_RATE prio 1 230 $ECHO tc class add dev $DEV parent 1:30 classid 1:40 htb rate $INTERACTIVE_RATE ceil $WAN_SUB_RATE prio 1
231 $ECHO tc class add dev $DEV parent 1:30 classid 1:50 htb rate $PRIVILEGED_RATE ceil $WAN_SUB_RATE prio 3 231 $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))
232 $ECHO tc class add dev $DEV parent 1:30 classid 1:60 htb rate $BESTEFFORT_RATE ceil $WAN_SUB_RATE prio 6 232 $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))
233 233
234 if [ $OUT_OF_WAN_RATE -gt 0 ]; then 234 if [ $OUT_OF_WAN_RATE -gt 0 ]; then
235 $ECHO tc class add dev $DEV parent 1:2 classid 1:70 htb rate $OUT_OF_WAN_RATE prio 7 235 $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()
250 $ECHO tc qdisc add dev $DEV root handle 1 hfsc default 60 250 $ECHO tc qdisc add dev $DEV root handle 1 hfsc default 60
251 $ECHO tc class add dev $DEV parent 1: classid 1:2 hfsc sc rate $DEV_RATE ul rate $DEV_RATE 251 $ECHO tc class add dev $DEV parent 1: classid 1:2 hfsc sc rate $DEV_RATE ul rate $DEV_RATE
252 $ECHO tc class add dev $DEV parent 1:2 classid 1:30 hfsc sc rate $WAN_SUB_RATE ul rate $WAN_SUB_RATE 252 $ECHO tc class add dev $DEV parent 1:2 classid 1:30 hfsc sc rate $WAN_SUB_RATE ul rate $WAN_SUB_RATE
253 $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 253 $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
254 $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 254 $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
255 $ECHO tc class add dev $DEV parent 1:30 classid 1:60 hfsc sc rate $BESTEFFORT_RATE ul rate $WAN_SUB_RATE 255 $ECHO tc class add dev $DEV parent 1:30 classid 1:60 hfsc sc rate $BESTEFFORT_RATE ul rate $WAN_SUB_RATE
256 256
@@ -272,7 +272,7 @@ set_prio()
272{ 272{
273 PARENT_CLASSID=10 273 PARENT_CLASSID=10
274 $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 274 $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
275 $ECHO tc qdisc add dev $DEV parent 1:1 handle 40: tbf rate $INTERACTIVE_RATE burst $INTERACTIVE_PRIO_BURST latency $INTERACTIVE_PRIO_LATENCY 275 $ECHO tc qdisc add dev $DEV parent 1:1 handle 40: tbf rate $INTERACTIVE_RATE burst $WAN_SUB_RATE latency $INTERACTIVE_PRIO_LATENCY
276 $ECHO tc qdisc add dev $DEV parent 1:2 handle $PARENT_CLASSID: htb default 60 276 $ECHO tc qdisc add dev $DEV parent 1:2 handle $PARENT_CLASSID: htb default 60
277 $ECHO tc class add dev $DEV parent $PARENT_CLASSID: classid $PARENT_CLASSID:30 htb rate $WAN_SUB_RATE 277 $ECHO tc class add dev $DEV parent $PARENT_CLASSID: classid $PARENT_CLASSID:30 htb rate $WAN_SUB_RATE
278 $ECHO tc class add dev $DEV parent $PARENT_CLASSID:30 classid $PARENT_CLASSID:50 htb rate $PRIVILEGED_RATE ceil $WAN_SUB_RATE prio 3 278 $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()
309# burst = rate / 17 (taken basing on experemental results) 309# burst = rate / 17 (taken basing on experemental results)
310 310
311 POLICE_BURST_SCALE=17 311 POLICE_BURST_SCALE=17
312 WAN_POLICE_BURST=$((WAN_RATE / POLICE_BURST_SCALE)) 312 WAN_POLICE_BURST=$((WAN_RATE / POLICE_BURST_SCALE))
313 313
314 WAN_POLICE_FLOWID=1 314 WAN_POLICE_FLOWID=1
315 315
@@ -329,9 +329,9 @@ set_cpolice()
329 # burst = rate / 17 (taken basing on experemental results) 329 # burst = rate / 17 (taken basing on experemental results)
330 330
331 POLICE_BURST_SCALE=17 331 POLICE_BURST_SCALE=17
332 INTERACTIVE_POLICE_BURST=$((INTERACTIVE_RATE / POLICE_BURST_SCALE)) 332 INTERACTIVE_POLICE_BURST=$((INTERACTIVE_RATE / POLICE_BURST_SCALE))
333 PRIVILEGED_POLICE_BURST=$((PRIVILEGED_RATE / POLICE_BURST_SCALE)) 333 PRIVILEGED_POLICE_BURST=$((PRIVILEGED_RATE / POLICE_BURST_SCALE))
334 BESTEFFORT_POLICE_BURST=$((BESTEFFORT_RATE / POLICE_BURST_SCALE)) 334 BESTEFFORT_POLICE_BURST=$((BESTEFFORT_RATE / POLICE_BURST_SCALE))
335 335
336 CLASS_TYPES="INTERACTIVE PRIVILEGED" 336 CLASS_TYPES="INTERACTIVE PRIVILEGED"
337 INTERACTIVE_POLICE_FLOWID=1 337 INTERACTIVE_POLICE_FLOWID=1