Project

General

Profile

OsmoNITB Migration Guide » History » Version 16

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
20 2 neels
h1. Subscriber Database
21
22 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.
23
24 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:
25
26 1 neels
<pre>
27 14 lynxis
osmo-hlr-db-tool --database /var/lib/osmocom/hlr.db import-nitb-db /var/lib/osmocom/hlr.sqlite3
28 4 neels
</pre>
29
30 8 neels
If no @--database@ is passed, @./hlr.db@ is assumed.
31 1 neels
If the target @hlr.db@ does not exist yet, it is created.
32 8 neels
If no @--import-nitb-db@ is passed, a @hlr.db@ without any subscriber data is created.
33
34
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.
35
36
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.
37 4 neels
38 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.
39 5 neels
40
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.
41 2 neels
42
h1. Configuration Files
43
44 6 neels
Most of the current OsmoNITB config options still exist, but are now moved to OsmoMSC or OsmoBSC. Few are required in both.
45
46 9 neels
New configuration is available to set up:
47
* the GSUP connection from OsmoMSC to the OsmoHLR, and
48
* the SCCP connection for the A-interface between OsmoBSC and OsmoMSC, established via OsmoSTP.
49 2 neels
50 10 neels
Let's take this standard OsmoNITB configuration and split it up in OsmoBSC and OsmoMSC parts:
51
52
*OsmoNITB config*:
53
<pre>
54 11 neels
# ---------- to OsmoBSC:
55 10 neels
e1_input
56
 e1_line 0 driver ipa
57
 ipa bind 10.42.42.2
58 11 neels
# ---------- to both OsmoBSC and OsmoMSC:
59 10 neels
network
60
 network country code 901
61
 mobile network code 70
62
 short name osmo-gsm-tester-nitb
63
 long name osmo-gsm-tester-nitb
64
 auth policy closed
65
 location updating reject cause 13
66
 encryption a5 0
67 11 neels
 # ---------- to OsmoBSC:
68 10 neels
 neci 1
69
 rrlp mode none
70
 mm info 1
71
 handover 0
72
 handover window rxlev averaging 10
73
 handover window rxqual averaging 1
74
 handover window rxlev neighbor averaging 10
75
 handover power budget interval 6
76
 handover power budget hysteresis 3
77
 handover maximum distance 9999
78
 bts 0
79
  type sysmobts
80
  band GSM-1800
81
  cell_identity 0
82
  location_area_code 23
83
  training_sequence_code 7
84
  base_station_id_code 63
85
  ms max power 33
86
  cell reselection hysteresis 4
87
  rxlev access min 0
88
  channel allocator ascending
89
  rach tx integer 9
90
  rach max transmission 7
91
  ip.access unit_id 1 0
92
  oml ip.access stream_id 255 line 0
93
  gprs mode none
94
  trx 0
95
   rf_locked 0
96
   arfcn 868
97
   nominal power 23
98
   max_power_red 0
99
   rsl e1 tei 0
100
   timeslot 0
101
    phys_chan_config CCCH+SDCCH4
102
   timeslot 1
103
    phys_chan_config SDCCH8
104
   timeslot 2
105
    phys_chan_config TCH/F
106
   timeslot 3
107
    phys_chan_config TCH/F
108
   timeslot 4
109
    phys_chan_config TCH/F
110
   timeslot 5
111
    phys_chan_config TCH/F
112
   timeslot 6
113
    phys_chan_config TCH/F
114
   timeslot 7
115
    phys_chan_config TCH/F
116 11 neels
# ---------- to OsmoMSC:
117 10 neels
smpp
118
 local-tcp-ip 10.42.42.2 2775
119
 system-id test-nitb
120
 policy closed
121 1 neels
</pre>
122
123 11 neels
h2. OsmoBSC config
124
125
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.
126
127
You also need to add an 'msc' section to tell OsmoBSC where to reach the MSC.
128
129
*additions to OsmoBSC's config*:
130
<pre>
131
cs7 instance 0
132
 point-code 0.0.2
133
 sccp-address msc_remote
134
  point-code 0.0.1
135
msc
136
 msc-addr msc_remote
137
</pre>
138
139
This should give you an OsmoBSC config file like:
140
141 10 neels
*OsmoBSC config*:
142
<pre>
143
e1_input
144 1 neels
 e1_line 0 driver ipa
145
 ipa bind 10.42.42.5
146
cs7 instance 1
147 10 neels
 point-code 0.0.2
148
 sccp-address msc_remote
149
  point-code 0.0.1
150 11 neels
msc
151
 ! 'msc_remote' is an address book entry defined above under 'cs7'
152
 msc-addr msc_remote
153 10 neels
network
154
 network country code 901
155
 mobile network code 70
156
 short name osmo-gsm-tester-msc
157
 long name osmo-gsm-tester-msc
158
 auth policy closed
159
 location updating reject cause 13
160
 encryption a5 0
161
 authentication optional
162
 neci 1
163
 rrlp mode none
164
 mm info 1
165
 handover 0
166
 handover window rxlev averaging 10
167
 handover window rxqual averaging 1
168
 handover window rxlev neighbor averaging 10
169
 handover power budget interval 6
170
 handover power budget hysteresis 3
171
 handover maximum distance 9999
172
 bts 0
173
  type sysmobts
174
  band GSM-1800
175
  cell_identity 0
176
  location_area_code 23
177
  training_sequence_code 7
178
  base_station_id_code 63
179
  ms max power 33
180
  cell reselection hysteresis 4
181
  rxlev access min 0
182
  channel allocator ascending
183
  rach tx integer 9
184
  rach max transmission 7
185
  ip.access unit_id 1 0
186
  oml ip.access stream_id 255 line 0
187
  gprs mode none
188
  trx 0
189
   rf_locked 0
190
   arfcn 868
191
   nominal power 23
192
   max_power_red 0
193
   rsl e1 tei 0
194
   timeslot 0
195
    phys_chan_config CCCH+SDCCH4
196
   timeslot 1
197
    phys_chan_config SDCCH8
198
   timeslot 2
199
    phys_chan_config TCH/F
200
   timeslot 3
201 1 neels
    phys_chan_config TCH/F
202 10 neels
   timeslot 4
203
    phys_chan_config TCH/F
204 1 neels
   timeslot 5
205
    phys_chan_config TCH/F
206
   timeslot 6
207
    phys_chan_config TCH/F
208
   timeslot 7
209
    phys_chan_config TCH/F
210 11 neels
</pre>
211
212
h2. OsmoMSC config
213
214
To the MSC bits copied from OsmoNITB, you may want to add:
215
216
* a 'cs7 instance' section to configure the SCCP point codes and connection to the OsmoSTP. Note that if omitted, default values apply.
217
* an 'hlr' section if your OsmoHLR is not running on localhost.
218
* an 'msc' section to indicate where to reach the MGW, if it is not on localhost.
219
220
<pre>
221
cs7 instance 0
222
 point-code 0.0.1
223
hlr
224
 remote-ip 10.42.42.2
225 10 neels
msc
226 11 neels
 mgcpgw remote-ip 10.42.42.3
227 10 neels
</pre>
228
229 11 neels
This should give you an OsmoMSC config file like:
230
231 10 neels
*OsmoMSC config*:
232 11 neels
233 10 neels
<pre>
234 12 neels
cs7 instance 0
235
 point-code 0.0.1
236
msc
237
 mgcpgw remote-ip 10.42.42.3
238
hlr
239
 remote-ip 10.42.42.2
240 10 neels
network
241
 network country code 901
242
 mobile network code 70
243
 short name osmo-gsm-tester-msc
244
 long name osmo-gsm-tester-msc
245
 auth policy closed
246
 location updating reject cause 13
247
 encryption a5 0
248
 authentication optional
249
smpp
250
 local-tcp-ip 10.42.42.4 2775
251
 system-id test-msc
252 2 neels
 policy closed
253
</pre>
254
255 1 neels
h1. Service Files
256
257
TODO
Add picture from clipboard (Maximum size: 48.8 MB)