Rick Goh Siow Mong
2001-Feb-03 22:03 UTC
Linux Traffic Control limited to only 1 split of classes??
Hi all, The script below works partially. Please help me figure out why. What happen is this: 1. Split eth0 into 2 classes; Sales and Engine. --> depth 1 2. Split further Sales into 2 classes; SalesMan and SalesManager. --> depth2 3. Run the script. 4. TC to depth 1 Engine works. Limited bandwidth. 5. TC to depth 2 Sales DOESN''T work. Gets all the bandwidth. Apparently, after further test, it shows that once I split more than once, traffic control breaks down. I hope you can help me figure out if my script is missing something... or that is it a bug in the code itself?? Regards, Rick Goh. ************************************************ #!/bin/sh # # Startup script for Linux Traffic Control # device="eth0" total="1Mbit" sales="500Kbit" engine="500Kbit" sales_man="100Kbit" sales_manager="400Kbit" ip_salesman="192.168.1.10" ip_salesmanager="192.168.1.20" ip_engine="192.168.1.30" #Del qdisc to eth0 tc qdisc del dev $device root handle 1: #Attach qdisc to eth0 and 2 different class; sales & engine --> depth 1 tc qdisc add dev $device root handle 1: cbq bandwidth $total avpkt 1000 tc class add dev $device parent 1:0 classid 1:1 cbq bandwidth $total \ rate $total allot 1514 weight 100Kbit prio 8 maxburst 20 avpkt 1000 tc class add dev $device parent 1:1 classid 1:10 cbq bandwidth $total \ rate $sales allot 1514 weight 50Kbit prio 3 maxburst 20 avpkt 1000 bounded tc class add dev $device parent 1:1 classid 1:20 cbq bandwidth $total \ rate $engine allot 1514 weight 50Kbit prio 7 maxburst 20 avpkt 1000 bounded ###New qdisc for Sales --> depth 2 tc qdisc add dev $device parent 1:10 handle 10: cbq bandwidth $sales avpkt 1000 ###2 classes for Sales tc class add dev $device parent 10:0 classid 10:1 cbq bandwidth $sales \ rate $sales allot 1514 weight 50Kbit prio 6 maxburst 20 avpkt 1000 tc class add dev $device parent 10:1 classid 10:2 cbq bandwidth $sales \ rate $sales_man allot 1514 weight 10Kbit prio 2 maxburst 20 avpkt 1000 tc class add dev $device parent 10:1 classid 10:3 cbq bandwidth $sales \ rate $sales_manager allot 1514 weight 40Kbit prio 1 maxburst 20 avpkt 1000 #############FILTER############ # Depth 1 tc filter add dev $device parent 1:0 protocol ip prio 25 u32 match \ ip dst $ip_engine flowid 1:20 # Depth 2 tc filter add dev $device parent 10:0 protocol ip prio 25 u32 match \ ip dst $ip_salesman flowid 10:2 tc filter add dev $device parent 10:0 protocol ip prio 100 u32 match \ ip dst $ip_salesmanager flowid 10:3
Rick Goh Siow Mong
2001-Feb-04 12:45 UTC
Re: Linux Traffic Control limited to only 1 split of classes??
Hi all, problem solved. Forgot to add the route. =) Thank you Marian Jancar. ----- Original Message ----- From: "Rick Goh Siow Mong" <rickgoh@cyberway.com.sg> To: "lartc" <lartc@mailman.ds9a.nl> Sent: Sunday, February 04, 2001 6:03 AM Subject: [LARTC] Linux Traffic Control limited to only 1 split of classes??> Hi all, > The script below works partially. Please help me figure out why. > > What happen is this: > 1. Split eth0 into 2 classes; Sales and Engine. --> depth 1 > 2. Split further Sales into 2 classes; SalesMan and SalesManager. --> > depth2 > 3. Run the script. > 4. TC to depth 1 Engine works. Limited bandwidth. > 5. TC to depth 2 Sales DOESN''T work. Gets all the bandwidth. > > Apparently, after further test, it shows that once I split more than once, > traffic control breaks down. > I hope you can help me figure out if my script is missing something... or > that is it a bug in the code itself?? > > Regards, > Rick Goh. > > ************************************************ > #!/bin/sh > # > # Startup script for Linux Traffic Control > # > > device="eth0" > total="1Mbit" > sales="500Kbit" > engine="500Kbit" > sales_man="100Kbit" > sales_manager="400Kbit" > ip_salesman="192.168.1.10" > ip_salesmanager="192.168.1.20" > ip_engine="192.168.1.30" > > #Del qdisc to eth0 > tc qdisc del dev $device root handle 1: > > #Attach qdisc to eth0 and 2 different class; sales & engine --> depth 1 > tc qdisc add dev $device root handle 1: cbq bandwidth $total avpkt 1000 > tc class add dev $device parent 1:0 classid 1:1 cbq bandwidth $total \ > rate $total allot 1514 weight 100Kbit prio 8 maxburst 20 avpkt 1000 > tc class add dev $device parent 1:1 classid 1:10 cbq bandwidth $total \ > rate $sales allot 1514 weight 50Kbit prio 3 maxburst 20 avpkt 1000 > bounded > tc class add dev $device parent 1:1 classid 1:20 cbq bandwidth $total \ > rate $engine allot 1514 weight 50Kbit prio 7 maxburst 20 avpkt 1000 > bounded > > > ###New qdisc for Sales --> depth 2 > tc qdisc add dev $device parent 1:10 handle 10: cbq bandwidth $sales avpkt > 1000 > > ###2 classes for Sales > tc class add dev $device parent 10:0 classid 10:1 cbq bandwidth $sales \ > rate $sales allot 1514 weight 50Kbit prio 6 maxburst 20 avpkt 1000 > tc class add dev $device parent 10:1 classid 10:2 cbq bandwidth $sales \ > rate $sales_man allot 1514 weight 10Kbit prio 2 maxburst 20 avpkt 1000 > tc class add dev $device parent 10:1 classid 10:3 cbq bandwidth $sales \ > rate $sales_manager allot 1514 weight 40Kbit prio 1 maxburst 20 avpkt > 1000 > > > #############FILTER############ > > # Depth 1 > tc filter add dev $device parent 1:0 protocol ip prio 25 u32 match \ > ip dst $ip_engine flowid 1:20 > > # Depth 2 > tc filter add dev $device parent 10:0 protocol ip prio 25 u32 match \ > ip dst $ip_salesman flowid 10:2 > tc filter add dev $device parent 10:0 protocol ip prio 100 u32 match \ > ip dst $ip_salesmanager flowid 10:3 > > > > > _______________________________________________ > LARTC mailing list / LARTC@mailman.ds9a.nl > http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO:http://ds9a.nl/2.4Routing/