| 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 |