Project

General

Profile

Nokia Site family » History » Version 14

csaba, 02/19/2016 10:47 PM

1 1 csaba
OpenBSC is currently supporting the Site family of Nokia BTSes.
2 1 csaba
3 1 csaba
'''Things that work:'''
4 1 csaba
5 12 csaba
 - Nokia InSite ,MetroSite and UltraSite units are proven to be working, please see the detailed infos below
6 2 csaba
 - Full Rate and Enhanced Full Rate voice calls (MO & MT)
7 1 csaba
 - SMS (MO & MT)
8 1 csaba
 - Cell reselection
9 1 csaba
 - Handover (please see this patch: [http://cgit.osmocom.org/openbsc/commit/?id=7d8fa3418ff6c589eba10e562da8b96995e19f7a] )
10 13 csaba
 - Multiple BTS: two InSite and one MetroSite units are connected to OpenBSC on the same E1 line, everything worked as it should
11 1 csaba
12 6 csaba
'''Things that do not work:'''
13 6 csaba
14 6 csaba
 - HR calls (the TRAU framer for E1 is only implementing 16kbit channels, HR needs 8kbit)
15 1 csaba
 - GPRS, EDGE (no E1 based PCU implementation, probably never will)
16 12 csaba
 - Multi-TRX (multiple RSL connections) not tested, OpenBSC supports multi-TRX in general
17 12 csaba
 - Hopping not tested: this is feature primarily depends on the multi-trx support, OpenBSC supports hopping in general
18 6 csaba
19 1 csaba
'''Handover:'''
20 1 csaba
21 1 csaba
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.
22 2 csaba
23 2 csaba
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:
24 2 csaba
25 2 csaba
{{{
26 2 csaba
nokia_site no-local-rel-conf 1
27 2 csaba
}}}
28 2 csaba
29 2 csaba
This fix is tested on Nokia InSite and MetroSite units, all of them are performing handovers normally.
30 2 csaba
31 2 csaba
For more info, please see this patch: [http://cgit.osmocom.org/openbsc/commit/?id=7d8fa3418ff6c589eba10e562da8b96995e19f7a]
32 1 csaba
33 1 csaba
'''E1 cards:'''
34 1 csaba
35 1 csaba
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:
36 1 csaba
37 1 csaba
{{{
38 1 csaba
span=1,0,0,ccs,hdb3,crc4	
39 1 csaba
bchan=1-31
40 1 csaba
}}}
41 1 csaba
42 1 csaba
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.
43 1 csaba
44 1 csaba
'''Example config file for an 1800MHz Nokia InSite unit:'''
45 1 csaba
46 1 csaba
47 1 csaba
{{{
48 1 csaba
!
49 1 csaba
! OpenBSC configuration saved from vty
50 1 csaba
!   !
51 1 csaba
password foo
52 1 csaba
!
53 1 csaba
line vty
54 1 csaba
 no login
55 1 csaba
!
56 1 csaba
e1_input
57 1 csaba
 e1_line 0 driver dahdi
58 1 csaba
 # e1_line 0 port 0
59 1 csaba
 log file /root/900_nokia.log
60 1 csaba
 logging filter all 1
61 1 csaba
 logging color 1
62 1 csaba
 logging timestamp 1
63 1 csaba
 
64 1 csaba
network
65 1 csaba
 network country code 1
66 1 csaba
 mobile network code 1
67 1 csaba
 short name OpenBSC
68 1 csaba
 long name OpenBSC 
69 1 csaba
 neci 0
70 1 csaba
 rrlp mode none
71 1 csaba
 mm info 1
72 1 csaba
 handover 0
73 1 csaba
 handover window rxlev averaging 5
74 1 csaba
 handover window rxqual averaging 1
75 1 csaba
 handover window rxlev neighbor averaging 5
76 1 csaba
 handover power budget interval 6
77 1 csaba
 handover power budget hysteresis 3
78 1 csaba
 handover maximum distance 9999
79 1 csaba
 timer t3101 3
80 1 csaba
 timer t3103 5
81 1 csaba
 timer t3105 20
82 1 csaba
 timer t3107 10
83 1 csaba
 timer t3109 15
84 1 csaba
 timer t3111 2
85 1 csaba
 timer t3113 10
86 1 csaba
 timer t3115 0
87 1 csaba
 timer t3117 0
88 1 csaba
 timer t3119 0
89 1 csaba
 timer t3141 0
90 1 csaba
 timer t3122 10
91 1 csaba
92 1 csaba
 bts 0
93 1 csaba
  type nokia_site
94 1 csaba
  band GSM1800
95 1 csaba
  cell_identity 1
96 1 csaba
  location_area_code 1
97 1 csaba
  base_station_id_code 63
98 1 csaba
  training_sequence_code 7
99 1 csaba
  ms max power 12
100 1 csaba
  cell reselection hysteresis 4
101 1 csaba
  periodic location update 10
102 1 csaba
  nokia_site skip-reset 0
103 3 csaba
  nokia_site no-local-rel-conf 1
104 1 csaba
  
105 1 csaba
  oml e1 line 0 timeslot 8 sub-slot full
106 1 csaba
  oml e1 tei 1
107 1 csaba
  
108 1 csaba
  trx 0
109 1 csaba
   arfcn 885
110 1 csaba
   nominal power 18
111 1 csaba
   max_power_red 10
112 1 csaba
   rsl e1 line 0 timeslot 7 sub-slot full
113 1 csaba
   rsl e1 tei 1
114 1 csaba
115 1 csaba
116 1 csaba
    timeslot 0
117 1 csaba
     phys_chan_config CCCH+SDCCH4
118 1 csaba
     e1 line 0 timeslot 5 sub-slot 0
119 1 csaba
120 1 csaba
    timeslot 1
121 1 csaba
     phys_chan_config SDCCH8
122 1 csaba
     e1 line 0 timeslot 5 sub-slot 1
123 1 csaba
124 1 csaba
    timeslot 2
125 1 csaba
     phys_chan_config TCH/F
126 1 csaba
     e1 line 0 timeslot 5 sub-slot 2
127 1 csaba
128 1 csaba
    timeslot 3
129 1 csaba
     phys_chan_config TCH/F
130 1 csaba
     e1 line 0 timeslot 5 sub-slot 3
131 1 csaba
132 1 csaba
    timeslot 4
133 1 csaba
     phys_chan_config TCH/F
134 1 csaba
     e1 line 0 timeslot 6 sub-slot 0
135 1 csaba
136 1 csaba
    timeslot 5
137 1 csaba
     phys_chan_config TCH/F
138 1 csaba
     e1 line 0 timeslot 6 sub-slot 1
139 1 csaba
140 1 csaba
    timeslot 6
141 1 csaba
     phys_chan_config TCH/F
142 1 csaba
     e1 line 0 timeslot 6 sub-slot 2
143 1 csaba
144 1 csaba
    timeslot 7
145 1 csaba
     phys_chan_config TCH/F
146 1 csaba
     e1 line 0 timeslot 6 sub-slot 3
147 1 csaba
148 1 csaba
}}}
149 1 csaba
150 1 csaba
'''LMP cable pinout for InSite units:'''
151 1 csaba
152 1 csaba
'''LMP cable pinout for MetroSite units:'''
153 1 csaba
154 9 csaba
[[Image(http://openbsc.osmocom.org/trac/raw-attachment/wiki/Nokia_Site_family/MetroSite_LMP_connector.png)]]
155 7 csaba
156 1 csaba
'''Tips and tricks for Site family and OpenBSC:'''
157 4 csaba
158 4 csaba
'''RESET Timer:'''
159 4 csaba
160 14 csaba
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.
161 4 csaba
162 14 csaba
The default 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.
163 4 csaba
164 14 csaba
This parameter can be modified by adding the following to your OpenBSC config file:
165 4 csaba
166 4 csaba
{{{
167 14 csaba
nokia_site bts-reset-timer 15
168 4 csaba
}}}
169 4 csaba
170 14 csaba
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. For 2 TRX MetroSite it needs at least 25 seconds. For UltraSIte setups it needs 60 seconds.
171 5 csaba
172 5 csaba
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:
173 5 csaba
174 5 csaba
{{{
175 5 csaba
nokia_site skip-reset 1
176 5 csaba
}}}
177 5 csaba
178 5 csaba
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!
179 10 csaba
180 10 csaba
'''Segfault crash during BTS init:'''
181 10 csaba
182 10 csaba
This problem is brought to daylight, but not caused by the following patch:
183 10 csaba
[http://cgit.osmocom.org/libosmocore/commit/?id=f5a079f739c57d8be7c59149fd45475c402a45fc]
184 10 csaba
185 10 csaba
The easy solution (but not fixing!) of this problem is to simply comment out the part which was added by this patch:
186 10 csaba
187 10 csaba
libosmocore/src/gsm/lapd_core.c:
188 10 csaba
{{{
189 10 csaba
 	lapd_dl_reset(dl);
190 10 csaba
 	/* free history buffer list */
191 10 csaba
 	talloc_free(dl->tx_hist);
192 10 csaba
	dl->tx_hist = NULL;  <-- comment out this line!
193 10 csaba
}}}
194 10 csaba
195 1 csaba
After commenting out the above line, you need to recompile libosmocore, libosmo-abis and OpenBSC!
196 11 csaba
197 11 csaba
'''Running OpenBSC with Nokia UltraSite:'''
198 11 csaba
199 11 csaba
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:
200 11 csaba
201 11 csaba
{{{
202 11 csaba
const struct lapd_profile lapd_profile_isdn = {
203 11 csaba
        .k              = LAPD_SET_K(7,7),
204 11 csaba
        .n200           = 3,
205 11 csaba
        .n201           = 260,                      <-- Modify this parameters to 260!
206 11 csaba
        .n202           = 3,
207 11 csaba
        .t200_sec       = 1,    .t200_usec      = 0,
208 11 csaba
        .t201_sec       = 1,    .t201_usec      = 0,
209 11 csaba
        .t202_sec       = 2,    .t202_usec      = 0,
210 11 csaba
        .t203_sec       = 10,   .t203_usec      = 0,
211 11 csaba
        .short_address  = 0
212 11 csaba
};
213 11 csaba
214 11 csaba
const struct lapd_profile lapd_profile_abis = {
215 11 csaba
        .k              = LAPD_SET_K(2,1),
216 11 csaba
        .n200           = 3,
217 11 csaba
        .n201           = 260,                       <-- Modify this parameters to 260!
218 11 csaba
        .n202           = 0, /* infinite */
219 11 csaba
        .t200_sec       = 0,    .t200_usec      = 240000,
220 11 csaba
        .t201_sec       = 1,    .t201_usec      = 0,
221 11 csaba
        .t202_sec       = 2,    .t202_usec      = 0,
222 11 csaba
        .t203_sec       = 10,   .t203_usec      = 0,
223 11 csaba
        .short_address  = 0
224 11 csaba
};
225 11 csaba
226 11 csaba
const struct lapd_profile lapd_profile_sat = {
227 11 csaba
        .k              = LAPD_SET_K(15,15),
228 11 csaba
        .n200           = 5,
229 11 csaba
        .n201           = 260,      <-- Modify this parameters to 260!
230 11 csaba
        .n202           = 5,
231 11 csaba
        .t200_sec       = 2,    .t200_usec      = 400000,
232 11 csaba
        .t201_sec       = 2,    .t201_usec      = 400000,
233 11 csaba
        .t202_sec       = 2,    .t202_usec      = 400000,
234 11 csaba
        .t203_sec       = 20,   .t203_usec      = 0,
235 11 csaba
        .short_address  = 1
236 11 csaba
};
237 11 csaba
238 11 csaba
}}}
239 11 csaba
240 11 csaba
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.
241 11 csaba
242 11 csaba
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.
243 11 csaba
244 11 csaba
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.
245 11 csaba
246 11 csaba
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)