Project

General

Profile

Proposed new Handover Algorithm

This page documents a proposed new handover algorithm by Andreas and Jean-Samuel. At this time, it does not reflect OpenBSC's implemenation. For the information about the current implementation, refer to the OpenBSCHandover page.

Scope of new handover/assignment process:

Handover shall ensure that the mobile station is always on the best cell during a call. This results in best speech quality and allows a lower TX level (up-link) to save battery and reduce interference. Sometimes this is not desirable, especially if a cell with large coverage becomes congested after handover. In this situation it makes sense to balance the usage between cells to prevent congestion. If a cell is congested, one or several mobile stations need to be handovered to a different cell, even if that cell is not the best cell for these mobile station. In case that a mobile station needs to handover to prevent a loss of radio link, it makes sense to handover it to a cell that is congested afterwards. In this situation, a different mobile station on the congested target cell must be handovered to a non-congested neighbor cell, to solve or balance the congestion.

In order to negotiate used codec and TCH rate during call setup, Immediate Assignment shall assign an SDCCH channel, if available. After negotiation is complete, assignment to the available TCH slot is made.

Some handover might fail or the target cell does not want the MS for some reason (e.g. limited TA). To prevent from doing ping-pong handover between cells or trying handover again and again, a penalty timer can be specified for each reason.

Notes on current implementation and enhancements:

  • It might cause problems to handover to a different cell, if the timing advance exceed a given level. If so, the MS might get handovered back, if the originating cell is a better cell. This might end up in a continuous handover loop between two cells. (This can be solved when using the penalty timer as described below.)
  • During handover, the new channel is opened on the target cell, and a timing advance of 0 is used for the initial value. It would be required to use the “lchan->rqd_ta” variable of the old channel. Also it would be required to use new timing advances from measurement reports and update “lchan->rqd_ta”.
  • The current handover logic does not allow changing channel mode. This must be enhanced
  • The handover logic can be used to do Assignment Command and Channel Mode Command and as well: If only the mode changes, but the “lchan” stays the same, Channel Mode Modify is used. If the “lchan” changes, but stays inside the same BTS, the Assignment Command is used instead of Handover Command. If the BTS changes, the Handover Command is used.

Target cell requirement A:

In order to successfully handover/assign to a better cell, the target cell must be able to continue the current call. Therefore the cell must fulfill the following criteria:

  • The handover must be enabled for the target cell, if it differs from the originating cell.
  • The assignment must be enabled for the cell, if it equals the current cell.
  • The handover penalty timer must not run for the cell.
  • If FR, EFR or HR codec is used, the cell must support this codec.
  • If FR or EFR codec is used, the cell must have a TCH/F slot type available.
  • If HR codec is used, the cell must have a TCH/H slot type available.
  • If AMR codec is used, the cell must have a TCH/F slot available, if AFS is supported by mobile and BTS.
  • If AMR codec is used, the cell must have a TCH/H slot available, if AHS is supported by mobile and BTS.
  • osmo-nitb with built-in MNCC application:
    • If AMR codec is used, the cell must support AMR codec with equal codec rate or rates. (not meaning TCH types)
  • If defined, the number of maximum unsynchronized handovers to this cell may not be exceeded. (This limits processing load for random access bursts.)

Target cell requirement B:

In order to prevent congestion of a target cell, the cell must fulfill the requirement A, but also:

  • The minimum free channels, that are defined for that cell must be maintained after handover/assignment.
  • The minimum free channels are defined for TCH/F and TCH/H slot types individually.

Target cell requirement C:

In order to balance congested cells, the target cell must fulfill the requirement A, but also:

  • The target cell (which is congested also) must have more or equal free slots after handover/assignment.
  • The number of free slots are checked for TCH/F and TCH/H slot types individually.

RX levels (down-link) and RX quality (down-link) of current and neighbor cells:

  • The RX levels of the current cell and neighbor cells are improved by a given offset, if AFS (AMR on TCH/F) is used or is a candidate for handover/assignment.
  • The RX quality of the current cell is improved by a given offset, if AFS (AMR on TCH/F) is used.
  • If AMR is used, the requirement for handover is checked for TCH/F and TCH/H. Both results (if any) are used as a candidate.
  • If AMR is used, the requirement for assignment to a different TCH slot rate is checked. The result (if available) is used as a candidate.

Better cell:

  • A better cell can have a better RX level (down-link) than the current cell + hysteresis of the current cell.

Codec negotiation:

The codec negotiation is performed the following way:

  • A list of supported codecs and TCH rates are received from the phone.
  • All unsupported codecs by the BTS are removed.
  • All unavailable TCH rates are removed.
  • If no codec is left or if both peers have no common codec, the call gets rejected with cause 34 (No channel available).
  • The first codec that is commonly preferred by both peers is selected. The TCH slot rate that is available and preferred by each peer (in case of AMR) is selected.

Handover/assignment check, if measurement report is received:

Do not trigger handover/assignment on slots which have already ongoing handover/assignment processes. If no AFS improvement offset is given, try to maintain the same TCH rate, if available.

  • If one or more 'better cells' are available, check the current and neighbor cell measurements in descending order of their RX levels (down-link):
    • Do not perform this process, if handover and is disabled for the current cell.
    • Select the best candidate that fulfills requirement B (no congestion after handover) and trigger handover or assignment.
    • If no candidate fulfills requirement B, select the best candidate that fulfills requirement C (less or equally congested cells after handover) and trigger handover or assignment.
    • If no candidate fulfills requirement C, do not perform handover nor assignment.
  • If the RX level (down-link) or RX quality (down-link) of the current cell is below minimum acceptable level, or if the maximum allowed timing advance is reached or exceeded, check the RX levels (down-link) of the current and neighbor cells in descending order of their levels:
    • Do not perform this process, if handover and assignment are disabled for the current cell.
    • Do not select candidates for handover, if their RX level or RX quality is below minimum acceptable level.
    • Select the best candidate that fulfills requirement B (no congestion after handover/assignment) and trigger handover or assignment.
    • If no candidate fulfills requirement B, select the best candidate that fulfills requirement C (less or equally congested cells after handover) and trigger handover or assignment.
    • If no candidate fulfills requirement C, select the best candidate that fulfills requirement A (ignore congestion after handover or assignment) and trigger handover or assignment.
    • If no candidate fulfills requirement A, do not perform handover nor assignment.

In case of handover triggered because maximum allowed timing advance is exceeded, the handover penalty timer is started for the originating cell.

Handover/assignment check after timer timeout:

Even if handover process tries to prevent a congestion, a cell might get congested due to new call setups or handovers to prevent loss of radio link. A timer should fire every 5 seconds to check if a cell is congested. A cell is congested, if not the minimum number of free slots are available. The minimum number can be defined for TCH/F and TCH/H individually.

Do not trigger handover/assignment on slots which have already ongoing handover/assignment processes. If no AFS improvement offset is given, try to maintain the same TCH rate, if available. When checking the number of free slots, slots with ongoing handover/assignment processes may be omitted to increase speed of resolving congestion.

If a cell is congested, all slots are checked for all their RX levels (down-link) of the current and neighbor cell measurements in descending order of their RX levels:

  • Do not perform this process, if handover and assignment are disabled for the current cell.
  • Do not select candidates for handover, if their RX level or RX quality is below minimum acceptable level.
  • Select the best candidate that fulfills requirement B (no congestion after handover/assignment), trigger handover or assignment. Candidates that will cause a change from AHS (AMR on TCH/H) to AFS (AMR on TCH/F) are omitted.
    • This process repeated until the minimum required number of free slots are restored or if all cell measurements are checked. The process ends then, otherwise:
  • Select the worst candidate that fulfills requirement B, trigger assignment. Note that only assignment candidates for changing from AHS to AFS are left.
    • This process repeated until the minimum required number of free slots are restored or if all cell measurements are checked. The process ends then, otherwise:
  • Select the best candidates that fulfill requirement C (less or equally congested cells after handover/assignment), trigger handover or assignment. Candidates that will cause a change from AHS (AMR on TCH/H) to AFS (AMR on TCH/F) are omitted.
    • This process repeated until the minimum required number of free slots are restored or if all cell measurements are checked. The process ends then, otherwise:
  • Select the worst candidate that fulfills requirement C, trigger assignment. Note that only assignment candidates for changing from AHS to AFS are left.
    • This process repeated until the minimum required number of free slots are restored or if all cell measurements are checked.

Assignment after codec negotiation is complete:

If codec negotiation is complete, the TCH slot type is assigned, if the mobile station is not already on that target TCH slot type. (Usually it is on SDCCH, if available.) If the TCH slot type is already assigned to the mobile station, the codec is set using Channel Mode Modify message.

  • Using built-in MNCC call control: It is possible for the originating mobile station to prefer TCH/H codecs, but finally switch to TCH/F, if the terminating mobile station's capability does not allow it.
  • Using external MNCC call control: If external application (like LCR) does not support Half Rate V1 codec and the phone does not support AMR codec, it can be assigned to a TCH/F slot which supports FR and EFR, instead of preferred TCH/H slot.
  • If dynamic slot allocation is supported in the future, it is required to assign an SDCCH slot first, in order to complete codec negotiation and then allocate TCH slot type and assign the mobile station to it.

Failure of handover/assignment:

Note: All penalty timers are not implemented as timers, instead their timeout time-stamp is stored, to check later if the timer is still running. Each timer is stored per connection.

  • If assignment fails:
    • If the assignment was done right after codec negotiation, the call is released with cause 41 (Temporary Failure).
    • The assignment penalty timer is started for the current cell.
  • If handover fails:
    • If handover fails because the timing advance is greater than allowed in the target cell, the handover penalty timer for timing advance is started for the target cell.
    • If handover fails, the handover penalty timer for handover failure is started for the target cell.

Configuration options at BSC:

  • Enable or disable handover during call (default: disabled)
  • Enable or disable assignment during call (default: disabled)
  • Minimum down-link RX level per BTS (default: -100 dBm)
  • Minimum RX level averaging per BTS (default: 10 measurements)
  • Minimum RX level of neighbor cells averaging per BTS (default: 10 measurements)
  • RX level handover hysteresis per BTS (default: 3 dB)
  • After how many SACCH frames (0.5 seconds) will we look for better cell (default: 6)
  • AFS (AMR on TCH/F) improvement offset for RX level (default: TDB)
  • Minimum down-link RX quality per BTS (default: 5 dB)
  • Minimum RX quality averaging per BTS (default: 1 measurement)
  • AFS (AMR on TCH/F) improvement offset for RX quality (default: TDB)
  • Maximum allowed distance (timing advances) from BTS (default: infinite)
  • Minimum number of free TCH/F slots per BTS (default: 0)
  • Minimum number of free TCH/H slots per BTS (default: 0)
  • Supported codecs per BTS (default: FR only)
  • Maximum number of parallel unsynchronized handovers to this cell at a time. (default: infinite)
  • Penalty time after handover from a cell with limited timing advance or after reject of handover to a cell with limited timing advance, before retrying the target cell again. (default: 300 seconds)
  • Penalty time after handover failure before retrying the target cell again. (default: 60 seconds)
  • Penalty time after assignment failure before allowing assignment in this cell again. (default: 60 seconds)

Debugging and logging:

  • Handover/Assignment decision process (DHODEC)
    • LOGL_NOTICE shows only handover/assignment events when actually triggered.
    • LOGL_INFO shows detailed handover/assignment decision.
    • LOGL_DEBUG shows detailed process including all candidates that are determined.