Hello...
Im trying to setup HTB to allow me to shape traffic from two upstreams
that meets on single lan0 interface. I prefer to use HTB qdisc
within HTB root qdisc for cleaner rules design.
Seems that it doesnt work at all. tc -s class show doesnt
show any traffic on other classes attached to HTB qdisc.
Linux 2.6.20.7
iproute-2.6.20-070313
Weird thing is that tc -s class show that 1: and 2: are both root
class, where it is not true since they both have parent qdisc 1: or 2:
and those qdisc arent root, they have parent class 10:11 or 10:12 (what
tc -s qdisc show says).
Is HTB qdisc within HTB qdisc is valid on newer kernels? If yes, what is
wrong in this setup?
This setup works fine when I use one HTB qdisc and many classes within
classes.
How it looks like:
--
### lan0 ###
tcq="tc qdisc add dev lan0"
tcc="tc class add dev lan0"
$tcq root handle 10: htb
$tcc parent 10: classid 10:1 htb rate 10Kbit
# LAN
$tcc parent 10:1 classid 10:10 htb rate 8Kbit ceil 10Kbit prio 7
$tcq parent 10:10 sfq limit 50 perturb 1
# from wan0
$tcc parent 10:1 classid 10:11 htb rate 2048Kbit prio 3
# from wan1
$tcc parent 10:1 classid 10:12 htb rate 1Kbit prio 3
### lan0 - from wan0 ###
tcq="tc qdisc add dev lan0"
tcc="tc class add dev lan0"
$tcq parent 10:11 handle 1: htb
$tcc parent 1: classid 1:1 htb rate 2048Kbit
# SYN/minimal payload
$tcc parent 1:1 classid 1:10 htb rate 128Kbit ceil 256Kbit prio 0
$tcq parent 1:10 pfifo limit 50
# DMZ
$tcc parent 1:1 classid 1:14 htb rate 256Kbit ceil 1024Kbit prio 4
# telnet/SSH/IRC
$tcc parent 1:14 classid 1:41 htb rate 64Kbit ceil 512Kbit prio 2
$tcq parent 1:41 pfifo limit 30
# UDP
$tcc parent 1:14 classid 1:42 htb rate 64Kbit ceil 512Kbit prio 3
$tcq parent 1:42 pfifo limit 30
# generic NORMAL
$tcc parent 1:14 classid 1:43 htb rate 64Kbit ceil 1024Kbit prio 5
$tcq parent 1:43 sfq limit 50 perturb 1
# generic BULK
$tcc parent 1:14 classid 1:44 htb rate 64Kbit ceil 512Kbit prio 7
$tcq parent 1:44 sfq limit 50 perturb 1
### lan0 - from wan1 ###
tcq="tc qdisc add dev lan0"
tcc="tc class add dev lan0"
$tcq parent 10:12 handle 2: htb
$tcc parent 2: classid 2:1 htb rate 1Kbit
# SYN/minimal payload
$tcc parent 2:1 classid 2:10 htb rate 200Kbit ceil 500Kbit prio 0
$tcq parent 2:10 pfifo limit 50
# gw traffic
$tcc parent 2:1 classid 2:11 htb rate 200Kbit ceil 500Kbit prio 2
$tcq parent 2:11 pfifo limit 20
# DMZ
$tcc parent 2:1 classid 2:13 htb rate 3000Kbit ceil 5000Kbit prio 4
# telnet/SSH/IRC
$tcc parent 2:13 classid 2:31 htb rate 300Kbit ceil 500Kbit prio 2
$tcq parent 2:31 pfifo limit 30
# UDP
$tcc parent 2:13 classid 2:32 htb rate 700Kbit ceil 1000Kbit prio 3
$tcq parent 2:32 pfifo limit 30
# generic NORMAL
$tcc parent 2:13 classid 2:33 htb rate 2000Kbit ceil 5000Kbit prio 5
$tcq parent 2:33 sfq limit 50 perturb 1
# generic BULK
$tcc parent 2:13 classid 2:34 htb rate 1000Kbit ceil 2000Kbit prio 7
$tcq parent 2:34 sfq limit 50 perturb 1
--
# tc -s class show dev lan0
class htb 10:1 root rate 10Kbit ceil 10Kbit burst 126599b cburst
126599b
Sent 68351264 bytes 527234 pkt (dropped 0, overlimits 0 requeues 0)
rate 464bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 1924
tokens: 10118 ctokens: 10118
class htb 10:10 parent 10:1 leaf 825b: prio 7 rate 8Kbit ceil
10Kbit burst 101599b cburst 126599b
Sent 68348547 bytes 527215 pkt (dropped 0, overlimits 0 requeues 0)
rate 576bit 0pps backlog 0b 0p requeues 0
lended: 527215 borrowed: 0 giants: 1924
tokens: 10147 ctokens: 10118
class htb 10:11 parent 10:1 leaf 1: prio 3 rate 2048Kbit ceil 2048Kbit
burst 4159b cburst 4159b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 16249 ctokens: 16249
class htb 10:12 parent 10:1 leaf 2: prio 3 rate 1Kbit ceil 1Kbit
burst 1
4099b cburst 14099b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 11280 ctokens: 11280
class htb 1:1 root rate 2048Kbit ceil 2048Kbit burst 4159b cburst 4159b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 16249 ctokens: 16249
class htb 1:14 parent 1:1 rate 256000bit ceil 1024Kbit burst 1919b cburst
2879b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 6 ctokens: 22500
class htb 2:1 root rate 1Kbit ceil 1Kbit burst 14099b cburst
14099b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 11280 ctokens: 11280
c