Multi-BTS with handover » History » Revision 6
Revision 5 (Anonymous, 02/19/2016 10:48 PM) → Revision 6/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 [wiki:osmo-nitb OpenBSC 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 OpenBSC NITB software and two BTS that are built on the [wiki:OsmoBTS] software. However, the configuration covered here could equally be applied to a network that is operating the OpenBSC software in BSC-only mode (with an external MSC etc.) {{{ #!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: * '''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 1 band GSM900 ipa unit-id 1802 0 oml remote-ip 172.30.1.10 ... }}} === BSC configuration === There are a number of OpenBSC 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 OpenBSC 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 ... 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 OpenBSC 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. === Complete configurations === Complete example configs are included for reference 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 1 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 ==== {{{ ! ! 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 }}}