blob: 6fc61c77b6c695947bfead18ad50af70fd5aa8a5 [file] [log] [blame]
Harald Welte4ff37fe2016-02-20 10:56:10 +01001== Configuring OsmoPCU
2
3Contrary to other network elements (like OsmoBSC, OsmoNITB), the
4OsmoPCU has a relatively simple minimum configuration.
5
6This is primarily because most of the PCU configuration happens
7indirectly from the BSC, who passes the configuation over A-bis OML via
8OsmoBTS and its PCU socket into OsmoPCU.
9
10A minimal OsmoPCU configuration file is provided below for your reference:
11
12.Example: Minimal OsmoPCU configuration file (`osmo-pcu.cfg`)
13----
14pcu
15 flow-control-interval 10 <1>
16 cs 2 <2>
17 alloc-algorithm dynamic <3>
18 alpha 0 <4>
19 gamma 0
20----
21<1> send a BSSGP flow-control PDU every 10 seconds
22<2> start a TBF with the initial coding scheme 2
23<3> dynamically chose between single-slot or multi-slot TBF allocations
24 depending on system load
25<4> disable MS power control loop
26
27However, there are plenty of tuning parameters for people interested to
28optimize PCU throughput or latency according to their requirements.
29
30=== Configuring the Coding Schemes and Rate Adaption
31
32The BSC includes a bit-mask of permitted [E]GPRS coding schemes as part
33of the A-bis OML configuration. This is passed from the BTS via the PCU
34socket into OsmoPCU.
35
36Some additional parameters can be set as described below.
37
38==== Initial Coding Scheme
39
40You can use the `cs <1-4> [<1-4>]` command at the `pcu` VTY config node
41to set the initial GPRS coding scheme to be used. The optional second
42value allows to specify a different initial coding scheme for uplink.
43
44==== Maximum Coding Scheme
45
46You can use the `cs max <1-4> [<1-4>]` command at the `pcu` VTY config
47node to set the maximum coding scheme that should be used as part of the
48rate adaption.
49
50==== Rate Adaption Error Thresholds
51
52You can use the `cs threshold <0-100> <0-100>` command at the `pcu` VTY
53config node to determine the upper and lower limit for the error rate
54percentage to use in the rate adaption. If the upper threshold is
55reached, a lower coding sheme is chosen, and if the lower threshold is
56reached, a higher coding scheme is chosen.
57
58==== Rate Adation Link Quality Thresholds
59
60You can use the `cs link-quality-ranges cs1 <0-35> cs2 <0-35> <0-35> cs3
61<0-35> <0-35> cs4 <0-35>` command at the `pcu` VTY config node to tune
Jonathan Brielmaier58721eb2016-05-25 15:01:11 +020062the link quality ranges for the respective coding schemes.
Harald Welte4ff37fe2016-02-20 10:56:10 +010063
64==== Data Size based CS downgrade Threshold
65
66You can use the `cs downgrade-threshold <1-10000>` command at the `pcu`
67VTY config node to ask the PCU to down-grade the coding scheme if less
68than the specified number of octets are left to be transmitted.
69
70=== Miscellaneous Configuration / Tuning Parameters
71
72==== Downlink TBF idle time
73
74After a down-link TBF is idle (all data in the current LLC downlink
Philipp452b5332017-01-18 12:39:56 +010075queue for the MS has been transmitted), we can keep the TBF established
Harald Welte4ff37fe2016-02-20 10:56:10 +010076for a configurable time. This avoids having to go through a new one or
77two phase TBF establishment once the next data for downlink arrives.
78
79You can use the `dl-tbf-idle-time <1-5000>` to specify that time in
80units of milli-seconds. The default is 2 seconds.
81
82==== MS idle time
83
84Using the `ms-idle-time <1-7200>` command at the `pcu` VTY config node
85you can configure the number of seconds for which the PCU should keep
86the MS data structure alive before releasing it if there are no active
87TBF for this MS.
88
89The OsmoPCU default value is 60 seconds, which is slightly more than
90what 3GPP TS 24.008 recommends for T3314 (44s).
91
92The MS data structure only consumes memory in the PCU and does not
93require any resources of the air interface.
94
95==== Forcing two-phase access
96
Philipp452b5332017-01-18 12:39:56 +010097If the MS is using a single-phase access, you can still force it to
Harald Welte4ff37fe2016-02-20 10:56:10 +010098use a two-phase access using the `two-phase-access` VTY configuration
99command at the `pcu` VTY config node.
100
101=== Configuring BSSGP flow control
102
103BSSGP between SGSN and PCU contains a two-level nested flow control
104mechanism:
105
106. one global flow control instance for the overall (downlink) traffic
107 from the SGSN to this PCU
108. a per-MS flow control instance for each individual MS served by this
109 PCU
110
111Each of the flow control instance is implemented as a TBF (token bucket
112filter).
113
114==== Normal BSSGP Flow Control Tuning parameters
115
116You can use the following commands at the `pcu` VTY config node to tune
Jonathan Brielmaier58721eb2016-05-25 15:01:11 +0200117the BSSGP flow control parameters:
Harald Welte4ff37fe2016-02-20 10:56:10 +0100118
119`flow-control-interval <1-10>`::
120 configure the interval (in seconds) between subsequent flow
121 control PDUs from PCU to SGSN
122`flow-control bucket-time <1-65534>`::
123 set the target downlink maximum queueing time in centi-seconds.
124 The PCU will attempt to adjust the advertised bucket size to match this
125 target.
126
127==== Extended BSSGP Flow Control Tuning parameters
128
129There are some extended flow control related parameters at the `pcu` VTY
130config node that override the automatic flow control as specified in the
131BSSGP specification. Use them with care!
132
133`flow-control force-bvc-bucket-size <1-6553500>`::
134 force the BVC (global) bucket size to the given number of octets
135`flow-control force-bvc-leak-rate <1-6553500>`::
136 force the BVC (global) bucket leak rate to the given number of bits/s
137`flow-control force-ms-bucket-size <1-6553500>`::
138 force the per-MS bucket size to the given number of octets
139`flow-control force-ms-leak-rate <1-6553500>`::
140 force the per-MS bucket leak rate to the given number of bits/s
141
142
143=== Configuring LLC queue
144
145The downlink LLC queue in the PCU towards the MS can be tuned with a
146variety of parameters at the `pcu` VTY config node, depending on your
147needs.
148
149`queue lifetime <1-65534>`::
150 Each downlink LLC PDU is assigned a lifetime by the SGSN, which
151 is respected by the PDU *unless* you use this command to
152 override the PDU lifetime with a larger value (in centi-seconds)
153`queue lifetime infinite`::
154 Never drop LLC PDUs, i.e. give them an unlimited lifetime.
155`queue hysteresis <1-65535>`::
156 When the downlink LLC queue is full, the PCU starts dropping
157 packets. Using this parameter, we can set the lifetime
158 hysteresis in centi-seconds, i.e. it will continue discarding
159 until "lifetime - hysteresis" is reached.
160`queue codel`::
161 Use the 'CoDel' (Controlled Delay) scheduling algorithm, which
162 is designed to overcome buffer bloat. It will use a default
163 interval of 4 seconds.
164`queue codel interval <1-1000>`::
165 Use the 'CoDel' (Controlled Delay) scheduling algorithm, which
166 is designed to overcome buffer bloat. Use the specified
167 interval in centi-seconds.
168`queue idle-ack-delay <1-65535>`::
169 Delay the request for an ACK after the last downlink LLC frame
170 by the specified amount of centi-seconds.
171
172
173=== Configuring MS power control
174
175GPRS MS power control works completely different than the close MS power
176control loop in circuit-switched GSM.
177
178Rather than instructing the MS constantly about which transmit power to
179use, some parameters are provided to the MS by which the MS-based power
180control algorithm is tuned.
181
182See 3GPP TS 05.08 for further information on the algorithm and the
183parameters.
184
185You can set those parameters at the `pcu` VTY config node as follows:
186
187`alpha <0-10>`::
Jonathan Brielmaier58721eb2016-05-25 15:01:11 +0200188 Alpha parameter for MS power control in units of 0.1.
Harald Welte4ff37fe2016-02-20 10:56:10 +0100189 Make sure to set the alpha value at System Information 13 (in
190 the BSC), too!
191`gamma <0-62>`::
192 Set the gamma parameter for MS power control in units of dB.
193
194
195=== Enabling EGPRS
196
197If you would like to test the currently (experimental) EGPRS support of
198OsmoPCU, you can enable it using the `egprs` command at the `pcu` VTY
199config node.
200
201WARNING: EPGRS functionality is highly experimental at the time of this
202writing. Please only use if you actively would like to participate in
203the OsmoPCU EGPRS development and/or testing. You will also need an
204EGPRS capable OsmoBTS+PHY, which means `osmo-bts-sysmo` or
205`osmo-bts-litecell15` with their associated PHY.