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/