Project

General

Profile

OsmoNITB Migration Guide » History » Revision 11

Revision 10 (neels, 10/28/2017 11:26 PM) → Revision 11/26 (neels, 10/28/2017 11:40 PM)

{{>toc}} 

 h1. OsmoNITB Migration Guide 

 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. 

 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. 

 This page aims at describing the steps necessary to move from a working operation of osmo-nitb to the new split components. 

 h1. Subscriber Database 

 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. 

 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: 

 <pre> 
 osmo-hlr-db-tool --database /var/lib/osmocom/hlr.db --import-nitb-db /var/lib/osmocom/hlr.sqlite3 
 </pre> 

 If no @--database@ is passed, @./hlr.db@ is assumed. 
 If the target @hlr.db@ does not exist yet, it is created. 
 If no @--import-nitb-db@ is passed, a @hlr.db@ without any subscriber data is created. 

 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. 

 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. 

 Note that not all information is copied to the hlr.db, just IMSI and 2G auth tokens. 

 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. 

 h1. Configuration Files 

 Most of the current OsmoNITB config options still exist, but are now moved to OsmoMSC or OsmoBSC. Few are required in both. 

 New configuration is available to set up: 
 * the GSUP connection from OsmoMSC to the OsmoHLR, and 
 * the SCCP connection for the A-interface between OsmoBSC and OsmoMSC, established via OsmoSTP. 

 Let's take this standard OsmoNITB configuration and split it up in OsmoBSC and OsmoMSC parts: 

 *OsmoNITB config*: 
 <pre> 
 # ---------- to OsmoBSC: 
 e1_input 
  e1_line 0 driver ipa 
  ipa bind 10.42.42.2 
 # ---------- to both OsmoBSC and OsmoMSC: 
 network 
  network country code 901 
  mobile network code 70 
  short name osmo-gsm-tester-nitb 
  long name osmo-gsm-tester-nitb 
  auth policy closed 
  location updating reject cause 13 
  encryption a5 0 
  # ---------- to OsmoBSC: 
  neci 1 
  rrlp mode none 
  mm info 1 
  handover 0 
  handover window rxlev averaging 10 
  handover window rxqual averaging 1 
  handover window rxlev neighbor averaging 10 
  handover power budget interval 6 
  handover power budget hysteresis 3 
  handover maximum distance 9999 
  bts 0 
   type sysmobts 
   band GSM-1800 
   cell_identity 0 
   location_area_code 23 
   training_sequence_code 7 
   base_station_id_code 63 
   ms max power 33 
   cell reselection hysteresis 4 
   rxlev access min 0 
   channel allocator ascending 
   rach tx integer 9 
   rach max transmission 7 
   ip.access unit_id 1 0 
   oml ip.access stream_id 255 line 0 
   gprs mode none 
   trx 0 
    rf_locked 0 
    arfcn 868 
    nominal power 23 
    max_power_red 0 
    rsl e1 tei 0 
    timeslot 0 
     phys_chan_config CCCH+SDCCH4 
    timeslot 1 
     phys_chan_config SDCCH8 
    timeslot 2 
     phys_chan_config TCH/F 
    timeslot 3 
     phys_chan_config TCH/F 
    timeslot 4 
     phys_chan_config TCH/F 
    timeslot 5 
     phys_chan_config TCH/F 
    timeslot 6 
     phys_chan_config TCH/F 
    timeslot 7 
     phys_chan_config TCH/F 
 # ---------- to OsmoMSC: 
 smpp 
  local-tcp-ip 10.42.42.2 2775 
  system-id test-nitb 
  policy closed 
 </pre> 

 h2. OsmoBSC config 

 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. 

 You also need to add an 'msc' section to tell OsmoBSC where to reach the MSC. 

 *additions to OsmoBSC's config*: 
 <pre> 
 cs7 instance 0 ctrl 
  point-code 0.0.2 
  sccp-address msc_remote 
   point-code 0.0.1 bind 10.42.42.2 
 msc 
  msc-addr msc_remote 
 </pre> 

 This should give you an OsmoBSC config file like: 

 *OsmoBSC config*: 
 <pre> 
 e1_input 
  e1_line 0 driver ipa 
  ipa bind 10.42.42.5 
 cs7 instance 1 
  point-code 0.0.2 
  sccp-address bsc_local 
   point-code 0.0.2 
   routing-indicator PC 
  sccp-address msc_remote 
   point-code 0.0.1 
   routing-indicator PC 
 msc 
  ! 'msc_remote' is an address book entry defined above under 'cs7' 
  msc-addr msc_remote 
 network 
  network country code 901 
  mobile network code 70 
  short name osmo-gsm-tester-msc 
  long name osmo-gsm-tester-msc 
  auth policy closed 
  location updating reject cause 13 
  encryption a5 0 
  authentication optional 
  neci 1 
  rrlp mode none 
  mm info 1 
  handover 0 
  handover window rxlev averaging 10 
  handover window rxqual averaging 1 
  handover window rxlev neighbor averaging 10 
  handover power budget interval 6 
  handover power budget hysteresis 3 
  handover maximum distance 9999 
  bts 0 
   type sysmobts 
   band GSM-1800 
   cell_identity 0 
   location_area_code 23 
   training_sequence_code 7 
   base_station_id_code 63 
   ms max power 33 
   cell reselection hysteresis 4 
   rxlev access min 0 
   channel allocator ascending 
   rach tx integer 9 
   rach max transmission 7 
   ip.access unit_id 1 0 
   oml ip.access stream_id 255 line 0 
   gprs mode none 
   trx 0 
    rf_locked 0 
    arfcn 868 
    nominal power 23 
    max_power_red 0 
    rsl e1 tei 0 
    timeslot 0 
     phys_chan_config CCCH+SDCCH4 
    timeslot 1 
     phys_chan_config SDCCH8 
    timeslot 2 
     phys_chan_config TCH/F 
    timeslot 3 
     phys_chan_config TCH/F 
    timeslot 4 
     phys_chan_config TCH/F 
    timeslot 5 
     phys_chan_config TCH/F 
    timeslot 6 
     phys_chan_config TCH/F 
    timeslot 7 
     phys_chan_config TCH/F 
 </pre> 

 h2. OsmoMSC config 

 To the MSC bits copied from OsmoNITB, 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. 
 * an 'hlr' section if your OsmoHLR is not running on localhost. 
 * an 'msc' section to indicate where to reach the MGW, if it is not on localhost. 

 <pre> 
 cs7 instance 0 msc 
  point-code 0.0.1 
 hlr token msc_token_23_42 
  remote-ip 10.42.42.2 
 msc core-mobile-country-code 901 
  mgcpgw remote-ip 10.42.42.3 core-mobile-network-code 70 
  ip.access rtp-base 8000 
  timeout-ping 1800 
  timeout-ping advanced 
  timeout-pong 60 
  codec-list hr3 
  dest 151.80.237.229 5000 184 
  amr-config 12_2k forbidden 
  amr-config 10_2k forbidden 
  amr-config 7_95k forbidden 
  amr-config 7_40k forbidden 
  amr-config 6_70k forbidden 
  amr-config 5_90k allowed 
  amr-config 5_15k forbidden 
  amr-config 4_75k forbidden 
  msc-addr msc_remote 
  bsc-addr bsc_local 
 </pre> 

 This should give you an OsmoMSC config file like: 

 *OsmoMSC config*: 

 
 <pre> 
 network 
  network country code 901 
  mobile network code 70 
  short name osmo-gsm-tester-msc 
  long name osmo-gsm-tester-msc 
  auth policy closed 
  location updating reject cause 13 
  encryption a5 0 
  authentication optional 
 cs7 instance 0 
  point-code 0.0.1 
 msc 
  mgcpgw remote-ip 10.42.42.3 
  assign-tmsi 
  cs7-instance-iu 0 
  cs7-instance-a 0 
 ctrl 
  bind 10.42.42.4 
 smpp 
  local-tcp-ip 10.42.42.4 2775 
  system-id test-msc 
  policy closed 
 hlr 
  remote-ip 10.42.42.2 
 </pre> 

 h1. Service Files 

 TODO
Add picture from clipboard (Maximum size: 48.8 MB)