Do not follow this link, or you will be blocked from this site. This is a spider trap.

NOTES:

Several pages which are given as links here are no longer available.   If anyone has the original content or working links, please contact gypsy {at} iswest {dot} com!

If you are going to use HTB, edit linux/include/net/pkt_sched.h, changing PSCHED_JIFFIES to PSCHED_CPU.
If you want ultimate precision, edit linux/net/sched/sch_htb.c, changing HYSTERESIS from 1 to 0.  Otherwise, HTB will dequeue packets in pairs (to improve response).
There is a serious bug in HTB before version 3.17, so use a kernel version 2.4.26 or newer.

DOWNLOADS

Browse our FTP archive.
IMQ for 2.6 kernels: 2.6.26, 2.6.26 test2, 2.6.27 test2, 2.6.27 test3, 2.6.28 test2, 2.6.29 test2, 2.6.30 test1, 2.6.30-rc4 test1, 2.6.30.8 test2, 2.6.30.8 test3, 2.6.31.1 test2, 2.6.31.6 patch, 2.6.32 test2, 2.6.33 test1, (mostly) from www.linuximq.net.
gypsy's (that's me...) esfq hack for iproute2-2.6.9 thru .11 and kernel 2.4.18 and newer.
ESFQ for 2.6 kernels thru .28 from dd-wrt.
ESFQ for 2.6.29 and newer kernels from dd-wrt.
iptables-1.4.3.2 patch.
Xtables-1.4.3.2 patch (xtables-addons.sourceforge.net).

EXAMPLES

My 2.6 Wonder Shaper script (Ultimate Traffic Shaper).
My 2.4 Wonder Shaper script (Ultimate Traffic Shaper).
At work, this used to shape my proxyARP setup for both uploads and downloads.
This is the HTB script currently running at work.  It includes IMQ.
Here is the working proxyARP startup script.
While we had 2 providers:  rc.nano1 is the multipath routing configuration script.  Here is proxy-arp.sh (at the bottom of rc.nano1), plus its config file.  This is the (very poor) HTB shaping script.  By adding an alias to each internal computer's internet-facing NIC, no NAT is required.   /etc/iproute2/rt_tables
My old nano script (For a while, I had 3 providers here at home).  Dead Gateway Detection the hard way.
Robert Kurjata's multipath script.
u32 match arp example.
u32 match mac examples.
Fernando Favero's nano-based Load Balancing script, posted to the LARTC mailing list 31Aug04.
Daniel Bartlett's load balancing script, posted to the LARTC mailing list 15Nov04.
Tóth Nándor's Multiple Uplinks example script, posted to the LARTC mailing list 31Jan05.

DOCUMENTATION and LINKS

Download iproute2 source here.
My local copy of the Linux Advanced Routing and Traffic Control HOWTO.  Here is The Real Thing.
tc man page Show or manipulate traffic control settings.
A tc tutorial.  IMQ is here.  Here is my (slightly edited) local copy of the tc tutorial.
tc-htb man page Hierarchy Token Bucket.
tc-sfq man page Stochastic Fairness Queueing.
tc-tbf man page Token Bucket Filter.
Help for HTB "tc" commands.
Jason Boxman's Linux traffic control guide.
Shane Chen's Linux Traffic Shaping.
Nuutti Kotivuori ("Naked")'s excellent explanation of TCP queueing, posted to the LARTC mailing list 15Feb04. This is a must read.
The Linux High Availability project.

SHAPING / QoS / TRAFFIC CONTROL LINKS

David DeLauro's Dynamic Rate Limiting: description and statistics.  PaceMaker download and installation instructions page. Dead link.   Can anyone help find?
David McNab's pyshaper, a program for managing your internet traffic in real time.
James Jones' Rate Limiting by IP ranges.
Dan Singletary's ADSL Bandwidth Management HOWTO.
Emmanuel Roger's QoS connection tuning HOWTO.
Martin Devera ("Devik")'s web site  Devik is the author of HTB.
Jim diGriz's web site.  His QoS script is famous.
Stef Coene's web site.  After the LARTC HOWTO, this is your second reading assignment.
Andreas Klauer's Fair NAT documentation.
Route Hat, a bootable CD using WRR.

API:

Dan Siemon's LQL, the Linux QoS Library, which provides a C API to manipulate the network queueing disciplines, classes and classifiers in the Linux kernel.

ESFQ:

ESFQ for 2.6 kernels thru .28 from dd-wrt.
ESFQ for 2.6.29 and newer kernels from dd-wrt.
gypsy's (that's me...) LARTC FTP site.  My esfq hack for iproute2-2.6.9 thru .11 and kernel 2.4.18 and newer.   The esfq here was created by copying the sfq code from a 2.4.18 kernel, then modifying it so it will accept parameters.  Since the sfq code has not been maintained (thus it hasn't changed) in 2.4 kernels, the hack should work for any 2.4.18 or newer kernel.
Here is the source for my hack: Alexander Atanasov's esfq. This is for 2.4 kernels, but won't compile in the current iproute2.

IMQ, HSFC, Etc.:

IMQ and HFSC - among other things - by Patrick McHardy.   Actually, Patrick stopped maintaining it, so IMQ is here now.
Poitr Neuman maintains a patch set (with links) for kernel version 2.6 here.  This includes esfq, IMQ, wrr, Layer-7, IPP2P and ipt-account.
Because there is no documentation for HFSC, you may want to download Tomasz Paszkowski's HUGE but working HFSC startup script.
Marcin Ka³u¿a's HFSC script was posted to the LARTC mailing list 14May05.
Perhaps this thread will shed additional light on your HFSC research.
Start with this link and then check out this small working HFSC setup by Vincent Perrier.  This is a must see when you are learning HFSC! Dead link.  Try clownix.net.

U32 and FWMARK:

Russell Stuart's The U32 Filter  Better yet, see all this fine documentation!
Catalin BOIE's u32 and fwmark patches and examples.

MULTIPATH

Martin A. Brown's excellent Guide to IP Layer Network Administration.
Julian Anastasov's web site Dead Gateway Detection.  Read dgd.txt and dgd-usage.txt.  Don't miss nano, the load balancing/multi ISP HOWTO.
Nguyen Dinh Nam's Multi Homed Linux Networking tutorial (my edited copy).
Ron Senykoff's CODE page, which contains links to his QoS Bridge HOWTO and Load Balancing script. Dead link.   Can anyone help find?
Here is Ron's posting on 30Mar04 to the LARTC mailing list, where he describes combining connections for increased throughput.
Read Ming-Ching Tiew's Load Balancing, Failover and NAT page (at least the introduction).Dead link.   Can anyone help find?
Have a look at Roger Gregory ("godot")'s netsane, which configures 2 external interfaces for multipath routing.Bad link.   Can anyone help find?

MONITORING

qdisc monitoring for kernel version 2.6 by Vincent Perrier. Bad link.
Here are the replacement links for rawsoft, thanks to Vincent Perrier: Screenshots and source.
bwm-ng source.  Volker Gropp's (the developer) web site.
bmon - Portable bandwidth monitor.
iptraf, Gerard Java's excellent monitor.  There is a mailing list as well as a web site.
A Windows speed monitor by Ziff Davis Publishing.
More monitoring to come...
Do not follow this link, or you will be blocked from this site. This is a spider trap.