Merge git://git.infradead.org/hdrcleanup-2.6
[linux-2.6] / Documentation / networking / shaper.txt
1 Traffic Shaper For Linux
2
3 This is the current BETA release of the traffic shaper for Linux. It works
4 within the following limits:
5
6 o       Minimum shaping speed is currently about 9600 baud (it can only
7 shape down to 1 byte per clock tick)
8
9 o       Maximum is about 256K, it will go above this but get a bit blocky.
10
11 o       If you ifconfig the master device that a shaper is attached to down
12 then your machine will follow.
13
14 o       The shaper must be a module.
15
16
17 Setup:
18
19         A shaper device is configured using the shapeconfig program.
20 Typically you will do something like this
21
22 shapecfg attach shaper0 eth1
23 shapecfg speed shaper0 64000
24 ifconfig shaper0 myhost netmask 255.255.255.240 broadcast 1.2.3.4.255 up
25 route add -net some.network netmask a.b.c.d dev shaper0
26
27 The shaper should have the same IP address as the device it is attached to
28 for normal use.
29
30 Gotchas:
31
32         The shaper shapes transmitted traffic. It's rather impossible to
33 shape received traffic except at the end (or a router) transmitting it.
34
35         Gated/routed/rwhod/mrouted all see the shaper as an additional device
36 and will treat it as such unless patched. Note that for mrouted you can run
37 mrouted tunnels via a traffic shaper to control bandwidth usage.
38
39         The shaper is device/route based. This makes it very easy to use
40 with any setup BUT less flexible. You may need to use iproute2 to set up
41 multiple route tables to get the flexibility.
42
43         There is no "borrowing" or "sharing" scheme. This is a simple
44 traffic limiter. We implement Van Jacobson and Sally Floyd's CBQ
45 architecture into Linux 2.2. This is the preferred solution. Shaper is
46 for simple or back compatible setups.
47
48 Alan