blob: 38c1089d1d1e0ee68054a2692a038b4c180e21c9 [file] [log] [blame]
shemminger8c564a42005-10-12 22:46:23 +00001# CHANGES
2# -------
3# v0.3a2- fixed bug in "if" operator. Thanks kad@dgtu.donetsk.ua.
4# v0.3a- added TIME parameter. Example:
5# TIME=00:00-19:00;64Kbit/6Kbit
6# So, between 00:00 and 19:00 RATE will be 64Kbit.
7# Just start "cbq.init timecheck" periodically from cron (every 10
8# minutes for example).
9# !!! Anyway you MUST start "cbq.init start" for CBQ initialize.
10# v0.2 - Some cosmetique changes. Now it more compatible with
11# old bash version. Thanks to Stanislav V. Voronyi
12# <stas@cnti.uanet.kharkov.ua>.
13# v0.1 - First public release
14#
15# README
16# ------
17#
18# First of all - this is just a SIMPLE EXAMPLE of CBQ power.
19# Don't ask me "why" and "how" :)
20#
21# This is an example of using CBQ (Class Based Queueing) and policy-based
22# filter for building smart ethernet shapers. All CBQ parameters are
23# correct only for ETHERNET (eth0,1,2..) linux interfaces. It works for
24# ARCNET too (just set bandwidth parameter to 2Mbit). It was tested
25# on 2.1.125-2.1.129 linux kernels (KSI linux, Nostromo version) and
26# ip-route utility by A.Kuznetsov (iproute2-ss981101 version).
27# You can download ip-route from ftp://ftp.inr.ac.ru/ip-routing or
28# get iproute2*.rpm (compiled with glibc) from ftp.ksi-linux.com.
29#
30#
31# HOW IT WORKS
32#
33# Each shaper must be described by config file in $CBQ_PATH
34# (/etc/sysconfig/cbq/) directory - one config file for each CBQ shaper.
35#
36# Some words about config file name:
37# Each shaper has its personal ID - two byte HEX number. Really ID is
38# CBQ class.
39# So, filename looks like:
40#
41# cbq-1280.My_first_shaper
42# ^^^ ^^^ ^^^^^^^^^^^^^
43# | | |______ Shaper name - any word
44# | |___________________ ID (0000-FFFF), let ID looks like shaper's rate
45# |______________________ Filename must begin from "cbq-"
46#
47#
48# Config file describes shaper parameters and source[destination]
49# address[port].
50# For example let's prepare /etc/sysconfig/cbq/cbq-1280.My_first_shaper:
51#
52# ----------8<---------------------
53# DEVICE=eth0,10Mbit,1Mbit
54# RATE=128Kbit
55# WEIGHT=10Kbit
56# PRIO=5
57# RULE=192.168.1.0/24
58# ----------8<---------------------
59#
60# This is minimal configuration, where:
61# DEVICE: eth0 - device where we do control our traffic
62# 10Mbit - REAL ethernet card bandwidth
63# 1Mbit - "weight" of :1 class (parent for all shapers for eth0),
64# as a rule of thumb weight=batdwidth/10.
65# 100Mbit adapter's example: DEVICE=eth0,100Mbit,10Mbit
66# *** If you want to build more than one shaper per device it's
67# enough to describe bandwidth and weight once - cbq.init
68# is smart :) You can put only 'DEVICE=eth0' into cbq-*
69# config file for eth0.
70#
71# RATE: Shaper's speed - Kbit,Mbit or bps (bytes per second)
72#
73# WEIGHT: "weight" of shaper (CBQ class). Like for DEVICE - approx. RATE/10
74#
75# PRIO: shaper's priority from 1 to 8 where 1 is the highest one.
76# I do always use "5" for all my shapers.
77#
78# RULE: [source addr][:source port],[dest addr][:dest port]
79# Some examples:
80# RULE=10.1.1.0/24:80 - all traffic for network 10.1.1.0 to port 80
81# will be shaped.
82# RULE=10.2.2.5 - shaper works only for IP address 10.2.2.5
83# RULE=:25,10.2.2.128/25:5000 - all traffic from any address and port 25 to
84# address 10.2.2.128 - 10.2.2.255 and port 5000
85# will be shaped.
86# RULE=10.5.5.5:80, - shaper active only for traffic from port 80 of
87# address 10.5.5.5
88# Multiple RULE fields per one config file are allowed. For example:
89# RULE=10.1.1.2:80
90# RULE=10.1.1.2:25
91# RULE=10.1.1.2:110
92#
93# *** ATTENTION!!!
94# All shapers do work only for outgoing traffic!
95# So, if you want to build bidirectional shaper you must set it up for
96# both ethernet card. For example let's build shaper for our linux box like:
97#
98# --------- 192.168.1.1
99# BACKBONE -----eth0-| linux |-eth1------*[our client]
100# ---------
101#
102# Let all traffic from backbone to client will be shaped at 28Kbit and
103# traffic from client to backbone - at 128Kbit. We need two config files:
104#
105# ---8<-----/etc/sysconfig/cbq/cbq-28.client-out----
106# DEVICE=eth1,10Mbit,1Mbit
107# RATE=28Kbit
108# WEIGHT=2Kbit
109# PRIO=5
110# RULE=192.168.1.1
111# ---8<---------------------------------------------
112#
113# ---8<-----/etc/sysconfig/cbq/cbq-128.client-in----
114# DEVICE=eth0,10Mbit,1Mbit
115# RATE=128Kbit
116# WEIGHT=10Kbit
117# PRIO=5
118# RULE=192.168.1.1,
119# ---8<---------------------------------------------
120# ^pay attention to "," - this is source address!
121#
122# Enjoy.