* [LARTC] HTB prio question
@ 2004-08-18 13:04 Michael Eck
2006-01-30 12:35 ` Anton Glinkov
2006-01-30 15:22 ` Andreas Klauer
0 siblings, 2 replies; 3+ messages in thread
From: Michael Eck @ 2004-08-18 13:04 UTC (permalink / raw)
To: lartc
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@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
^ permalink raw reply [flat|nested] 3+ messages in thread
* [LARTC] HTB prio question
2004-08-18 13:04 [LARTC] HTB prio question Michael Eck
@ 2006-01-30 12:35 ` Anton Glinkov
2006-01-30 15:22 ` Andreas Klauer
1 sibling, 0 replies; 3+ messages in thread
From: Anton Glinkov @ 2006-01-30 12:35 UTC (permalink / raw)
To: lartc
Hello
Is the prio specification in the htb class global or is it on a per class
basis? A simple example:
class 1:10 parent 1:
class 1:130 parent 1:10 prio 3
class 1:170 parent 1:10 prio 7
class 1:171 parent 1:170 prio 1
class 1:172 parent 1:170 prio 2
Which class will get excessive bandwidth first? 130 or 171/172?
Thanks.
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [LARTC] HTB prio question
2004-08-18 13:04 [LARTC] HTB prio question Michael Eck
2006-01-30 12:35 ` Anton Glinkov
@ 2006-01-30 15:22 ` Andreas Klauer
1 sibling, 0 replies; 3+ messages in thread
From: Andreas Klauer @ 2006-01-30 15:22 UTC (permalink / raw)
To: lartc
On Mon, Jan 30, 2006 at 02:35:36PM +0200, Anton Glinkov wrote:
> Is the prio specification in the htb class global or is it on a per class
> basis? A simple example:
>
> class 1:10 parent 1:
> class 1:130 parent 1:10 prio 3
>
> class 1:170 parent 1:10 prio 7
> class 1:171 parent 1:170 prio 1
> class 1:172 parent 1:170 prio 2
>
> Which class will get excessive bandwidth first? 130 or 171/172?
I haven't tested it, but from my understanding, it should be 1:130.
Children classes should not be able to borrow from the outside
by themselves - they can only tell their parent to borrow for
them, so it's 1:130 (prio 3) vs 1:170 (prio 7) here.
Regards
Andreas Klauer
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-01-30 15:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-18 13:04 [LARTC] HTB prio question Michael Eck
2006-01-30 12:35 ` Anton Glinkov
2006-01-30 15:22 ` Andreas Klauer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.