Project

General

Profile

OsmoNITB Migration Guide » History » Version 18

neels, 11/29/2017 01:24 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 18 neels
 short name my-nitb
61
 long name my-nitb
62 1 neels
 location updating reject cause 13
63 10 neels
 encryption a5 0
64 18 neels
 # ---------- to OsmoMSC only:
65
 auth policy closed
66
 # ---------- to OsmoBSC only:
67 10 neels
 neci 1
68
 rrlp mode none
69
 mm info 1
70
 handover 0
71
 handover window rxlev averaging 10
72
 handover window rxqual averaging 1
73
 handover window rxlev neighbor averaging 10
74
 handover power budget interval 6
75
 handover power budget hysteresis 3
76
 handover maximum distance 9999
77
 bts 0
78
  type sysmobts
79
  band GSM-1800
80
  cell_identity 0
81
  location_area_code 23
82
  training_sequence_code 7
83
  base_station_id_code 63
84
  ms max power 33
85
  cell reselection hysteresis 4
86
  rxlev access min 0
87
  channel allocator ascending
88
  rach tx integer 9
89
  rach max transmission 7
90
  ip.access unit_id 1 0
91
  oml ip.access stream_id 255 line 0
92
  gprs mode none
93
  trx 0
94
   rf_locked 0
95
   arfcn 868
96
   nominal power 23
97
   max_power_red 0
98
   rsl e1 tei 0
99
   timeslot 0
100
    phys_chan_config CCCH+SDCCH4
101
   timeslot 1
102
    phys_chan_config SDCCH8
103
   timeslot 2
104
    phys_chan_config TCH/F
105
   timeslot 3
106
    phys_chan_config TCH/F
107
   timeslot 4
108
    phys_chan_config TCH/F
109
   timeslot 5
110
    phys_chan_config TCH/F
111
   timeslot 6
112
    phys_chan_config TCH/F
113
   timeslot 7
114
    phys_chan_config TCH/F
115 11 neels
# ---------- to OsmoMSC:
116 10 neels
smpp
117
 local-tcp-ip 10.42.42.2 2775
118
 system-id test-nitb
119
 policy closed
120 1 neels
</pre>
121
122 11 neels
h2. OsmoBSC config
123
124
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.
125
126
You also need to add an 'msc' section to tell OsmoBSC where to reach the MSC.
127
128
*additions to OsmoBSC's config*:
129
<pre>
130
cs7 instance 0
131
 point-code 0.0.2
132
 sccp-address msc_remote
133
  point-code 0.0.1
134 1 neels
msc
135
 msc-addr msc_remote
136
</pre>
137
138 18 neels
You need to drop these sections from OsmoBSC:
139
140
* 'auth policy'
141
* 'authorized-regexp'
142
* 'authentication'
143
144 11 neels
This should give you an OsmoBSC config file like:
145
146 10 neels
*OsmoBSC config*:
147
<pre>
148
e1_input
149 1 neels
 e1_line 0 driver ipa
150 10 neels
 ipa bind 10.42.42.5
151
cs7 instance 1
152 11 neels
 point-code 0.0.2
153
 sccp-address msc_remote
154 1 neels
  point-code 0.0.1
155
msc
156 10 neels
 ! 'msc_remote' is an address book entry defined above under 'cs7'
157
 msc-addr msc_remote
158
network
159
 network country code 901
160
 mobile network code 70
161 18 neels
 short name my-bsc
162
 long name my-bsc
163 10 neels
 location updating reject cause 13
164
 encryption a5 0
165
 neci 1
166
 rrlp mode none
167
 mm info 1
168
 handover 0
169
 handover window rxlev averaging 10
170
 handover window rxqual averaging 1
171
 handover window rxlev neighbor averaging 10
172
 handover power budget interval 6
173
 handover power budget hysteresis 3
174
 handover maximum distance 9999
175
 bts 0
176
  type sysmobts
177
  band GSM-1800
178
  cell_identity 0
179
  location_area_code 23
180
  training_sequence_code 7
181
  base_station_id_code 63
182
  ms max power 33
183
  cell reselection hysteresis 4
184
  rxlev access min 0
185
  channel allocator ascending
186
  rach tx integer 9
187
  rach max transmission 7
188
  ip.access unit_id 1 0
189
  oml ip.access stream_id 255 line 0
190
  gprs mode none
191
  trx 0
192
   rf_locked 0
193
   arfcn 868
194
   nominal power 23
195
   max_power_red 0
196
   rsl e1 tei 0
197
   timeslot 0
198
    phys_chan_config CCCH+SDCCH4
199
   timeslot 1
200
    phys_chan_config SDCCH8
201
   timeslot 2
202
    phys_chan_config TCH/F
203
   timeslot 3
204 1 neels
    phys_chan_config TCH/F
205 10 neels
   timeslot 4
206
    phys_chan_config TCH/F
207 1 neels
   timeslot 5
208
    phys_chan_config TCH/F
209
   timeslot 6
210
    phys_chan_config TCH/F
211
   timeslot 7
212
    phys_chan_config TCH/F
213 11 neels
</pre>
214
215
h2. OsmoMSC config
216
217
To the MSC bits copied from OsmoNITB, you may want to add:
218
219
* a 'cs7 instance' section to configure the SCCP point codes and connection to the OsmoSTP. Note that if omitted, default values apply.
220
* an 'hlr' section if your OsmoHLR is not running on localhost.
221
* an 'msc' section to indicate where to reach the MGW, if it is not on localhost.
222
223
<pre>
224 1 neels
cs7 instance 0
225
 point-code 0.0.1
226 11 neels
hlr
227
 remote-ip 10.42.42.2
228
msc
229
 mgcpgw remote-ip 10.42.42.3
230 10 neels
</pre>
231 11 neels
232 18 neels
You will now use an external HLR to manage the subscriber database, hence change to 'auth policy remote'.
233
234 11 neels
This should give you an OsmoMSC config file like:
235 10 neels
236 12 neels
*OsmoMSC config*:
237 1 neels
238
<pre>
239
cs7 instance 0
240 12 neels
 point-code 0.0.1
241
msc
242
 mgcpgw remote-ip 10.42.42.3
243
hlr
244
 remote-ip 10.42.42.2
245 10 neels
network
246
 network country code 901
247
 mobile network code 70
248 18 neels
 short name my-msc
249
 long name my-msc
250
 auth policy remote
251 10 neels
 location updating reject cause 13
252
 encryption a5 0
253
 authentication optional
254
smpp
255
 local-tcp-ip 10.42.42.4 2775
256
 system-id test-msc
257 2 neels
 policy closed
258
</pre>
259
260 1 neels
h1. Service Files
261
262
TODO
Add picture from clipboard (Maximum size: 48.8 MB)