htb linklayer, stab or not, nested or not

Linux Advanced Routing and Traffic Control

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

 



Hi all,

I see that I can define a linklayer in tc as either:

tc qdisc add dev eth2 root handle 1: stab linklayer ethernet mtu 1500 htb
tc class add dev eth2 parent 1: classid 1:1 htb rate 100Mbit

or

tc qdisc add dev eth2 root handle 1: htb
tc class add dev eth2 parent 1: classid 1:1 htb rate 100Mbit linklay
ethernet mtu 1500

Questions:

1. What is the difference between the two?
2. Do I have to define linklay to their subsclasses too? In both cases?
3. When I run the second set (linklay to class), 'tc -s -d class show dev
eth2' does not show any linklayer. Is it really there?
4. What if I need to have nested htb classes with different linklayers?
Example:

I first define an Ethernet linklayer to eth2 (same as the first set above):

tc qdisc add dev eth2 root handle 1: stab linklayer ethernet mtu 1500 htb
tc class add dev eth2 parent 1: classid 1:1 htb rate 100Mbit

Then, I define a class that matches traffic towards my ADSL router, which
has a different linklayer:

tc class add dev eth2 parent 1:1 classid 1:12 htb rate 600kbit ceil 600kbit
tc qdisc add dev eth2 stab linklayer adsl overhead 26 mtu 1492 parent 1:12
handle 12: htb
tc class add dev eth2 parent 12: classid 12:1 htb rate 600kbit ceil 600kbit

This works. It is accepted by tc. It does shape traffic to 600kbit and it
does respect the rate of 12:1 subsclasses.
However, for all subsclasses of 12:1, it does not respect their priority.
It ballances traffic between them, as if all subsclasses of 12:1 have the
same prio. Why?

Sometimes, when I run the above commands for the nested class with a
different linklayer, kernel prints:

htb: htb qdisc 12: is non-work-conserving?

Is this an error?
5. Is there an alternate/better way to define nested classes with different
linklayers?

Regards,

Costa Tsaousis

PS: I am developing a tool to handle traffic shapping:
https://github.com/ktsaou/firehol/wiki/FireQOS
--
To unsubscribe from this list: send the line "unsubscribe lartc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




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