How is it with cbq rate inheritance? I kind of expected, that if I have a cbq class with 128 kbps rate, which has three sub-classes with 128 kbps rate each, those three sub-classes will share those 128 kbps from their parent class together. But it looks like they are getting 128 kbps or a bit less each. Is this the right behavior, or do I have something done wrong? Also, how exactly does split and defmap work? Do I need it for this? My setup is like this: 10: root 10:1 cbq rate 128 Kbit 10:2 10:3 10:4 cbq rate 128 Kbit cbq rate 128 Kbit cbq rate 128 Kbit pfifo sfq sfq Then I use u32 filter to sort traffic to these three classes (each of the cbq classes has a different prio). tc qdisc add dev eth0 root handle 10: \ cbq bandwidth 10000Kbit avpkt 1000 cell 8 tc class add dev eth0 parent 10:0 classid 10:1 \ cbq bandwidth 128Kbit rate 128Kbit allot 1514 \ cell 8 weight 12Kbit prio 5 maxburst 2 \ avpkt 1000 bounded tc class add dev eth0 parent 10:1 classid 10:2 cbq \ bandwidth 10000Kbit rate 128Kbit allot 1514 weight 12Kbit prio 1 \ avpkt 1000 maxburst 2 split 10:0 defmap 80 bounded tc qdisc add dev eth0 parent 10:2 pfifo tc class add dev eth0 parent 10:1 classid 10:3 cbq \ bandwidth 10000Kbit rate 128Kbit allot 1514 weight 12Kbit prio 3 \ avpkt 1000 maxburst 2 split 10:0 defmap c0 bounded tc qdisc add dev eth0 parent 10:3 sfq perturb 15 tc class add dev eth0 parent 10:1 classid 10:4 cbq \ bandwidth 10000Kbit rate 128Kbit allot 1514 weight 12Kbit prio 4 \ avpkt 1000 maxburst 2 split 10:0 defmap 3f bounded tc qdisc add dev eth0 parent 10:4 sfq perturb 15 tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip sport 22 0xffff \ match ip tos 0x8 0xff \ match ip src 0.0.0.0/0 \ flowid 10:4 tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip dport 22 0xffff \ match ip tos 0x8 0xff \ match ip src 0.0.0.0/0 \ flowid 10:4 tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip tos 0x8 0xff \ match ip src 0.0.0.0/0 \ flowid 10:2 tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip tos 0x10 0xff \ match ip src 0.0.0.0/0 \ flowid 10:2 for i in 21 23 53 33434 do tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip dport $i 0xffff \ match ip src 0.0.0.0/0 \ flowid 10:2 done for i in 21 23 53 33434 do tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip sport $i 0xffff \ match ip src 0.0.0.0/0 \ flowid 10:2 done for i in 80 3128 do tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip sport $i 0xffff \ match ip src 0.0.0.0/0 \ flowid 10:3 done tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip protocol 1 0xff \ match ip src 0.0.0.0/0 \ flowid 10:2 \ tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \ match ip src 0.0.0.0/0 flowid 10:4