HTB prio question

Linux Advanced Routing and Traffic Control

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

 



Hi all.  I have a bridge running Linux 2.4.24 that I use as a
bandwidth manager on a broadband wireless network.  I'm using HTB and
SFQ to prioritize that share bandwidth on a per-cell basis.  My IP
tables rules divide the traffic based on IPand traffic type (using
layer-7 filter and ipp2p).  My goal is to make sure that p2p traffic
on the network doesn't sink all of the bandwidth and affect the
performance of high-priority commercial customers.  For the most part
it works very well, but I'm not getting the kind of prioritization I'm
expecting.  I'm not seeing p2p traffic go down on my graphs as
higher-priority traffic goes up.  Consequently, my high-priority
traffic suffers.  I am able to control the p2p but putting it into a
very small bitrate queue but would rather late the shaper do the work
based on priority.

What am I missing?  My rules are posted below.

Thanks,
Michael Eck

Sorry if these are a bit long


###
# Root qdisc
###

/sbin/tc qdisc add dev eth0 root handle 1: htb default 5

####
# Parent Classes
####
# The Entire Interface
/sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 102401kbit
ceil 102401kbit quantum 20000

# Default Class
/sbin/tc class add dev eth0 parent 1:1 classid 1:5 htb rate 100864kbit
ceil 100864kbit prio 1 quantum 20000
/sbin/tc qdisc add dev eth0 parent 1:5 handle 5: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 5 fw
flowid 1:5

# Low Prio p2p class - This is only here for uses that get out of control
/sbin/tc class add dev eth0 parent 1:5 classid 1:53 htb rate 56kbit
ceil 56kbit prio 4 quantum 1501
/sbin/tc qdisc add dev eth0 parent 1:53 handle 5: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 53
fw flowid 1:53

# Parent class for VL AU -> Retel
/sbin/tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1536kbit
ceil 1536kbit

# Zero Rate High Priority Class - seldom used
/sbin/tc class add dev eth0 parent 1:3 classid 1:30 htb rate 1kbit
ceil 1536kbit prio 1 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 30
fw flowid 1:30

# Commercial Class for VL -> Retel
/sbin/tc class add dev eth0 parent 1:3 classid 1:31 htb rate 1152kbit
ceil 1536kbit prio 2
/sbin/tc qdisc add dev eth0 parent 1:31 handle 31: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 31
fw flowid 1:31

# Residential Class for VL -> Retel
/sbin/tc class add dev eth0 parent 1:3 classid 1:32 htb rate 384kbit
ceil 1536kbit prio 3
/sbin/tc qdisc add dev eth0 parent 1:32 handle 32: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 32
fw flowid 1:32

# Zero Rate Low Priority Class - VL -> Retel - All p2p traffic for
this sector goes through here
/sbin/tc class add dev eth0 parent 1:3 classid 1:33 htb rate 1kbit
ceil 56kbit prio 4 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:33 handle 33: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 33
fw flowid 1:33

# Parent class for VL AU -> WHOT
/sbin/tc class add dev eth0 parent 1:1 classid 1:4 htb rate 1536kbit
ceil 1536kbit

# Zero Rate High Priority Class
/sbin/tc class add dev eth0 parent 1:4 classid 1:40 htb rate 1kbit
ceil 1536kbit prio 1 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:40 handle 40: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 40
fw flowid 1:40

# Commercial Class for VL -> WHOT
/sbin/tc class add dev eth0 parent 1:4 classid 1:41 htb rate 1152kbit
ceil 1536kbit prio 2
/sbin/tc qdisc add dev eth0 parent 1:41 handle 41: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 41
fw flowid 1:41

# Residential Class for VL -> WHOT
/sbin/tc class add dev eth0 parent 1:4 classid 1:42 htb rate 384kbit
ceil 1536kbit prio 3
/sbin/tc qdisc add dev eth0 parent 1:42 handle 42: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 42
fw flowid 1:42

# Zerio Rate Low Priority Class - VL -> WHOT Abusers All p2p traffic
for this sector goes through here
/sbin/tc class add dev eth0  parent 1:4 classid 1:43 htb rate 1kbit
ceil 56kbit prio 4 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:43 handle 43: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 43
fw flowid 1:43

# Parent class for ChilAU
/sbin/tc class add dev eth0 parent 1:1 classid 1:6 htb rate 1536kbit
ceil 1536kbit

# Zero Rate High Priority Class -
/sbin/tc class add dev eth0 parent 1:6 classid 1:60 htb rate 1kbit
ceil 1536kbit prio 1 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:60 handle 60: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 60
fw flowid 1:60

# Commercial Class for ChilAU
/sbin/tc class add dev eth0 parent 1:6 classid 1:61 htb rate 1152kbit
ceil 1536kbit prio 2
/sbin/tc qdisc add dev eth0 parent 1:61 handle 61: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 61
fw flowid 1:61

# Resedential Class for ChilAU
/sbin/tc class add dev eth0 parent 1:6 classid 1:62 htb rate 384kbit
ceil 1536kbit prio 3
/sbin/tc qdisc add dev eth0 parent 1:62 handle 62: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 62
fw flowid 1:62

# Zero Rate Low priority class - Abusers All p2p traffic for this
sector goes through here
/sbin/tc class add dev eth0 parent 1:6 classid 1:63 htb rate 1kbit
ceil 56kbit prio 4 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:63 handle 63: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 63
fw flowid 1:63

# Parent class for DS5800
/sbin/tc class add dev eth0 parent 1:1 classid 1:19 htb rate 4608kbit
ceil 4608kbit


# Parent class for Left Sector (DS5800 Child)
/sbin/tc class add dev eth0 parent 1:19 classid 1:9 htb rate 1536kbit
ceil 1536kbit

# Zero Rate High Priority Class - Left Sector
/sbin/tc class add dev eth0 parent 1:9 classid 1:90 htb rate 1kbit
ceil 1536kbit prio 1 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:90 handle 90: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 90
fw flowid 1:90

# Commercial Class for Left Sector
/sbin/tc class add dev eth0 parent 1:9 classid 1:91 htb rate 1152kbit
ceil 1536kbit prio 2
/sbin/tc qdisc add dev eth0 parent 1:91 handle 91: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 91
fw flowid 1:91

# Residential Class for Left Sector
/sbin/tc class add dev eth0 parent 1:9 classid 1:92 htb rate 384kbit
ceil 1536kbit prio 3
/sbin/tc qdisc add dev eth0 parent 1:92 handle 92: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 92
fw flowid 1:92

# Zero Rate Low Priority Class - Left Sector
/sbin/tc class add dev eth0 parent 1:9 classid 1:93 htb rate 1kbit
ceil 56kbit prio 4 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:93 handle 93: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 93
fw flowid 1:93

# Parent Class for Center Sector (DS5800 Child)
/sbin/tc class add dev eth0 parent 1:19 classid 1:8 htb rate 1536kbit
ceil 1536kbit

# Zero Rate High Priority Class - Center Sector
/sbin/tc class add dev eth0 parent 1:8 classid 1:80 htb rate 1kbit
ceil 1536kbit prio 1 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:80 handle 80: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 80
fw flowid 1:80

# Commercial Class for Center Sector
/sbin/tc class add dev eth0 parent 1:8 classid 1:81 htb rate 1152kbit
ceil 1536kbit prio 2
/sbin/tc qdisc add dev eth0 parent 1:81 handle 81: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 81
fw flowid 1:81

# Residential Class for Center
/sbin/tc class add dev eth0 parent 1:8 classid 1:82 htb rate 384kbit
ceil 1536kbit prio 3
/sbin/tc qdisc add dev eth0 parent 1:82 handle 82: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 82
fw flowid 1:82

# Zero Rate Low Priority Class - Center Sector
/sbin/tc class add dev eth0 parent 1:8 classid 1:83 htb rate 1kbit
ceil 56kbit prio 4 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:83 handle 83: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 83
fw flowid 1:83


# Parent Class for Right Sector
/sbin/tc class add dev eth0 parent 1:19 classid 1:7 htb rate 1536kbit
ceil 1536kbit

# Zero Rate High Priority Class - Right Sector
/sbin/tc class add dev eth0 parent 1:7 classid 1:70 htb rate 1kbit
ceil 1536kbit prio 1 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:70 handle 70: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 70
fw flowid 1:70

# Commercial Class for Right Sector
/sbin/tc class add dev eth0 parent 1:7 classid 1:71 htb rate 1152kbit
ceil 1536kbit prio 2
/sbin/tc qdisc add dev eth0 parent 1:71 handle 71: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 71
fw flowid 1:71

# Residential Class for Right Sector
/sbin/tc class add dev eth0 parent 1:7 classid 1:72 htb rate 384kbit
ceil 1536kbit prio 3
/sbin/tc qdisc add dev eth0 parent 1:72 handle 72: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 72
fw flowid 1:72

# Zero Rate Low Priority Class - Right Sector All p2p traffic for this
sector goes through here
/sbin/tc class add dev eth0 parent 1:7 classid 1:73 htb rate 56kbit
ceil 56kbit prio 4 quantum 1501 burst 1501 cburst 1501
/sbin/tc qdisc add dev eth0 parent 1:73 handle 73: sfq perturb 10
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 73
fw flowid 1:73
_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

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