Project

General

Profile

OsmoNITB Migration Guide » History » Version 12

neels, 10/28/2017 11:42 PM

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