1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
.. _shaper:
[shaper]
========
Accel-ppp support many ways customisation rate-limit. Also limiting clients bandwidths sometimes called as QoS (Quality of Service), but QoS has more possibilities. For enable rate-liniter, we can sets ``shaper`` in section ``[modules]``.
Config overview
---------------
**attr=name**
By default: ``attr=Filter-Id``.
Specifies which radius attribute contains rate information. RADIUS server can transmit ``Filter-Id=1000``, means 1000Kbit both up-stream and down-stream rate or ``Filter-Id=2000/3000``, means 2000Kbit down-stream rate and 3000Kbit up-stream rate.
**attr-up=name**
By default is not defined.
Specifies which radius attribute contains rate information for **upstream**. Often used if needs separate *upstream* and *downstream* attributes.
**attr-down=name**
By default is not defined.
Specifies which radius attribute contains rate information for **downstream**. Often used if needs separate *upstream* and *downstream* attributes.
**vendor=name**
By default is not defined.
Specifies vendor name for support attributes of other vendors like *Cisco-AVPair* or *Mikrotik*.
Example for Cisco:
.. code-block:: sh
vendor=Cisco
attr=Cisco-AVPair
Example for Mikrotik:
.. code-block:: sh
vendor=Mikrotik
attr=Mikrotik-Rate-Limit
**burst-factor=n**
By default is not defined.
Burst will be calculated as rate multiply burst-factor. Common ``burst-factor`` for upstream calculated as ``burst-factor*10``.
**up-burst-factor=n**
By default is ``up-burst-factor=1``
Specifies burst factor for **upstream**.
**down-burst-factor=n**
By default is ``down-burst-factor=0.1``
Specifies burst factor for **downstream**.
**cburst=n**
By default is ``cburst=1534``
Specifies amount of bytes that can be burst at 'infinite' speed. Recommendation: cburst should be equal to at most one average packet
**latency=n**
By default is ``latency=0.05``
Specifies latency (in milliseconds) parameter of tbf qdisc which set maximum amount of time a packet can sit in the TBF.
**mpu=n**
By default is ``mpu=0``
Specifies mpu parameter in bytes of tbf qdisc and policer. Determines the minimal token usage for a packet.
**r2q=n**
By default is ``r2q=10``
Specifies r2q parameter of root htb qdisc.
**quantum=n**
By default is ``quantum=1500``
Specifies quantum parameter of htb classes. Amount of bytes a flow is allowed to dequeue before the scheduler moves to the next class.
**moderate-quantum=1|0**
By default is disabled ``moderate-quantum=0``
If fixed quantum is not specified and this option is specified then shaper module will check for quantum value is valid (in range 1000-200000).
**fwmark=n**
By default is disabled: ``fwmark=0``
Specifies the fwmark for traffic that won't be passed through shaper.
**up-limiter=police|htb**
By default is: ``up-limiter=police``
Specifes upstream rate limiting method.
**down-limiter=tbf|htb**
By default is: ``down-limiter=tbf``
Specifies downstream rate limiting method.
**ifb=ifb_ifname**
By default ``ifb=ifb0``
Specifies name of ifb interface, used only for ``up-limiter=htb``
**leaf-qdisc=qdisc parameters**
By default is not defined.
In case if htb is used as up-limiter or down-limiter specified leaf qdisc can be attached automaticaly. At present *sfq* and *fq_codel qdiscs* are implemented. *CoDel* (the name comes from "controlled delay") is Active Queue Manager. Parameters are same as for tc:
``sfq [limit NUMBER] [perturb SECS] [quantum BYTES]``
``fq_codel [limit PACKETS] [flows NUMBER] [target TIME] [interval TIME] [quantum BYTES] [[no]ecn]``
**rate-multiplier=n**
By default is ``rate-multiplier=1``
Due to accel-ppp operates with rates in kilobit basis if you send rates in different basis then you can use this option to bring your values to kilobits. For ``vendor=Mikrotik`` often sets ``rate-multiplier=0.001``
**rate-limit=downstream/upstream**
By default is not defined.
Specifies default speed if there are no radius attributes.
**time-range=range_id,time_start-time_end**
By default is not defined.
Specifies time ranges for automatic rate reconfiguration. You can specify multiple such options.
Configuration example:
.. code-block:: none
[shaper]
time-range=1,1:00-3:00
time-range=2,3:00-5:00
time-range=3,5:00-7:00
The first number is time range identifier. To define a specific rates uses following format of radius attributes: range-id,rate, range-id,down-rate/up-rate or cisco-like.
As an example:
.. code-block:: none
Filter-Id=1000
Filter-Id=1,2000
Filter-Id=2,3000
Filter-Id=3,4000
That means: set 1000Kbit by default, set 2000Kbit in time range 1, set 3000Kbit in time range 2 and set 4000Kbit in time range 3.
You have to pass multiple Filter-Id attributes to utilize this functionality.
Examples
--------
Fiter-Id
--------
Cisco AVPair
^^^^^^^^^^^^^^
Mikrotik
^^^^^^^^
|