Re: HTB & Bdw Guarantee

Dmitry Golubev
2004-07-10T09:14:15Z

Shouldn''t you assign priorities to your classes? Also make RED a leaf
queue
for more more smooth TCP experience

Dmitry

On Saturday 10 July 2004 01:48, toto toto <freeswan9@yahoo.fr>
wrote:
> Hello,
>
> I have problems setting up HTB.
> This is my setup :
>
> NET 1024/256 ADSL
>
> eth1
> Linux Firewall
> eth0
>
> LAN 10.a.a.a
>
> I want to GUARANTEE for an IP (10.x.y.z) a 800kbit
> bandwidth for HTTP download.
> But When 10.x.y.z does no HTTP download, other trafic
> must get the whole bandwidth, of course.
>
> The script I use (see below) is quite the same as
> presented at (the greeeeat page) :
> http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm,
> the only difference is that I use only 2 classes (HTTP
> trafic vs other)
>
> BUT ( :-(( )
> When I
> root@test# wget ftp.fr.debian.org/debian/ls-lR
> (...)
> 21% [==========>  ] 4,984,704    106.39K/s
> root@test#
>
> It goes at ~110 Ko, as expected when no other trafic
> is generated.
> But if I
> root@test# wget ftp://ftp.fr.debian.org/debian/ls-lR
>
> after the beginning of the HTTP download, the latter
> goes dooown, and if I run a second wget ftp://...,
> the HTTP download goes UNDER (really under) the 800
> kbits...??!!
> It seems like there''s no difference whether the
> shaping is done or not.
>
> Trafic seems to be classified (tc -s -d class show dev
> eth0 / eth1), but...
>
> Actually my goal is more complicated than HTTP
> downloads (I need to guarantee bandwidth for
> H323 -> Netmeeting & co, so both down&up-loads), but
> I''m just testing for now, and if I can''t shape such a
> simple trafic as HTTP download...
>
> Could anyone tell me what I did wrong, or didn''t
> understand...
> Is this only because one can''t shape incoming trafic ?
>
> Could Ingress solve my pb ? I don''t think so, as
> Ingress seems to limit the WHOLE bandwidth...
> Is it a "prio" question ?
>
> Thanks for your help
>
> PSes :
> - has anyone experienced H323 trafic shaping ?? if so,
> scripts are welcome !!!
> - If CBQ can do better, then I''ll turn to CBQ, but
> it''s just like chinese for me...
> HTB is more simple
>
>
>
> Here''s the script :
> #!/bin/bash
>
> OUT=eth1
> IN=eth0
>
> IP=10.x.y.z
>
> BDW_IN=1024kbit
> BDW_OUT=256kbit
>
> BDW_WEB_IN=800kbit
> BDW_OTHER_IN=224kbit
> BDW_WEB_OUT=176kbit
> BDW_OTHER_OUT=80kbit
>
> #-----------------------------------------------------------#
>
> function start_out () {
>
> tc qdisc add dev $OUT root handle 1: htb default 11
>
> tc class add dev $OUT parent 1: classid 1:1 htb rate
> $BDW_OUT ceil $BDW_OUT
> tc class add dev $OUT parent 1:1 classid 1:10 htb rate
> $BDW_WEB_OUT ceil $BDW_OUT
> tc class add dev $OUT parent 1:1 classid 1:11 htb rate
> $BDW_OTHER_OUT ceil $BDW_OUT
>
> tc qdisc add dev $OUT parent 1:10 handle 20: pfifo
> limit 5
> tc qdisc add dev $OUT parent 1:11 handle 40: sfq
> perturb 10
>
> tc filter add dev $OUT protocol ip parent 1:0 prio 1
> u32 \
>         match ip src $IP match ip dport 80 0xffff
> flowid 1:10
> }
>
> function start_in () {
>
> tc qdisc add dev $IN root handle 1: htb default 11
>
> tc class add dev $IN parent 1: classid 1:1 htb rate
> $BDW_IN ceil $BDW_IN
> tc class add dev $IN parent 1:1 classid 1:10 htb rate
> $BDW_WEB_IN ceil $BDW_IN
> tc class add dev $IN parent 1:1 classid 1:11 htb rate
> $BDW_OTHER_IN ceil $BDW_IN
>
> tc qdisc add dev $IN parent 1:10 handle 20: pfifo
> limit 5
> tc qdisc add dev $IN parent 1:11 handle 40: sfq
> perturb 10
>
> tc filter add dev $IN protocol ip parent 1:0 prio 1
> u32 \
>         match ip dst $IP match ip sport 80 0xffff
> flowid 1:10
> }
>
> #-----------------------------------------------------------#
>
> function stop_out () {
>
> tc filter del dev $OUT protocol ip parent 1:0 prio 1
> u32
>
> tc class del dev $OUT parent 1:1 classid 1:11
> tc class del dev $OUT parent 1:1 classid 1:10
>
> tc class del dev $OUT parent 1: classid 1:1
> tc qdisc del dev $OUT root handle 1: htb
> }
>
> function stop_in() {
>
> tc filter del dev $IN protocol ip parent 1:0 prio 1
> u32
>
> tc class del dev $IN parent 1:1 classid 1:11
> tc class del dev $IN parent 1:1 classid 1:10
>
> tc class del dev $IN parent 1: classid 1:1
> tc qdisc del dev $IN root handle 1: htb
> }
>
> case $1 in
> start)
>         echo
>         start_out
>         start_in
>         echo
>         ;;
> stop)
>         echo
>         stop_out
>         stop_in
>         echo
>         ;;
> *)
>         echo "Usage : $0 {start|stop|restart}"
>         ;;
> esac
>
>
>
>
>
>
>
>
> Créez gratuitement votre Yahoo! Mail avec 100 Mo de stockage !
> Créez votre Yahoo! Mail sur http://fr.benefits.yahoo.com/
>
> Dialoguez en direct avec vos amis grâce à Yahoo! Messenger !Téléchargez
> Yahoo! Messenger sur http://fr.messenger.yahoo.com
> _______________________________________________
> LARTC mailing list / LARTC@mailman.ds9a.nl
> http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/