LARTC
[Top] [All Lists]

[LARTC] Re: tc questions

To: lartc@mailman.ds9a.nl
Subject: [LARTC] Re: tc questions
From: Christian Benvenuti <christian.benvenuti@libero.it>
Date: Wed, 04 Apr 2007 15:13:18 +0200
Delivered-to: sp-com-lists@consult.net
Delivered-to: lartc-list@securepoint.com
Delivered-to: lartc@outpost.ds9a.nl
List-archive: <http://mailman.ds9a.nl/pipermail/lartc>
List-help: <mailto:lartc-request@mailman.ds9a.nl?subject=help>
List-id: "Mailinglist of the Linux Advanced Routing &amp; Traffic Control project" <lartc.mailman.ds9a.nl>
List-post: <mailto:lartc@mailman.ds9a.nl>
List-subscribe: <http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc>, <mailto:lartc-request@mailman.ds9a.nl?subject=subscribe>
List-unsubscribe: <http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc>, <mailto:lartc-request@mailman.ds9a.nl?subject=unsubscribe>
Sender: lartc-bounces@mailman.ds9a.nl
Hi Alejandro

>Hi to all of you!!!
>
>I am a Computer Science student trying to do the pre-grade thesis. I am
trying 
>to develop a free software tool to help administrators to control the 
>traffic. Right now this tool is based on tc and iptables.
>I am having some problems trying to understand tc and tc examples:
>- Why in almost every list of tc rules based on htb class, there is
>  a "tc qdisc dev ... root ... htb default ..." as a root node?
>  Is it mandatory to work with htb class?

It is not mandatory to attach a HTB qdisc to the root. You can attach
it to any classfull qdisc's cass.

You can only create HTB classes under a HTB qdisc, and you can only
create CBQ classes under a CBQ class. However you can attach any
qdisc to a given class.
What is exactly that you find strange?

>- I understood that every class node has its own qdisc attached
>  (fifo by default, right?).

Correct.
To be exact, most qdiscs use Packet FIFO (pfifo) by default, but that's
not a rule (there are exceptions).

>If that is the case, why when I do "tc qdisc show ..." it 
>JUST shows me those qdisc I explicitly attached to classes without any
child 
>class?

The default pFIFO qdisc that get attached to the classes are not
shown by the above command.

>- What should I expect if I run something like this?
>
>tc qdisc add dev eth0 root handle 1: htb default 10
>tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
>tc class add dev eth0 parent 1:1 classid 1:10 htb rate 90mbit
>tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1kbit
>tc class add dev eth0 parent 1:20 classid 1:21 htb rate 10mbit
>
>I guessed the traffic redirected to 1:21 should have 1kbit of rate at
most 
>(because of its parent 1:20), but when I ran this, I got a higher rate 
>(because of the 10mbit rate, I guess). Why? Shouldn't parent classes
restrict 
>children's rate?

I would say that that is a misconfiguration.
Neither the tc command nor the kernel gives you any warning.
You could implement it as part of your project ... :)

You are right. Class 1:20 does not limit the class 1:21's rate to 1kbit.
This is due to the way the kernel schedules the HTB classes.
Note that since you did not use the "ceil" config option, class 1:21
gets by default "ceil" = "rate" = 10mbit, and therefore it can not
borrow from its parent 1:20.
There would be nothing to borrow anyway, since 1:20 is limited to
1kbit (rate=cel=1kbit).

Regards
/Christian
[http://benve.info]


_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

<Prev in Thread] Current Thread [Next in Thread>