Project

General

Profile

Multi-BTS with handover » History » Revision 12

Revision 11 (Anonymous, 02/19/2016 10:48 PM) → Revision 12/13 (laforge, 02/21/2016 07:50 AM)

{{>toc}} 

 

 h2. Configuring [[OpenBSC]] with muiltiple BTS and in-call handover 



 



 h3. Prerequisites 


 


 It is assumed that you already have a functioning BSC/NITB, and two or more BTS available. 

 Note that if you are using BTS based on [[OsmoBTS]]/OsmoTRX handover requires: 

 * osmo-bts package version >= fw-5 (this "fix":http://cgit.osmocom.org/osmo-bts/commit/?h=fairwaves/master&id=a6ad0b44ae45a2fd51b6a55507e8295605431e92 is included) 
 * osmo-trx package version >= 0.2.0 (this "patch":http://cgit.osmocom.org/osmo-trx/commit/?h=fairwaves/master&id=19c392df82fe7acd303e4340059c87c432623881 is included) 


 


 h3. Example network architecture 


 


 In this example we have one system running the BSC/NITB software and two BTS that are built on the [[OsmoBTS]] software. 

 {{graphviz_link() 
 <pre> 
 <code class="graphviz"> 
 digraph G { 
   rankdir = LR; 
   BSC -> BTS0 [ label = "A-bis" dir=both ]; 
   BSC -> BTS1 [ label = "A-bis" dir=both ]; 
   BSC [ shape = square label = "BSC\n172.30.1.10" ]; 
   BTS0 [ shape = square label = "BTS 0\n172.30.1.11" ]; 
   BTS1 [ shape = square label = "BTS 1\n172.30.1.12" ]; 
   } 
 }} 


 </code></pre> 


 h3. BTS configuration 


 


 There are three [[OsmoBTS]] parameters in particular which must be correctly configured: 

 * *bts* - BTS number in a config file, always 0 for a BTS configuration file, 0..n for the NITB configuration file 
 * *band* - the band in which the BTS will operate 
 * *ipa unit-id* - each BTS must use a unique value 
 * *oml remote-ip* - this is the BSC IP address 

 The example configuration that follows is for two BTS both on the GSM900 band. 


 


 h4. BTS 0 


 


 Find the aforementioned parameters and ensure that they are correctly set. 

 <pre> 
 
 bts 0 
  band GSM900 
  ipa unit-id 1801 0 
  oml remote-ip 172.30.1.10 
  ... 
 </code></pre> 


 


 h4. BTS 1 


 


 Ensure that the second BTS has a different *ipa unit-id* configured from the first. 

 <pre> 
 
 bts 0 
  band GSM900 
  ipa unit-id 1802 0 
  oml remote-ip 172.30.1.10 
  ... 
 </code></pre> 


 


 h3. BSC configuration 


 


 There are a number of BSC/NITB parameters that you must pay particular attention to: 

 * *BTS _n* 
 *** *band* - as configured in the BTS 
 *** *base_station_id_code* - should be unique in location area 
 *** *ip.access unit_id* - as configured in the BTS 
 *** *trx _n_ 
 ****** *arfcn* - this must be frequencies that you have a licence for and unique across all neighbouring BTS 
 * *neighbor-list mode automatic* 

 Configure the first BTS within the BSC/NITB, ensuring that you have set the correct *band* and *ip.access unit_id*, and an appropriate *arfcn* for each TRX. 

 <pre> 
 
 bts 0 
   ... 
   band GSM900 
   ... 
   base_station_id_code 63 
   ... 
   ip.access unit_id 1801 0 
   ... 
   neighbor-list mode automatic 
   ... 
   trx 0 
    rf_locked 0 
    arfcn 74 
    ... 
   trx 1 
    rf_locked 0 
    arfcn 84 
    ... 
 </code></pre> 

 

 Next configure the second BTS, ensuring that a different *base_station_id_code* is used this time, once again the correct *ip.access unit_id* is set, and an appropriate *arfcn* for each TRX: 

 <pre> 
 
 bts 1 
   ... 
   band GSM900 
   ... 
   base_station_id_code 62 
   ... 
   ip.access unit_id 1802 0 
   ... 
   neighbor-list mode automatic 
   ... 
   trx 0 
    rf_locked 0 
    arfcn 111 
    ... 
   trx 1 
    rf_locked 0 
    arfcn 122 
    ... 
 </code></pre> 

 

 For details of all the configuration options please see the [[osmo-nitb_VTY|NITB VTY reference]]. 


 


 h4. Handover 


 


 The following parameters must also be configured in order to enable handover: 

 * *handover 1* 
 *** _Enable in-call handover between multiple BTS._ 

 * *handover window rxlev averaging 10* 
 *** _The receive level of the serving cell should be averaged over 10 SACCH frames._ 

 * *handover window rxqual averaging 1* 
 *** _The receive quality of the serving cell should be averaged over 1 SACCH frame._ 

 * *handover window rxlev neighbor averaging 10* 
 *** _The Rx Level of a neighbour cell should be averaged over 10 SACCH frames._ 

 * *handover power budget interval 6* 
 *** _Consider performing a power budget (Rx level) handover every 6 SACCH frames._ 

 * *handover power budget hysteresis 3* 
 *** _Set hysteresis (prevents continuous handover back and forth) to 3._ 

 * *handover maximum distance 9999* 
 *** _When the distance from the BTS is greater than 9999 attempt a distance handover._ 

 These parameters must be set within the *network* section of the BSC/NITB configuration:  

 <pre> 
 
 network 
  network country code 1 
  ... 
  handover 1 
  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 
 </code></pre> 

 

 Values can be tuned to modify the behaviour of handover. 


 


 h3. Testing handover 


 


 To test handover you have two options: 

 1. Physically move a phone to trigger handover decision. 
 2. Use "subscriber ID handover BTS_NR" command in the NITB VTY to force handover. 

 

 h3. Complete configurations 


 


 Complete example configs are included here for reference only and should not be used without modification, unless you happen to have a licence for those particular frequencies. 


 


 h4. BTS 0 


 


 <pre> 
 
 bts 0 
  band GSM900 
  ipa unit-id 1801 0 
  oml remote-ip 172.30.1.10 
  rtp jitter-buffer 0 
  paging lifetime 0 
  gsmtap-sapi bcch 
  gsmtap-sapi ccch 
  gsmtap-sapi rach 
  gsmtap-sapi agch 
  gsmtap-sapi pch 
  gsmtap-sapi sdcch 
  gsmtap-sapi pacch 
  gsmtap-sapi pdtch 
  gsmtap-sapi sacch 
  fn-advance 20 
  ms-power-loop -10 
  timing-advance-loop 
  trx 0 
   rxgain 12 
   power 0 
  trx 1 
   rxgain 12 
   power 0 
 </code></pre> 


 


 h4. BTS 1 


 


 <pre> 
 
 bts 0 
  band GSM900 
  ipa unit-id 1802 0 
  oml remote-ip 172.30.1.10 
  rtp jitter-buffer 0 
  paging lifetime 0 
  gsmtap-sapi bcch 
  gsmtap-sapi ccch 
  gsmtap-sapi rach 
  gsmtap-sapi agch 
  gsmtap-sapi pch 
  gsmtap-sapi sdcch 
  gsmtap-sapi pacch 
  gsmtap-sapi pdtch 
  gsmtap-sapi sacch 
  fn-advance 20 
  ms-power-loop -10 
  timing-advance-loop 
  trx 0 
   rxgain 12 
   power 0 
  trx 1 
   rxgain 12 
   power 0 
 </code></pre> 


 


 h4. [[OpenBSC]] NITB 


 


 Note that whilst this configuration is for NITB operation, the updates describe above could equally be applied to [[OpenBSC]] configured in BSC-only mode and with an external MSC etc. 

 <pre> 
 
 ! 
 ! OpenBSC (UNKNOWN) configuration saved from vty 
 !! 
 password foo 
 ! 
 line vty 
  no login 
 ! 
 e1_input 
  e1_line 0 driver ipa 
  e1_line 0 port 0 
  no e1_line 0 keepalive 
 network 
  network country code 1 
  mobile network code 1 
  short name Osmocom 
  long name Osmocom 
  auth policy accept-all 
  location updating reject cause 13 
  encryption a5 0 
  neci 1 
  paging any use tch 0 
  rrlp mode none 
  mm info 1 
  handover 1 
  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 
  timer t3101 10 
  timer t3103 0 
  timer t3105 0 
  timer t3107 0 
  timer t3109 4 
  timer t3111 0 
  timer t3113 60 
  timer t3115 0 
  timer t3117 0 
  timer t3119 0 
  timer t3122 10 
  timer t3141 0 
  dtx-used 0 
  subscriber-keep-in-ram 0 
  bts 0 
   type sysmobts 
   band GSM900 
   cell_identity 0 
   location_area_code 1 
   base_station_id_code 63 
   ms max power 15 
   cell reselection hysteresis 4 
   rxlev access min 0 
   periodic location update 30 
   radio-link-timeout 32 
   channel allocator ascending 
   rach tx integer 9 
   rach max transmission 7 
   channel-descrption attach 1 
   channel-descrption bs-pa-mfrms 5 
   channel-descrption bs-ag-blks-res 1 
   ip.access unit_id 1801 0 
   oml ip.access stream_id 255 line 0 
   neighbor-list mode automatic 
   gprs mode none 
   no force-combined-si 
   trx 0 
    rf_locked 0 
    arfcn 74 
    nominal power 23 
    max_power_red 0 
    rsl e1 tei 0 
     timeslot 0 
      phys_chan_config CCCH+SDCCH4 
      hopping enabled 0 
     timeslot 1 
      phys_chan_config SDCCH8 
      hopping enabled 0 
     timeslot 2 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 3 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 4 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 5 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 6 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 7 
      phys_chan_config TCH/F 
      hopping enabled 0 
   trx 1 
    rf_locked 0 
    arfcn 84 
    nominal power 23 
    max_power_red 0 
    rsl e1 tei 0 
     timeslot 0 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 1 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 2 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 3 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 4 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 5 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 6 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 7 
      phys_chan_config TCH/F 
      hopping enabled 0 
  bts 1 
   type sysmobts 
   band GSM900 
   cell_identity 0 
   location_area_code 1 
   base_station_id_code 62 
   ms max power 15 
   cell reselection hysteresis 4 
   rxlev access min 0 
   periodic location update 30 
   radio-link-timeout 32 
   channel allocator ascending 
   rach tx integer 9 
   rach max transmission 7 
   channel-descrption attach 1 
   channel-descrption bs-pa-mfrms 5 
   channel-descrption bs-ag-blks-res 1 
   ip.access unit_id 1802 0 
   oml ip.access stream_id 255 line 0 
   neighbor-list mode automatic 
   gprs mode none 
   no force-combined-si 
   trx 0 
    rf_locked 0 
    arfcn 111 
    nominal power 23 
    max_power_red 0 
    rsl e1 tei 0 
     timeslot 0 
      phys_chan_config CCCH+SDCCH4 
      hopping enabled 0 
     timeslot 1 
      phys_chan_config SDCCH8 
      hopping enabled 0 
     timeslot 2 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 3 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 4 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 5 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 6 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 7 
      phys_chan_config TCH/F 
      hopping enabled 0 
   trx 1 
    rf_locked 0 
    arfcn 122 
    nominal power 23 
    max_power_red 0 
    rsl e1 tei 0 
     timeslot 0 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 1 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 2 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 3 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 4 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 5 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 6 
      phys_chan_config TCH/F 
      hopping enabled 0 
     timeslot 7 
      phys_chan_config TCH/F 
      hopping enabled 0 
 </code></pre> 
 
Add picture from clipboard (Maximum size: 48.8 MB)