[LARTC] imq+htb does no traffic controll

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello list!
What´s the Problem:
I do imq+htb traffic controll but it does not regulate anything.

What i have:
-lfs-system with 2.2.17 vanilla-kernel with imq and htb patch
-ppp0 adsl 768/128kbps connection via pppoe (dynamic IP)
-eth0 10Mbit connection to adsl-modem (no ip)
-eth1 100Mbit connection to some high prio systems and two systems 
from the BOfH (192.168.0.0/24)
-eth2 10Mbit connection to some low prio systems (192.168.127.0/24)
-wlan0 1-11Mbit with wlan-ng/prism2.5 ( 192.168.3.0/24)
-some other devices like ipppX, pppX which doesn't matter

What i want:
If the BOfH, Bastard Operator from Hell, myself, is on his Computer 
he should get 700kbit download and 100kbit Upload. 
All Traffic other than Internet should not be touched.
The other Systems are splitted in pay and not pay groups. Each group 
gets 32kbit but the paying groups should get the rest of the BOfH-
Traffic. If there is some unused bandwith, the not pay group can 
use it.

What i do:
#build a root-queue on the imq
tc qdisc add dev imq root handle 1: htb default 1

#add a "dont touch this" class
tc class add dev imq parent 1: classid 1:1 htb prio 10 rate 1000mbit 
burst 128k
    tc qdisc add dev imq parent 1:1 handle 11: sfq perturb 60 quantum 
1500b

#upload classes deletet...

#build the download-class
tc class add dev imq parent 1: classid 1:3 htb prio 10 rate 768kbit 
burst 64k

#build the "not pay" class
tc class add dev imq parent 1:3 classid 1:31 htb prio 3 \
        rate 32kbit burst 64k ceil 768kbit
    tc qdisc add dev imq parent 1:31 handle 31: sfq perturb 60 quantum 
1500b

#build the "BOfH" class
tc class add dev imq parent 1:3 classid 1:32 htb prio 1 \
        rate 704kbit burst 64k ceil 768kbit
    tc qdisc add dev imq parent 1:32 handle 32: sfq perturb 60 quantum 
1500b

# build the "pay" class
tc class add dev imq parent 1:3 classid 1:33 htb prio 2 \
        rate 32kbit burst 64k ceil 768kbit
    tc qdisc add dev imq parent 1:33 handle 33: sfq perturb 60 quantum 
1500b

# filter intrnal traffic to the "dont touch" class
tc filter add dev imq \
    protocol ip parent 1: prio 10 u32 \
    match ip src 192.168.0.0/16 \
    match ip dst 192.168.0.0/16 \
    flowid 1:1

# filter the "BOfH" traffic to the "BOfH" class
tc filter add dev imq \
    protocol ip parent 1: prio 10 u32 \
    match ip dst 192.168.0.3/32 \
    flowid 1:32
tc filter add dev imq \
    protocol ip parent 1: prio 10 u32 \
    match ip dst 192.168.3.1/32 \
    flowid 1:32
tc filter add dev imq \
    protocol ip parent 1: prio 10 u32 \
    match ip dst 192.168.0.200/32 \
    flowid 1:32

#filter the "pay" group to the "pay" class
tc filter add dev imq \
    protocol ip parent 1: prio 10 u32 \
    match ip dst 192.168.0.0/24 \
    flowid 1:33

#filter the "not pay" group to the "not pay" class
tc filter add dev imq \
    protocol ip parent 1: prio 10 u32 \
    match ip dst 192.168.127.0/24 \
    flowid 1:31
# todo upload,ack,tos

What i´ve checked:
Since yet i only take a look between BOfH and Pay-Group. 
I use 
#!/bin/sh
num="1:3[1234567890]"
while true;do
        clear;
        echo -n " ";
        tc -s -d class show dev imq | \
                grep -A 4 "class ... $num";
        sleep 1;
done
to take a look to the classes 1:31 1:32 and 1:33.
I could see that the filters does there job and every connection 
is going to the right class.
I´ve started a download of a kernel image on a pay-system and it 
has ca 80kb/s. Than i´ve stopped that download and started the same 
on a BOfH-System, it has 80kb/s, all ok!
Than a i´ve started the download on the pay-system again and after 
10 seconds both systems got 40kb/s. Thats wrong!

My Questions:
-how to build a "dont touch" class?
-what´s wrong on the thinks i´ve did?
-is the pppoe-ethernet critical to pass thru the imq
-how many prios are allowed? First i had prio 10, 20 and 30 on the 
classes and all are set to 3.

Thanks for help!
Mario Wolff

PS: is it possible, that the hole QoS-Part of my 2.2.17 Kernel is 
bugy? On an other kernel-tree i applyed the ds-patch to get ingress 
qdisc support. It commpiles fine and the module loads with no errors,
but a "tc qdisc add dev ppp0 ingress ..." gives no such device error! 










[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux