Project

General

Profile

Multi-BTS with handover » History » Revision 10

Revision 9 (ipse, 02/19/2016 10:48 PM) → Revision 10/13 (Anonymous, 02/19/2016 10:48 PM)

[[PageOutline]] 
 == Configuring OpenBSC with muiltiple BTS and in-call handover == 

 === 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 [http://cgit.osmocom.org/osmo-bts/commit/?h=fairwaves/master&id=a6ad0b44ae45a2fd51b6a55507e8295605431e92 fix] is included) 
 * osmo-trx package version >= 0.2.0 (this [http://cgit.osmocom.org/osmo-trx/commit/?h=fairwaves/master&id=19c392df82fe7acd303e4340059c87c432623881 patch] is included) 

 === Example network architecture === 

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

 {{{ 
 #!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" ]; 
   } 
 }}} 

 === 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. 

 ==== BTS 0 ==== 

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

 {{{ 
 bts 0 
  band GSM900 
  ipa unit-id 1801 0 
  oml remote-ip 172.30.1.10 
  ... 
 }}} 

 ==== BTS 1 ==== 

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

 {{{ 
 bts 0 
  band GSM900 
  ipa unit-id 1802 0 
  oml remote-ip 172.30.1.10 
  ... 
 }}} 

 === 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. 

 {{{ 
 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 
    ... 
 }}} 

 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: 

 {{{ 
 bts 1 0 
   ... 
   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 
    ... 
 }}} 

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

 ==== 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:  

 {{{ 
 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 
 }}} 

 Values can be tuned to modify the behaviour of handover. 

 === 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. 
 === 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. 

 ==== BTS 0 ==== 

 {{{ 
 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 
 }}} 

 ==== BTS 1 ==== 

 {{{ 
 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 
 }}} 

 ==== 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. 

 {{{ 
 ! 
 ! 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 
 }}} 
Add picture from clipboard (Maximum size: 48.8 MB)