QoS Scheduler

#!/bin/bash
#
# Jim diGriz's QoS Scheduler (http://www.digriz.org.uk/jdg-qos-script/)
#       <alex@digriz.junk-this.org.uk> [remove 'junk-this' to mail me]
#       GPL V2 blar blar blar
#       Version: 20040823 (aka 23rd August 2004)
#		- more or less a complete rewrite and included use of WRR
#
# Dependencies, [...] marks optional extras
# -----------------------------------------
# 1) HTB3 patch (if earlier than 2.4.18) and 'tc' patch
# 2) RED (in kernel 2.4.x and 2.6.x)
# 3) iptables (in kernel 2.4.x and 2.6.x)
# 4) ESFQ patch (http://www.ssi.bg/~alex/esfq/index.html) and 'tc' patch
# 5) WRR patch (http://wipl-wrr.sourceforge.net/wrr.html) and 'tc' patch
# [ 6) IMQ patch (http://www.linuximq.net/) and 'tc' patch
#	IMQ is required if you are using NAT or QOS_GATEWAY_UPSTREAM]
# [ 7) IPP2P patch (http://rnvs.informatik.uni-leipzig.de/ipp2p/index_en.html)
# [ 8) CONNMARK patch (http://www.netfilter.org/) {if you need IPP2P} ]
#
# IPP2P is a nice feature that lets iptables identify P2P traffic.  This really
# is only useful to identify the headers and starts of data transfers which in
# its-self is pretty useless, however if combined with CONNMARK you have a very
# simple system which can mark all the P2P traffic as low priority; this
# offloads all the difficult work onto the connecting tracking system.
Register to read more...