Hi
I dont think my script is quite right but I just cant see why. If you could have
a look at it and let me know if anything is wrong or suggest any better ways of
making this happen.
I have a 256kbit link, I want to give half of that (approx 124kbit) to a web
site we run and let it burst to the full link if the bandwidth is not used
(classid 1:10).
The other half of the link is divided into 4 parts that each have 31kbit. I want
these classes to be able to burst to half the link (124kbit) if the bandwidth is
not used (classid 1:20 -> 1:50).
What is happening is that no traffic ever gets over 124kbit/sec even traffic
that should be in 1:10. My script is below.
Thanks in advance
Jeremy
# Root
tc qdisc add dev eth0 root handle 1: htb default 50
# Parent to allow sharing
tc class add dev eth0 parent 1: classid 1:1 htb rate 248kbit burst 15k
# Main classes
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 124kbit ceil
248kbit burst 15k
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 31kbit ceil
124kbit burst 15k
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 31kbit ceil
124kbit burst 15k
tc class add dev eth0 parent 1:1 classid 1:40 htb rate 31kbit ceil
124kbit burst 15k
tc class add dev eth0 parent 1:1 classid 1:50 htb rate 31kbit ceil
124kbit burst 15k
# Add SFQ Classes under
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev eth0 parent 1:40 handle 40: sfq perturb 10
tc qdisc add dev eth0 parent 1:50 handle 50: sfq perturb 10
# Add filters
U32="tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32"
$U32 match ip sport 80 0xffff flowid 1:10
$U32 match ip sport 25 0xffff flowid 1:20
$U32 match ip sport 1723 0xffff flowid 1:30
$U32 match ip sport 53 0xffff flowid 1:30
$U32 match ip dport 80 0xffff flowid 1:40
On Wednesday 19 June 2002 04:40, Jeremy Nelson wrote:> Hi > > I dont think my script is quite right but I just cant see why. If you could > have a look at it and let me know if anything is wrong or suggest any > better ways of making this happen. I have a 256kbit link, I want to give > half of that (approx 124kbit) to a web site we run and let it burst to the > full link if the bandwidth is not used (classid 1:10). The other half of > the link is divided into 4 parts that each have 31kbit. I want these > classes to be able to burst to half the link (124kbit) if the bandwidth is > not used (classid 1:20 -> 1:50). > > What is happening is that no traffic ever gets over 124kbit/sec even > traffic that should be in 1:10. My script is below.The scripts looks ok to me. Are you sure the filters are working ? You can check with tc -s -d class show dev eth0 and hopely the counters of bytes/packets are incrementing. And what if you make 1:10 the default class and remove all the filters so packets must end in 1:10? Stef -- stef.coene@docum.org "Using Linux as bandwidth manager" http://www.docum.org/ #lartc @ irc.openprojects.net