Project

General

Profile

OsmoNITB Migration Guide » History » Version 15

neels, 11/08/2017 02:14 PM

1 3 neels
{{>toc}}
2
3 1 neels
h1. OsmoNITB Migration Guide
4
5 2 neels
Historically, Osmocom offered the [[OsmoNITB:]] "Network-In-The-Box" as an actual single program. It was a useful simplification at the time, but in 2017, Osmocom have decided to split OsmoNITB into programs more closely resembling traditional network architecture. It is recommended to use the new separate components instead of the OsmoNITB, since active development focus has moved there.
6
7
Creating a new Network In The Box from scratch is described at [[Osmocom Network In The Box]], please refer to that page to complement the descriptions found here.
8
9
This page aims at describing the steps necessary to move from a working operation of osmo-nitb to the new split components.
10
11 15 neels
h1. Components
12
13
The OsmoNITB combined the BSC, MSC+VLR, HLR and MGW. In the new setup, SCCP/M3UA is spoken between BSC, MSC and SGSN, and OsmoSTP is used to route messages between them. On a system where OsmoNITB is installed, to replace it, you need to install these components:
14
15
<pre>apt-get install osmo-bsc osmo-stp osmo-bsc-mgcp osmo-mgw osmo-hlr</pre>
16
17
*NOTE: at the time of writing, you need to use osmo-bsc-mgcp, but this should move to osmo-mgw in a matter of weeks.*
18
19
Refer to [[Osmocom Network In The Box]] for more details.
20
21 2 neels
h1. Subscriber Database
22
23 4 neels
With OsmoHLR comes *@osmo-hlr-db-tool@*, which is capable of importing the most important subscriber data from a database that was used with OsmoNITB.
24
25 5 neels
In a standard installation, the osmo-nitb database should be found at @/var/lib/osmocom/hlr.sqlite3@, and the osmo-hlr database is expected at @/var/lib/osmocom/hlr.db@. Hence the migration command becomes:
26
27 1 neels
<pre>
28 14 lynxis
osmo-hlr-db-tool --database /var/lib/osmocom/hlr.db import-nitb-db /var/lib/osmocom/hlr.sqlite3
29 4 neels
</pre>
30
31 8 neels
If no @--database@ is passed, @./hlr.db@ is assumed.
32 1 neels
If the target @hlr.db@ does not exist yet, it is created.
33 8 neels
If no @--import-nitb-db@ is passed, a @hlr.db@ without any subscriber data is created.
34
35
You may repeat / combine imports to the same @hlr.db@; any subscribers that already exist will be skipped with an error message. It is possible to do an import while osmo-hlr is actively using the database, but that is not recommended.
36
37
Take care that the resulting hlr.db has the proper read and write permissions by the user that will run OsmoHLR. Probably, the same ownership and permissions that the previous OsmoNITB database had is the correct choice.
38 4 neels
39 13 neels
Note that not all information is copied to the hlr.db, so far just IMSI, MSISDN and 2G auth tokens are migrated -- check the @osmo-hlr-db-tool@ cmdline help to find out what exactly is migrated at the time you're reading this.
40 5 neels
41
To avoid future confusion, it may be desirable to remove the legacy hlr.sqlite3 from the system (i.e. backup to somewhere else), or rename it to something like @osmo-nitb.db@, so that it is not mistaken for the OsmoHLR database.
42 2 neels
43
h1. Configuration Files
44
45 6 neels
Most of the current OsmoNITB config options still exist, but are now moved to OsmoMSC or OsmoBSC. Few are required in both.
46
47 9 neels
New configuration is available to set up:
48
* the GSUP connection from OsmoMSC to the OsmoHLR, and
49
* the SCCP connection for the A-interface between OsmoBSC and OsmoMSC, established via OsmoSTP.
50 2 neels
51 10 neels
Let's take this standard OsmoNITB configuration and split it up in OsmoBSC and OsmoMSC parts:
52
53
*OsmoNITB config*:
54
<pre>
55 11 neels
# ---------- to OsmoBSC:
56 10 neels
e1_input
57
 e1_line 0 driver ipa
58
 ipa bind 10.42.42.2
59 11 neels
# ---------- to both OsmoBSC and OsmoMSC:
60 10 neels
network
61
 network country code 901
62
 mobile network code 70
63
 short name osmo-gsm-tester-nitb
64
 long name osmo-gsm-tester-nitb
65
 auth policy closed
66
 location updating reject cause 13
67
 encryption a5 0
68 11 neels
 # ---------- to OsmoBSC:
69 10 neels
 neci 1
70
 rrlp mode none
71
 mm info 1
72
 handover 0
73
 handover window rxlev averaging 10
74
 handover window rxqual averaging 1
75
 handover window rxlev neighbor averaging 10
76
 handover power budget interval 6
77
 handover power budget hysteresis 3
78
 handover maximum distance 9999
79
 bts 0
80
  type sysmobts
81
  band GSM-1800
82
  cell_identity 0
83
  location_area_code 23
84
  training_sequence_code 7
85
  base_station_id_code 63
86
  ms max power 33
87
  cell reselection hysteresis 4
88
  rxlev access min 0
89
  channel allocator ascending
90
  rach tx integer 9
91
  rach max transmission 7
92
  ip.access unit_id 1 0
93
  oml ip.access stream_id 255 line 0
94
  gprs mode none
95
  trx 0
96
   rf_locked 0
97
   arfcn 868
98
   nominal power 23
99
   max_power_red 0
100
   rsl e1 tei 0
101
   timeslot 0
102
    phys_chan_config CCCH+SDCCH4
103
   timeslot 1
104
    phys_chan_config SDCCH8
105
   timeslot 2
106
    phys_chan_config TCH/F
107
   timeslot 3
108
    phys_chan_config TCH/F
109
   timeslot 4
110
    phys_chan_config TCH/F
111
   timeslot 5
112
    phys_chan_config TCH/F
113
   timeslot 6
114
    phys_chan_config TCH/F
115
   timeslot 7
116
    phys_chan_config TCH/F
117 11 neels
# ---------- to OsmoMSC:
118 10 neels
smpp
119
 local-tcp-ip 10.42.42.2 2775
120
 system-id test-nitb
121
 policy closed
122 1 neels
</pre>
123
124 11 neels
h2. OsmoBSC config
125
126
To above snippets from the OsmoNITB config, you may want to add a 'cs7 instance' section to configure the SCCP point codes and connection to the OsmoSTP. Note that if omitted, default values apply.
127
128
You also need to add an 'msc' section to tell OsmoBSC where to reach the MSC.
129
130
*additions to OsmoBSC's config*:
131
<pre>
132
cs7 instance 0
133
 point-code 0.0.2
134
 sccp-address msc_remote
135
  point-code 0.0.1
136
msc
137
 msc-addr msc_remote
138
</pre>
139
140
This should give you an OsmoBSC config file like:
141
142 10 neels
*OsmoBSC config*:
143
<pre>
144
e1_input
145 1 neels
 e1_line 0 driver ipa
146
 ipa bind 10.42.42.5
147
cs7 instance 1
148 10 neels
 point-code 0.0.2
149
 sccp-address msc_remote
150
  point-code 0.0.1
151 11 neels
msc
152
 ! 'msc_remote' is an address book entry defined above under 'cs7'
153
 msc-addr msc_remote
154 10 neels
network
155
 network country code 901
156
 mobile network code 70
157
 short name osmo-gsm-tester-msc
158
 long name osmo-gsm-tester-msc
159
 auth policy closed
160
 location updating reject cause 13
161
 encryption a5 0
162
 authentication optional
163
 neci 1
164
 rrlp mode none
165
 mm info 1
166
 handover 0
167
 handover window rxlev averaging 10
168
 handover window rxqual averaging 1
169
 handover window rxlev neighbor averaging 10
170
 handover power budget interval 6
171
 handover power budget hysteresis 3
172
 handover maximum distance 9999
173
 bts 0
174
  type sysmobts
175
  band GSM-1800
176
  cell_identity 0
177
  location_area_code 23
178
  training_sequence_code 7
179
  base_station_id_code 63
180
  ms max power 33
181
  cell reselection hysteresis 4
182
  rxlev access min 0
183
  channel allocator ascending
184
  rach tx integer 9
185
  rach max transmission 7
186
  ip.access unit_id 1 0
187
  oml ip.access stream_id 255 line 0
188
  gprs mode none
189
  trx 0
190
   rf_locked 0
191
   arfcn 868
192
   nominal power 23
193
   max_power_red 0
194
   rsl e1 tei 0
195
   timeslot 0
196
    phys_chan_config CCCH+SDCCH4
197
   timeslot 1
198
    phys_chan_config SDCCH8
199
   timeslot 2
200
    phys_chan_config TCH/F
201
   timeslot 3
202 1 neels
    phys_chan_config TCH/F
203 10 neels
   timeslot 4
204
    phys_chan_config TCH/F
205 1 neels
   timeslot 5
206
    phys_chan_config TCH/F
207
   timeslot 6
208
    phys_chan_config TCH/F
209
   timeslot 7
210
    phys_chan_config TCH/F
211 11 neels
</pre>
212
213
h2. OsmoMSC config
214
215
To the MSC bits copied from OsmoNITB, you may want to add:
216
217
* a 'cs7 instance' section to configure the SCCP point codes and connection to the OsmoSTP. Note that if omitted, default values apply.
218
* an 'hlr' section if your OsmoHLR is not running on localhost.
219
* an 'msc' section to indicate where to reach the MGW, if it is not on localhost.
220
221
<pre>
222
cs7 instance 0
223
 point-code 0.0.1
224
hlr
225
 remote-ip 10.42.42.2
226 10 neels
msc
227 11 neels
 mgcpgw remote-ip 10.42.42.3
228 10 neels
</pre>
229
230 11 neels
This should give you an OsmoMSC config file like:
231
232 10 neels
*OsmoMSC config*:
233 11 neels
234 10 neels
<pre>
235 12 neels
cs7 instance 0
236
 point-code 0.0.1
237
msc
238
 mgcpgw remote-ip 10.42.42.3
239
hlr
240
 remote-ip 10.42.42.2
241 10 neels
network
242
 network country code 901
243
 mobile network code 70
244
 short name osmo-gsm-tester-msc
245
 long name osmo-gsm-tester-msc
246
 auth policy closed
247
 location updating reject cause 13
248
 encryption a5 0
249
 authentication optional
250
smpp
251
 local-tcp-ip 10.42.42.4 2775
252
 system-id test-msc
253 2 neels
 policy closed
254
</pre>
255
256 1 neels
h1. Service Files
257
258
TODO
Add picture from clipboard (Maximum size: 48.8 MB)