== BSC level configuration

=== Hand-over

==== Hand-over in GSM

Hand-over is the process of changing a MS with a currently active
dedicated channel from one BTS to another BTS.  As opposed to idle mode,
where the MS autonomously performs cell re-selection, in dedicated mode
this happens under network control.

In order to determine when to perform hand-over, and to which cells, the
network requests the MS to perform measurements on a list of neighbor
cell channels, which the MS then reports back to the network in the form
of GSM RR 'Measurement Result' messages.  Those messages contain the
downlink measurements as determined by the MS.

Furthermore, the BTS also performs measurements on the uplink, and
communicates those by means of RSL to the BSC.

The hand-over decision is made by an algorithm that processes those
measurement results and determines when to perform the hand-over.

==== Configuration of hand-over in OsmoBSC

OsmoBSC only support so-called intra-BSC hand-over, where the hand-over is
performed between two BTSs within the same BSC.

Hand-over is enabled and configured by the use of a set of `handover`
commands.  Using those, you can tune the key parameters of the hand-over
algorithm and adapt it to your specific environment.

.Example handover configuration snippet
----
 handover 1 <1>
 handover window rxlev averaging 10 <2>
 handover window rxqual averaging 1 <3>
 handover window rxlev neighbor averaging 10 <4>
 handover power budget interval 6 <5>
 handover power budget hysteresis 3 <6>
 handover maximum distance 9999 <7>
----
<1> Enable hand-over
<2> Set the RxLev averaging window for the serving cell to 10 measurements
<3> Set the RxQual averaging window for the serving cell to 1
    measurement (no window)
<4> Set the RxLev averaging for neighbor cells to 10 measurements
<5> Check for the conditions of a power budget hand-over every 6 SACCH
    frames
<6> A neighbor cell must be at least 3 dB stronger than the serving cell
    to be considered a candidate for hand-over
<7> Perform a maximum distance hand-over if TA is larger 9999 (i.e.  never)

//TODO: Move all to BSC node

=== Timer Configuration

The GSM specification specifies a variety of timers both on the network
as well as on the mobile station side.

Those timers can be configured using the `timer tXXXX` command.

.Configurable Timers
|===
|node|timer|default|description
|network|t3101|3|Timeout for 'Immediate Assignment' (sec)
|network|t3103|5|Timeout for Handover (sec)
|network|t3105|100|Repetition of 'Physical Information' (millisec)
|network|t3107|5|?
|network|t3109|5|RSL SACCH deactivation timeout (sec)
|network|t3111|2|RSL timeout to wait before releasing the RF channel (sec)
|network|t3113|7|Time to try paging for a subscriber (sec)
|network|t3115|10|?
|network|t3117|10|?
|network|t3119|10|?
|network|t3122|10|Waiting time after 'Immediate Assignment Reject'
|network|t3141|10|?
|===

//TODO: split between BSC and MSC timers

=== Discontinuous Transmission (DTX)

GSM provides a full-duplex voice call service.  However, in any
civilized communication between human beings, only one of the
participants is speaking at any given point in time.  This means that
most of the time, one of the two directions of the radio link is
transmitting so-called 'silence frames'.

During such periods of quiescence in one of the two directions, it is
possible to suppress transmission of most of the radio bursts, as there
is no voice signal to transport.  GSM calls this feature 'Discontinuous
Transmission'.  It exists separately for uplink (DTXu) and downlink
(DTXd).

Downlink DTX is only permitted on non-primary transceivers (!= TRX0), as
TRX0 must always transmit at constant output power to ensure it is
detected during cell selection.

Uplink DTX is possible on any TRX, and serves primarily two uses:

. reducing the MS battery consumption by transmitting at a lower duty cycle
. reducing the uplink interference caused in surrounding cells that
  re-use the same ARFCN.

DTX for both uplink and downlink is implemented in the BTS.  Not all BTS
models support it.

The Osmocom BSC component can instruct the BTS to enable or disable
uplink and/or downlink DTX by means of A-bis OML.

//TODO: Test/implement, at least for uplink
//TODO: Move to BSC
