Project

General

Profile

OsmoNITB Migration Guide » History » Version 17

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