I have the following question. Is there a way to shape fairly trought one big channel two others, what I have in mind. users <-------- [eth2]<======[eth0]<------ Internet (1Mbit/s) |====[eth1]<------ Peering (1Mbit/s) Now the problem, as u see there is two internet downstrams with compound speed of 2Mbit/s, the poblem is that on the eth2-egrees there should be only one class(channel), sum of the others. Say for example all users have 100kb/s (so that we can calculate easly). Now I want to make a compound channels so that when internet-channels are free users can get unused speed (ceil), (on the other hand rate calculation get very complicated if imposible 'cause it may exceed a wrapper-channel, so that some mechanism has to be thought to do this). Here is the pseudo code : dev eth2 { htb(rate 2Mbit/s) { class(rate 100kbps, ceil 150kbps); class(rate 100kbps, ceil 150kbps); class(rate 100kbps, ceil 150kbps); ..... class(rate 100kbps, ceil 150kbps); } } oops to metion that one of channels is national peering and the other is internet. So as u see the compound speed can easly exceed one of the channels w/o ever touching the second channel.. I mean that if for example all users start to dload only from the peering channel, they will exceed easly the 1Mbit/s capacity, 'cause wrapper channel is 2MBit/s On the other hand if I don't put this 2mbit-wrapper I can't use ceil-functionality. Also I can't create 2 wrapper-channels 1Mbit/s each, 'cause users has to have 100kb/s compound speed not 100kb/s peering and 100kb/s internet, neither 50kb/s-peering and 50kb/s-internet.. The 100kb/s is divided depending on their current usage, so it is not predefined.. So the questions are - how to have total speed X divided by all channels dynamicly and in the same time be able to use ceil-functionality. Thanx alot in advance for your ideas raptor