Project

General

Profile

Actions

Multi-BTS with handover » History » Revision 10

« Previous | Revision 10/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 BSC/NITB, and two or more BTS available.

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

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

Files (0)

Updated by about 8 years ago · 10 revisions

Add picture from clipboard (Maximum size: 48.8 MB)