Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 |