HFSC and prioritization

Linux Advanced Routing and Traffic Control

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

 



I'm using HFSC to limit bandwidth for our wireless customers. However,
I'd also like the bandwidth prioritized based on packet type. This is
what I'm trying right now, and I'd just like some input from anyone out
there knowledgeable in this on whether it does what I want it to do:

Eth1 -> HFSC 
........|-> HFSC (User1) (Min 512 Kb, Max 1024 Kb, Burst 1536 Kb@2s)
........|...|-> Prio_qdisc
........|.......|-> 1
........|.......|...|->HFSC VoIP/Interactive(max 30ms, Real 128Kb)
........|.......|
........|.......|-> 2
........|.......|...|->HFSC Web,FTP(Min 512Kb,Max 1024Kb,Burst
1536Kb@2s)
........|.......|
........|.......|-> 3
........|...........|->HFSC P2P(Min 0 Kb, Max 1024 Kb, all shared)
........|
........|-> HFSC (User2) (etc)
..etc...

What I'm aiming for is:

No matter what type of traffic is being transferred, the user is
guaranteed 512Kbps and can max out at 1024Kbps, but can also burst up to
1536Kbps for 2 seconds. 

VoIP / SSH / Telnet / non-data ACK packets get priority over everything
else. It would be guaranteed 128Kbps of bandwidth if it were needed.
Ideally, it would not reserve that bandwidth unless it was actually
needed. It should also get more bandwidth than 128Kbps if it is needed,
but anything after 128Kbps it has to fight for with everything else
(except it has a higher priority so it should win out in 99.99999% of
cases?) 

Web, FTP, and other unclassifiable traffic would get second priority and
would be guaranteed 512Kbps of bandwidth with a maximum of 1024Kbps and
can burst up to 1536Kbps for 2 seconds.

Finally, P2P traffic is not guaranteed anything, but could use all
available bandwidth if the user is not doing anything else. No matter
how much bandwidth P2P wants, if something else needs bandwidth, the
other traffic should win out and receive the bandwidth.


These are my actual rules:

# Base user class
tc class add dev wivl4 parent 5:0 classid 5:130 hfsc ls m1 1536.0Kbit d
2000ms m2 512.00Kbit ul m2 1024Kbit

# Priority queue
tc qdisc add dev wivl4 parent 5:130 handle 134:  prio bands 3
tc qdisc add dev wivl4 parent 134:1 handle 135:  hfsc default 1
tc qdisc add dev wivl4 parent 134:2 handle 136:  hfsc default 1
tc qdisc add dev wivl4 parent 134:3 handle 137:  hfsc default 1

# VoIP / Interactive
tc class add dev wivl4 parent 135: classid 135:1 hfsc sc umax 1500b dmax
30ms rate 128Kbit

# Web
tc class add dev wivl4 parent 136: classid 136:1 hfsc rt m2 512.00Kbit
ls m2 512.0Kbit ul m2 1024Kbit

# P2P
tc class add dev wivl4 parent 137: classid 137:1 hfsc ls m2 1024.0Kbit
ul m2 1024.0Kbit


Does this look appropriate?


Eliot Gable
Certified Wireless Network Administrator (CWNA)
Certified Wireless Security Professional (CWSP)
Cisco Certified Network Associate (CCNA)
CompTIA Security+ Certified
CompTIA Network+ Certified
Network and Systems Administrator
Great Lakes Internet, Inc.
112 North Howard
Croswell, MI 48422
(810) 679-3395
(877) 558-8324
 
Now offering Broadband Wireless Internet access in Croswell, Lexington,
Brown City, Yale, and Sandusky. Call for details.

_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc


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