Project

General

Profile

Nokia Site family » History » Version 11

Anonymous, 02/19/2016 10:47 PM

1 1
OpenBSC is currently supporting the Site family of Nokia BTSes.
2
3
'''Things that work:'''
4
5 11
 - Nokia InSite and MetroSite units are proven to be working, UltraSite is working
6 2
 - Full Rate and Enhanced Full Rate voice calls (MO & MT)
7 1
 - SMS (MO & MT)
8
 - Cell reselection
9 2
 - Handover (please see this patch: [http://cgit.osmocom.org/openbsc/commit/?id=7d8fa3418ff6c589eba10e562da8b96995e19f7a] )
10 1
11 6
'''Things that do not work:'''
12
13
 - HR calls (the TRAU framer for E1 is only implementing 16kbit channels, HR needs 8kbit)
14
 - GPRS, EDGE (no E1 based PCU implementation, probably never will)
15
16 1
'''Handover:'''
17
18
The OpenBSC side of the handover logic works quiet well. But at the moment, there is a slight problem with the Nokia units. The handover decision is made correctly, the GSM phone is commanded to switch to the new channel on the new BTS, which the phone does. But despite the channel release is sent, the old channel never get released, and this leads to a Radio Link Failure.
19 2
20
Update: it seems that the root cause of the previous handover failure is that the InSite BTSes (probably others too) are not sending the channel release ACK to the BSC after the old channel release is requested by the BSC. Andreas Eversberg added a patch which overcomes this problem by implicating the missing ACK, so the BSC can continue and finish the handover process. This can be enbaled by adding the next line to the BTS part of the config file:
21
22
{{{
23
nokia_site no-local-rel-conf 1
24
}}}
25
26
This fix is tested on Nokia InSite and MetroSite units, all of them are performing handovers normally.
27
28
For more info, please see this patch: [http://cgit.osmocom.org/openbsc/commit/?id=7d8fa3418ff6c589eba10e562da8b96995e19f7a]
29 1
30
'''E1 cards:'''
31
32
The original Nokia support was written for HFC-E1 and mISDN. The Site can only be interfaced via traditional E1 lines (no IP ABIS support for these old units). It is also possible to use a DAHDI card to interface with the BTS. For this you have to use the following configuration in /etc/dahdi/system.conf:
33
34
{{{
35
span=1,0,0,ccs,hdb3,crc4	
36
bchan=1-31
37
}}}
38
39
Unlike in traditional E1 communication, we are using CCS signalling. For every signalling and traffic channel between the BTS and the BSC, we are using dedicated timeslots. Because of that, we are no longer need any shared signalling channel on the E1 line (e.g. D channel on timeslot 16.
40
41
'''Example config file for an 1800MHz Nokia InSite unit:'''
42
43
44
{{{
45
!
46
! OpenBSC configuration saved from vty
47
!   !
48
password foo
49
!
50
line vty
51
 no login
52
!
53
e1_input
54
 e1_line 0 driver dahdi
55
 # e1_line 0 port 0
56
 log file /root/900_nokia.log
57
 logging filter all 1
58
 logging color 1
59
 logging timestamp 1
60
 
61
network
62
 network country code 1
63
 mobile network code 1
64
 short name OpenBSC
65
 long name OpenBSC 
66
 neci 0
67
 rrlp mode none
68
 mm info 1
69
 handover 0
70
 handover window rxlev averaging 5
71
 handover window rxqual averaging 1
72
 handover window rxlev neighbor averaging 5
73
 handover power budget interval 6
74
 handover power budget hysteresis 3
75
 handover maximum distance 9999
76
 timer t3101 3
77
 timer t3103 5
78
 timer t3105 20
79
 timer t3107 10
80
 timer t3109 15
81
 timer t3111 2
82
 timer t3113 10
83
 timer t3115 0
84
 timer t3117 0
85
 timer t3119 0
86
 timer t3141 0
87
 timer t3122 10
88
89
 bts 0
90
  type nokia_site
91
  band GSM1800
92
  cell_identity 1
93
  location_area_code 1
94
  base_station_id_code 63
95
  training_sequence_code 7
96
  ms max power 12
97
  cell reselection hysteresis 4
98
  periodic location update 10
99
  nokia_site skip-reset 0
100 3
  nokia_site no-local-rel-conf 1
101 1
  
102
  oml e1 line 0 timeslot 8 sub-slot full
103
  oml e1 tei 1
104
  
105
  trx 0
106
   arfcn 885
107
   nominal power 18
108
   max_power_red 10
109
   rsl e1 line 0 timeslot 7 sub-slot full
110
   rsl e1 tei 1
111
112
113
    timeslot 0
114
     phys_chan_config CCCH+SDCCH4
115
     e1 line 0 timeslot 5 sub-slot 0
116
117
    timeslot 1
118
     phys_chan_config SDCCH8
119
     e1 line 0 timeslot 5 sub-slot 1
120
121
    timeslot 2
122
     phys_chan_config TCH/F
123
     e1 line 0 timeslot 5 sub-slot 2
124
125
    timeslot 3
126
     phys_chan_config TCH/F
127
     e1 line 0 timeslot 5 sub-slot 3
128
129
    timeslot 4
130
     phys_chan_config TCH/F
131
     e1 line 0 timeslot 6 sub-slot 0
132
133
    timeslot 5
134
     phys_chan_config TCH/F
135
     e1 line 0 timeslot 6 sub-slot 1
136
137
    timeslot 6
138
     phys_chan_config TCH/F
139
     e1 line 0 timeslot 6 sub-slot 2
140
141
    timeslot 7
142
     phys_chan_config TCH/F
143
     e1 line 0 timeslot 6 sub-slot 3
144
145
}}}
146
147
'''LMP cable pinout for InSite units:'''
148
149
'''LMP cable pinout for MetroSite units:'''
150
151 9
[[Image(http://openbsc.osmocom.org/trac/raw-attachment/wiki/Nokia_Site_family/MetroSite_LMP_connector.png)]]
152 7
153 1
'''Tips and tricks for Site family and OpenBSC:'''
154 4
155
'''RESET Timer:'''
156
157
The Nokia part of the OpenBSC code contains a fixed reset timer, which is set to 15 seconds by default. Every time you start a BTS, OpenBSC first resets (actually restarts) the unit, and only configures and starts the BTS after that. The reason behind this, is if you change the radio parameters of the BTS (ARFCN, CID, BSIC, TSC, TX power etc.), these parameters are not going to change on the BTS if this resets is skipped.
158
159
This 15 seconds is working well in general, but in some cases you need to raise this parameter (eg. to force OpenBSC to wait more for the BTS to restart). For example: if you use more than one unit on the same E1 (InSite units daisy chained via the internal HDSL interface), or MetroSite units daisy chained via the E1 cross connector TRE unit.
160
161
This parameter can be modified in the source code of OpenBSC at openbsc/openbsc/src/libbsc/bts_nokia_site.c
162
163
{{{
164
#define RESET_INTERVAL      15, 0	/* 15 seconds */
165
}}}
166
167
Try 20 or 23 instead of 15. Example: for a HDSL cascaded two BTS InSite setup, I needed to raise this parameter to 20 seconds.
168
169
After the modification of this parameter, you need to recompile OpenBSC!
170 5
171
Sometimes even the reset itself can cause problems (multi-BTS setup, MetroSite setup). You can disable this RESET by adding the following line to the BTS part of the OpenBSC config file:
172
173
{{{
174
nokia_site skip-reset 1
175
}}}
176
177
Do not forget, that if you use the above parameter, every time you change the radio parameters of the BTS, you need to restart the BTS by powercycling  it, wait for it to start up, then start OpenBSC!
178 10
179
'''Segfault crash during BTS init:'''
180
181
This problem is brought to daylight, but not caused by the following patch:
182
[http://cgit.osmocom.org/libosmocore/commit/?id=f5a079f739c57d8be7c59149fd45475c402a45fc]
183
184
The easy solution (but not fixing!) of this problem is to simply comment out the part which was added by this patch:
185
186
libosmocore/src/gsm/lapd_core.c:
187
{{{
188
 	lapd_dl_reset(dl);
189
 	/* free history buffer list */
190
 	talloc_free(dl->tx_hist);
191
	dl->tx_hist = NULL;  <-- comment out this line!
192
}}}
193
194 1
After commenting out the above line, you need to recompile libosmocore, libosmo-abis and OpenBSC!
195 11
196
'''Running OpenBSC with Nokia UltraSite:'''
197
198
In order to run an UltraSIte BTS with OpenBSC, you need to set the ".n201" parameter to 260 for both isdn, abis and sat in libosmo-abis/src/input/lapd.c:
199
200
{{{
201
const struct lapd_profile lapd_profile_isdn = {
202
        .k              = LAPD_SET_K(7,7),
203
        .n200           = 3,
204
        .n201           = 260,                      <-- Modify this parameters to 260!
205
        .n202           = 3,
206
        .t200_sec       = 1,    .t200_usec      = 0,
207
        .t201_sec       = 1,    .t201_usec      = 0,
208
        .t202_sec       = 2,    .t202_usec      = 0,
209
        .t203_sec       = 10,   .t203_usec      = 0,
210
        .short_address  = 0
211
};
212
213
const struct lapd_profile lapd_profile_abis = {
214
        .k              = LAPD_SET_K(2,1),
215
        .n200           = 3,
216
        .n201           = 260,                       <-- Modify this parameters to 260!
217
        .n202           = 0, /* infinite */
218
        .t200_sec       = 0,    .t200_usec      = 240000,
219
        .t201_sec       = 1,    .t201_usec      = 0,
220
        .t202_sec       = 2,    .t202_usec      = 0,
221
        .t203_sec       = 10,   .t203_usec      = 0,
222
        .short_address  = 0
223
};
224
225
const struct lapd_profile lapd_profile_sat = {
226
        .k              = LAPD_SET_K(15,15),
227
        .n200           = 5,
228
        .n201           = 260,      <-- Modify this parameters to 260!
229
        .n202           = 5,
230
        .t200_sec       = 2,    .t200_usec      = 400000,
231
        .t201_sec       = 2,    .t201_usec      = 400000,
232
        .t202_sec       = 2,    .t202_usec      = 400000,
233
        .t203_sec       = 20,   .t203_usec      = 0,
234
        .short_address  = 1
235
};
236
237
}}}
238
239
After the modification, you need to recompile Libosmocore, Libosmo-Abis and OpenBSC! Note that with the above modification the support for other Site BTS-es (Insite, MetroSite) are not affected.
240
241
This is necessary because after OpenBSC issued the reset, during the BTS is restarting, actually the TRX software is not loaded. After the reset OpenBSC issues a "Use current version" command to the BTS which indicates to use the software from the local flash storge on the BOI card. The problem is that InSite and MetroSite units already load the TRX software when this command is being issued, but the UltrsSite only starts to load the TRX software when the "Use current version" is being issued to it. Because OpenBSC expects this to happens instantly, but with UltraSite the TRX software load can take another 60 seconds, the LAPD link will time out until the TRX software is being loaded, and OpenBSC will never bootstrap the TRX. With "n201" set to 260, this gives enough time to the LAPD link to not fail during that extra 60 seconds it takes to load the TRX software.
242
243
Of corse this is a nasty hack, and it is not the proper way to handle this situation. The Nokia related part should be aware that an UltraSite works like this by default, and it should wait with the first RSL lapd link activation another 60 seconds after the reset timer is expired and the "Use current version" command is sent. Maybe this will be implemented in the future, but until then, the above modification does work.
244
245
OpenBSC support for UltraSite tested with one TRX, TCH fullrate and TCH enhanced fullrate, MO and MT voice calls and SMS works as it should.
Add picture from clipboard (Maximum size: 48.8 MB)