On Fri, 1 Jun 2001, Andy Pyles wrote: > I'm trying to setup a linux box as follows: > > > > <---- 170kbs 170kbs ------------> > if Dest. = 10.10.20.97 if Dest. = 10.10.30.3 > (classid=170) (classid=171) > > |------| |------ > | eth0 | |eth1 | > | |-----| | > -------- ------- > <------30kbs 30kbs ---------------> > if Dest. = 10.10.20.95 if Dest. = 10.10.30.2 > (classid=30) (classid=31) > > Brief synopsis: > > basically what I have outlined above works fine. The problem that I'm > having is > when I'm NOT experiencing any traffic on #170, then #30 is NOT able to > inherit any excess bandwidth. > > Here is what I have below: > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 200Kbit avpkt 1000 > cell 8 > tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 200Kbit rate > 200Kbit weight 20Kbit prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000 > > tc qdisc add dev eth1 root handle 1:0 cbq bandwidth 200Kbit avpkt 1000 > cell 8 > tc class add dev eth1 parent 1:0 classid 1:1 cbq bandwidth 200Kbit rate > 200Kbit weight 20Kbit prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000 > > tc class add dev eth0 parent 1:1 classid 1:170 cbq bandwidth 200Kbit > rate 170Kbit weight 17Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt > 1000 > tc qdisc add dev eth0 parent 1:170 tbf rate 170Kbit buffer 10Kb/8 limit > 15Kb mtu 1500 > tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst > 10.10.20.97 flowid 1:170 > > tc class add dev eth1 parent 1:1 classid 1:171 cbq bandwidth 200Kbit > rate 170Kbit weight 17Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt > 1000 > tc qdisc add dev eth1 parent 1:171 tbf rate 170Kbit buffer 10Kb/8 limit > 15Kb mtu 1500 > tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip dst > 10.10.30.3 flowid 1:171 > > tc class add dev eth0 parent 1:170 classid 1:30 cbq bandwidth 200Kbit > rate 30Kbit weight 3Kbit prio 6 allot 1514 cell 8 maxburst 20 avpkt 1000 Shouldn't the parent class be 1:1 instead of 1:170 ?? I believe in the current scheme, 1:170 is child from 1:1 and 1:30 a child from 1:170. I think you want both 1:170 as 1:30 to be children from 1:1. > tc qdisc add dev eth0 parent 1:30 tbf rate 30Kbit buffer 10Kb/8 limit > 15Kb mtu 1500 > tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst > 10.10.20.95 flowid 1:30 > > tc class add dev eth1 parent 1:171 classid 1:31 cbq bandwidth 200Kbit > rate 30Kbit weight 3Kbit prio 6 allot 1514 cell 8 maxburst 20 avpkt 1000 > tc qdisc add dev eth1 parent 1:31 tbf rate 30Kbit buffer 10Kb/8 limit > 15Kb mtu 1500 > tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip dst > 10.10.30.2 flowid 1:31