| Traffic Shaper For Linux | 
 |  | 
 | This is the current BETA release of the traffic shaper for Linux. It works | 
 | within the following limits: | 
 |  | 
 | o	Minimum shaping speed is currently about 9600 baud (it can only | 
 | shape down to 1 byte per clock tick) | 
 |  | 
 | o	Maximum is about 256K, it will go above this but get a bit blocky. | 
 |  | 
 | o	If you ifconfig the master device that a shaper is attached to down | 
 | then your machine will follow. | 
 |  | 
 | o	The shaper must be a module. | 
 |  | 
 |  | 
 | Setup: | 
 |  | 
 | 	A shaper device is configured using the shapeconfig program. | 
 | Typically you will do something like this | 
 |  | 
 | shapecfg attach shaper0 eth1 | 
 | shapecfg speed shaper0 64000 | 
 | ifconfig shaper0 myhost netmask 255.255.255.240 broadcast 1.2.3.4.255 up | 
 | route add -net some.network netmask a.b.c.d dev shaper0 | 
 |  | 
 | The shaper should have the same IP address as the device it is attached to | 
 | for normal use. | 
 |  | 
 | Gotchas: | 
 |  | 
 | 	The shaper shapes transmitted traffic. It's rather impossible to | 
 | shape received traffic except at the end (or a router) transmitting it. | 
 |  | 
 | 	Gated/routed/rwhod/mrouted all see the shaper as an additional device | 
 | and will treat it as such unless patched. Note that for mrouted you can run | 
 | mrouted tunnels via a traffic shaper to control bandwidth usage. | 
 |  | 
 | 	The shaper is device/route based. This makes it very easy to use | 
 | with any setup BUT less flexible. You may need to use iproute2 to set up | 
 | multiple route tables to get the flexibility. | 
 |  | 
 | 	There is no "borrowing" or "sharing" scheme. This is a simple | 
 | traffic limiter. We implement Van Jacobson and Sally Floyd's CBQ | 
 | architecture into Linux 2.2. This is the preferred solution. Shaper is | 
 | for simple or back compatible setups. | 
 |  | 
 | Alan |