[LARTC] Linux Traffic Control limited to only 1 split of classes??

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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






[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux