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