Multi-BTS with handover » History » Revision 6
« Previous |
Revision 6/13
(diff)
| Next »
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
}}}
Updated by about 8 years ago · 6 revisions