Project

General

Profile

Ericsson RBS2000 GPRS » History » Version 9

dexter, 04/04/2023 09:58 AM

1 1 laforge
h1. Ericsson RBS2000 GPRS
2
3 4 laforge
{{>toc}}
4
5 9 dexter
This page collects some information regarding Ericsson RBS2000 GPRS support. This page is intended as an addition to
6
the [[OsmoBSC:]] and [[OsmoPCU:]] user manual.
7 1 laforge
8 9 dexter
h1. Test setup
9 1 laforge
10 9 dexter
In the following we describe a minimal test setup that can be used for development or evaluation. The core network side
11
of the test network is made of standard Osmocom components with standard configurations, which we will not discuss any
12
further here. (For more information in core components, see [[Cellular Network Infrastructure:]]). The RAN network side
13
consists of an Ericsson RBS BTS that is connected to [[OsmoBSC:]]. [[OsmoMGW:]] and [[OsmoPCU:]] run in co-location to
14
OsmoBSC. In the following we will focus on the configuration of OsmoPCU and OsmoBSC (in co-location).
15 1 laforge
16 9 dexter
{{graphviz_link()
17
digraph G {
18
    rankdir = LR;
19
    subgraph cluster_RAN {
20
        BTS [label="Ericsson RBS"];
21
        BSC [label="OsmoBSC", color=red,];
22
        MGW_RAN [label="OsmoMGW"];
23
        PCU [color=red, label="OsmoPCU"];	
24
        label = "RAN";
25
26
	{ rank=same MGW_RAN PCU BSC }
27
    }
28
    subgraph cluster_CN {
29
        MSC [label="OsmoMSC"];
30
        MGW_CN [label="OsmoMGW"];
31
        SGSN [label="OsmoSGSN"];
32
        label = "CN";
33
    }
34
    BTS -> BSC [label="Abis/E1"];
35
    BTS -> PCU [label="TRAU/E1"];
36
    BTS -> MGW_RAN [label="TRAU/E1"];
37
38
    MGW_RAN -> MGW_CN [label="RTP"];
39
    BSC -> MSC [label="AoIP"];    
40
    PCU -> SGSN [label="Gb"];
41
    BSC -> MGW_RAN [label="MGCP"];
42
    BSC -> PCU [label="pcu_sock"];
43
}
44
}}
45
46
h2. Differences to IP based Osmocom RAN
47
48
An Osmocom RAN is usually built using IP based base stations with integrated PCU. In those BTSs the PCU runs in
49
co-location to the BTS process. Also all connections towards the BTS are IP based. When using Ericsson RBS2000/RBS6000
50
base stations the connection towards the BTS is E1/TDM based. Also those BTSs do not include an integrated PCU, so the
51
PCU must run in co-location to the BSC. This is the fundamental architectural difference in the RAN setup that has to
52
be taken into account.
53
54
h2. BSC configuration
55
56
h3. E1 line
57
58
The link towards the BTS is an E1 line. The configuration is straight forward but it should be pointed out that the
59
E1 line number (0 in this example) must be consistent with the E1 line configuration of the PCU. The reason for this
60
is that the line number is used to identify lines on the BSC and the PCU side, so they must match up.
61
62
<pre>
63
e1_input
64
 e1_line 0 driver dahdi
65
 e1_line 0 port 2
66
</pre>
67
68
h3. Interface switch (IS)
69
70
For GPRS/EGPRS an Ericsson RBS2000/RBS6000 provides two interfaces. The first and older interface is a classic 16kbps
71
subslot based interface and supports only classic GPRS with CS1 and CS2. The second and more recent interface uses
72
full 64kbps E1 timeslots and offers full EGPRS support. Even though OsmoPCU and OsmoBSC support both interfaces, we
73
we will only focus on the 64kbps interface here.
74
75
The exact BTS type we use is a DUG 20 01, with an RRUS 02 B3 TRU. In the attached config file we configure the Interface
76
switch (IS) so that it points at the 64kbps interface TRU (first TRX only).
77
78
<pre>
79
bts 0
80
  is-connection-list add 4 712 36
81
</pre>
82
83
(For details on the IS configuration, see section "Configuring Ericsson RBS Interface Switch (IS)" in OsmoBSC User Manual)
84
85
h3. Channels
86
87
The BTS is configured to provide 5 TCH/F voice channels and one PDCH channel. The timeslot
88
number of the PDCH is randomly chosen. The PDCH channel is configured as TCH/F_TCH/H_SDCCH8_PDCH. This means that it is a
89
dynamic channel (osmocom style). This is due to the fact that the channel configuration in an Ericsson BTS is ipso facto
90
dynamic. The exact type of the channel is decided during channel activation.
91
92
<pre>
93
 trx 0
94
   rf_locked 0
95
   arfcn 875
96
   nominal power 42
97
   max_power_red 12
98
   rsl e1 line 0 timeslot 1 sub-slot full
99
   rsl e1 tei 0
100
   timeslot 0
101
    phys_chan_config CCCH
102
    hopping enabled 0
103
    e1 line 0 timeslot 1 sub-slot full
104
   timeslot 1
105
    phys_chan_config SDCCH8
106
    hopping enabled 0
107
    e1 line 0 timeslot 3 sub-slot full
108
   timeslot 2
109
    phys_chan_config TCH/F
110
    hopping enabled 0
111
    e1 line 0 timeslot 4 sub-slot full
112
   timeslot 3
113
    phys_chan_config TCH/F
114
    hopping enabled 0
115
    e1 line 0 timeslot 5 sub-slot full
116
   timeslot 4
117
    phys_chan_config TCH/F_TCH/H_SDCCH8_PDCH
118
    hopping enabled 0
119
    e1 line 0 timeslot 6 sub-slot full
120
   timeslot 5
121
    phys_chan_config TCH/F
122
    hopping enabled 0
123
    e1 line 0 timeslot 7 sub-slot full
124
   timeslot 6
125
    phys_chan_config TCH/F
126
    hopping enabled 0
127
    e1 line 0 timeslot 8 sub-slot full
128
   timeslot 7
129
    phys_chan_config TCH/F
130
    hopping enabled 0
131
    e1 line 0 timeslot 9 sub-slot full
132
</pre>
133
134
Since we make use of the 64kbps TRU interface. We must configure the sub-slots to use the full bandwidth of the E1
135
timeslot. The timeslots carrying voice traffic will still use an 16kbps I.460 timeslot, which is always the first
136
subslot. The remaining three subslots remain unused. This is to be compatible to existing MGWs that will naturally
137
use a 16kbps for voice. In this configuration OsmoMGW will be instructed by OsmoBSC accordingly. There is no
138
specific configuration in OsmoMGW required.
139
140
h3. PCU socket
141
142
When the PCU is co-located with the BTS it communicates directly with the BTS to handle channel requests, pagings,
143
and channel assignments. In the BSC co-located configuration, the PCU communicates with the BSC in the same way. It is
144
now the BSC's task to report channel requests and execute the paging requests and channel assignments ordered by the
145
PCU. The interface is the same Unix domain socket interface that is used in the BTS co-located configuration. It is
146
configured under the network node using the pcu-socket option.
147
148
<pre>
149
network
150
 pcu-socket /tmp/pcu_bts
151
</pre>
152
153
Since only one PCU instance runs in co-location to the BSC the PCU will serve multiple BTSs at a time. (Similar to an
154
MGW that also may serve multiple BTSs at once). OsmoPCU should be capable to serve multiple BTS at a time but the
155
current implementation (March 2023) has not seen much testing in this particular configuration yet, so it is likely
156
that there are still problems that require fixing.
157
158
159
h2. PCU configuration
160
161
h3. E1 line
162
163
Since OsmoBSC and OsmoPCU use the E1 implementation provided by libosmo-abis, the E1 configuration is exactly the
164
the same as in the BSC. Since (as mentioned above) the e1_line number is used to identify the E1 line through the
165
PCU socket interface, the E1 line number must match the E1 line number configured in the BSC.
166
167
<pre>
168
e1_input
169
 e1_line 0 driver dahdi
170
 e1_line 0 port 2
171
</pre>
172
173
h3. PCU Parameter
174
175
In the PCU itself no other parameters have to be configured. The configuration details (GPRS parameter, E1 timeslot,
176
E1 subslot etc.) are provided by the BSC through the PCU socket interface.
177
178
h3. Example configuration
179
180
The attached file (e1_egprs_testnetwork.tar) contains the OsmoBSC and OsmoBSC configuration files discussed above
181
along with all config files from all other network components. The files can be used as a starting point to reproduce
182
a working EGPRS setup using an Ericsson RBS2000/RBS6000 base station.
183
184
h1. Technical details
185
186 1 laforge
h2. PDCH timeslot configuration
187
188
It seems that in OM2000 all TCH (/F, /H, PDCH) are configued with a Combination "8", and no differentiation is made
189
190 9 dexter
The actual activation of the channel is expected via RSL.  So it's analogous to a RSL CHAN ACT for TCH/H or TCH/F, but
191
we also do this for a PDCH. In order to do so, we send a RSL CHAN ACT with Channel Number 0b11000 + the timeslot
192
number.  Deactivation works the same way.
193 1 laforge
194
h2. GPRS RACH requests
195
196 9 dexter
The BSC must identify the GPRS RACH requests (similar to osmo-bts currently) and pass them into the PCU.  This could
197
be done using the same pcu socket interface that already exists.
198 1 laforge
199 2 laforge
h2. GPRS paging
200
201 9 dexter
Thre's a RSL "Packet Paging Indication IE" (IEI = 0xF3) that the BSC can include when sending a paging request to the
202
BTS. It's currently not clear what this is used for and why it is required.
203 2 laforge
204
h2. TRAU frames
205
206 9 dexter
Classic GSM TRAU frames (for circuit switched voice) are transmitted on 16kBps sub-slots and are 39 octets (312 bits)
207
long. They thus occur every 19.5ms.  Four 16kbps sub-slots are multiplexed into a 64kbps E1 slots. For more information
208
see 3GPP TS 48.060.
209 1 laforge
210 3 laforge
Ericsson also introduces 64kbps TRAU frames (for higher EGPRS coding schemes).
211
212 9 dexter
The Synchronization of TRAU frames is based on a 16-bit all-zero field at the beginning of each TRAU frame (called the
213
T0 bits) followed by a single 1 bit (called the T1 bit).
214 7 dexter
215
A detailed description the TRAU frame format can also be found in the libosmo-abis code:
216
See also: https://gitea.osmocom.org/osmocom/libosmo-abis/src/branch/master/src/trau/trau_pcu_ericsson.c
217 3 laforge
218
219
h3. 16kBps sub-slots
220
221
h4. PCU-DATA.ind
222
223
This frame can be used by a CS-1 or CS-2 frame transmitted by the PCU, i.e. downlink.
224
225
|T|17|T0*16,T1*1|Sync Word|
226
|C|8|C1..C8|Control Bits (Frame Type, Time adjustmentValue,Uplink Frame Error)|
227
|PC|1|PC|Parity (C1..C8)|
228
|E|16|E1..E16|Codec Control, Uplink Channel Mode, Power Control|
229
|PE|1|PE|Parity (E1..E16)|
230
|D|273|D1..D273|Data bits|
231
|TA|4|TA1..TA4|Time Alignment|
232
233
h4. CCU-DATA.ind
234
235
This frame can be used by a CS-1 or CS-2 frame transmitted by the CCU, i.e. uplink.
236
237
h3. 64kBps slots
238
239
h4. PCU-DATA-64.ind
240
241
|T|65|T0*64,T1*1|Sync Word|
242
|D|48|D1..D48|Data bits|
243
|C|8|C1..C8|Control Bits|
244
|PC|1|PC|Parity (C1..C8)|
245
|E|36|E1..E36||
246
|PE|1|Parity (E1..E36)|
247
|S|21|S1..S21||
248
|D|1132|D1..D1132|Data bits|
249
|TA|16|TA1..TA16|Time Alignment bits|
250
|Total|1328|
251
252
h4. PCU-DATA-MCS9.ind
253 1 laforge
254
|T|17|T0*16,T1*1|Sync Word|
255 3 laforge
|D|48|D1..D48|Data bits|
256
|C|8|C1..C8|Control Bits|
257
|PC|1|PC|Parity (C1..C8)|
258
|E|9|E1..E9||
259
|PE|1|Parity (E1..E36)|
260
|D|1172|D49..D1228|Data bits|
261
|TA|16|TA1..TA16|Time Alignment bits|
262
|Total|1272|
263
264
h4. CCU-DATA-64.ind
265
266
|T|65|T0*64,T1*1|Sync Word|
267
|C|7|C1..C7|Control bits (FT, TAV)|
268
|PC|1|PC|Parity (C1..C7)|
269 9 dexter
|E|57|E1..E57|DBE, Codec Status, Receiver Level, Access Delay Deviation, Block Quality Measurement, Block Status Report,
270
Spare, MEAN_BEP, CV_BEP, Header Quality, Data Block Quality|
271 3 laforge
|PE|1|PE|Parity (E1..E57)|
272
|S|3|S1..S3|Spare (set to 1)|
273
|D|1138|D1..D1138|Data bits|
274
|TA|8|TA1..TA8|Time Alignment bits|
275
|Total|1280|
276
277
h4. CCU-DATA-MCS9.ind
278
279
|T|17|T0*16,T1*1|Sync Word|
280
|D|48|D1..D48|Data bits|
281
|C|7|C1..C7|Control bits|
282
|PC|1|PC|Parity (C1..C7)|
283
|E|23|E1..E23||
284
|PE|1|PE|Parity (E1..E23)|
285
|S|2|Spare|
286
|D|1165|D49..D1221|Data bits|
287
|TA|8|Time Alignment bits|
288
|Total|1272|
289
290
h4. CCU-SYNC-64.ind
291
292
Sent from CCU to PCU (uplink)
293
294
|T|17|T0*16+T1*1|Sync Word|
295
|C|8|C1..C8|Control bits (FT, TAV, DFE)|
296
|PC|1|PC|Parity (C1..C8)|
297
|E|1|E1|DBE (DownlinkBlockError)|
298
|PE|1|PE|Parity (E1)|
299
|D|44|D1..D44|Data bits|
300
|T|1|T1||
301
|D|55|D45..D99|Data bits|
302
|T|1|T1||
303
|D|1079|D100..D1178|Data bits (DPSEQ, DaFNu, DaFNd)|
304
|TA|8|TA1..TA8|Time Alignment bits|
305
|Total|1216|
306
307
h4. PCU-SYNC-64.ind
308
309
|T|65|T0*64+T1*1|Sync Word|
310
|C|8|C1..C8|Control|
311
|PC|1|Parity (C1..C8)|
312
|D|54|D1..D53|Data bits|
313
|T|1|T1||
314
|D|63||Data bits|
315
|T|1|T1||
316
|D|1071|..D1172|Data bits|
317
|TA|16|TA1..TA16|Time Alignment bits|
318
|Total|1280|
319 5 laforge
320 6 laforge
h2. Trau Procedures
321
322
h3. SYNC procedure
323
324
Whenever the uplink is idle, the CCU is sending CCU-SYNC.ind towards the PCU.  This frame includes:
325
* Time Adjustment Value
326
** 00: no change
327
** 01: delay 250us
328
** 10: advance 250us
329
* Downlink Frame Error: Set to '0' in case the CCU receives bad downlink frames from the PCU
330
** once we send valid frames in downlink, the bit should change to '1'
331
* Downlink Block Error: Set to '0' when a downlink block was not transmitted
332
* DPSEQ: ?
333
* afn_ul: Adjusted Frame Number Upliink
334
* afn_dl: Adjusted Frame Number Downlink
335
336 8 dexter
Whenever the downlink is idle, the PCU is sending PCU-SYNC.ind towards the CCU. This frame includes:
337 6 laforge
* Time Adjustment Value (see above)
338
* Uplink Frame Error: Set to '0' in case the PCU receives bad uplink frames from the CCU
339
* DPSEQ: PCU-internal counter which probably gets echo'ed back in uplink DPSEQ for the PCU to measure RTT?
340 1 laforge
* optional dss, dfn_u, dfn_ss, dfn_d and dls fields, ignored by PCU.
341 8 dexter
342
A detailed description of the synchronization procedure can be found in the libosmo-abis code:
343
https://gitea.osmocom.org/osmocom/libosmo-abis/src/branch/master/include/osmocom/trau/trau_pcu_ericsson.h
Add picture from clipboard (Maximum size: 48.8 MB)