Project

General

Profile

Proposed New Handover Algorithm » History » Version 2

laforge, 02/19/2016 10:48 PM
formatting

1 1 jolly
=== Scope of new handover/assignment process: ===
2
3
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.
4
5
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.
6
7
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.
8
9
10
=== Notes on current implementation and enhancements: ===
11
12 2 laforge
 * 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.)
13
 * 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”.
14
 * The current handover logic does not allow changing channel mode. This must be enhanced
15
 * 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.
16 1 jolly
17
18
=== Target cell requirement A: ===
19
20
In order to successfully handover to a better cell, the target cell must be able to continue the current call. Therefore the cell must fulfill the following criteria:
21
22 2 laforge
 * The handover must be enabled for the target cell, if it differs from the originating cell.
23
 * The assignment must be enabled for the cell, if it equals the current cell.
24
 * The handover penalty timer must not run for the cell.
25
 * If FR, EFR or HR codec is used, the cell must support this codec.
26
 * If FR or EFR codec is used, the cell must have a TCH/F slot type available.
27
 * If HR codec is used, the cell must have a TCH/H slot type available.
28
 * If AMR codec is used, the cell must have a TCH/F slot available, if AFS is supported by mobile and BTS.
29
 * If AMR codec is used, the cell must have a TCH/H slot available, if AHS is supported by mobile and BTS.
30
 * osmo-nitb with built-in MNCC application:
31
  * If AMR codec is used, the cell must support AMR codec with equal codec rate or rates. (not meaning TCH types)
32
 * If defined, the number of maximum unsynchronized handovers to this cell may not be exceeded. (This limits processing load for random access bursts.)
33 1 jolly
34
35
=== Target cell requirement B: ===
36
37
In order to prevent congestion of a target cell, the cell must fulfill the requirement A, but also:
38
39 2 laforge
 * The minimum free channels, that are defined for that cell must be maintained after handover/assignment.
40
 * The minimum free channels are defined for TCH/F and TCH/H slot types individually.
41 1 jolly
42
43
=== Target cell requirement C: ===
44
45
In order to balance congested cells, the target cell must fulfill the requirement A, but also:
46
47 2 laforge
 * The target cell (which is congested also) must have more or equal free slots after handover/assignment. 
48
 * The number of free slots are checked for TCH/F and TCH/H slot types individually.
49 1 jolly
50
51
RX levels (down-link) and RX quality (down-link) of current and neighbor cells:
52
53
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.
54
The RX quality of the current cell is improved by a given offset, if AFS (AMR on TCH/F) is used.
55
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.
56
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.
57
58
59
=== Better cell: ===
60
61
A better cell can have a better RX level (down-link) than the current cell + hysteresis of the current cell.
62
63
64
=== Codec negotiation: ===
65
66
The codec negotiation is performed the following way:
67
68
A list of supported codecs and TCH rates are received from the phone.
69
All unsupported codecs by the BTS are removed.
70
All unavailable TCH rates are removed.
71
If no codec is left or of both peers have no common codec, the call gets rejected with cause 34 (No channel available).
72
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.
73
74
75
=== Handover/assignment check, if measurement report is received: ===
76
77
Do not trigger handover/assignment on slots which have already ongoing handover/assignment processes.
78
79
If one or more 'better cells' are available, check the current and neighbor cell measurements in descending order of their RX levels (down-link):
80
Do not perform this process, if handover is disabled for the current cell.
81
Select the best candidate that fulfills requirement B (no congestion after handover) and trigger handover.
82
If no candidate fulfills requirement B, select the best candidate that fulfills requirement C (less or equally congested cells after handover) and trigger handover.
83
If no candidate fulfills requirement C, do not perform handover.
84
85
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:
86
Do not perform this process, if handover and assignment are disabled for the current cell.
87
Do not select candidates for handover, if their RX level or RX quality is below minimum acceptable level.
88
Select the best candidate that fulfills requirement B (no congestion after handover) and trigger handover or assignment.
89
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.
90
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.
91
If no candidate fulfills requirement A, do not perform handover nor assignment.
92
93
In case of handover triggered because maximum allowed timing advance is exceeded, the handover penalty timer is started for the originating cell.
94
95
96
=== Handover/assignment check after timer timeout: ===
97
98
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.
99
100
Do not trigger handover/assignment on slots which have already ongoing handover/assignment processes. When checking the number of free slots, slots with ongoing handover/assignment processes may be omitted to increase speed of resolving congestion.
101
102
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:
103
104
Do not perform this process, if handover and assignment are disabled for the current cell.
105
Do not select candidates for handover, if their RX level or RX quality is below minimum acceptable level.
106
Select the best candidate that fulfills requirement B (no congestion after handover), trigger handover or assignment.
107
This process repeated until the minimum required number of free slots are restored or if all possible neighbor cells are checked.
108
If there the congestion cannot be solved due to congested neighbor cells, the process is repeated with the candidates that fulfill requirement C (less or equally congested cells after handover/assignment).
109
110
111
=== Assignment after codec negotiation is complete: ===
112
113
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.
114
115
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.
116
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.
117
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.
118
119
120
=== Failure of handover/assignment: ===
121
122
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.
123
124
If assignment fails:
125
If the assignment was done after codec negotiation, the call is released with cause 41 (Temporary Failure).
126
The assignment penalty timer is started for the current cell.
127
128
If handover fails:
129
If handover fails because the timing advance is greater than alloweI would only post relevant information from that document, that describes the algorithm itself. (No parts like logging, what a best cell isd in the target cell, the handover penalty timer for timing advance is started for the target cell.
130
If handover fails, the handover penalty timer for handover failure is started for the target cell.
131
132
133
=== Configuration options at BSC: ===
134
135
Enable or disable handover during call (default: disabled)
136
Enable or disable assignment during call (default: disabled)
137
138
Minimum down-link RX level per BTS (default: -100 dBm)
139
Minimum RX level averaging per BTS (default: 10 measurements)
140
Minimum RX level of neighbor cells averaging per BTS (default: 10 measurements)
141
RX level handover hysteresis per BTS (default: 3 dB)
142
After how many SACCH frames (0.5 seconds) will we look for better cell (default: 6)
143
AFS (AMR on TCH/F) improvement offset for RX level (default: TDB)
144
145
Minimum down-link RX quality per BTS (default: 5 dB)
146
Minimum RX quality averaging per BTS (default: 1 measurement)
147
AFS (AMR on TCH/F) improvement offset for RX quality (default: TDB)
148
149
Maximum allowed distance (timing advances) from BTS (default: infinite)
150
151
Minimum number of free TCH/F slots per BTS (default: 0)
152
Minimum number of free TCH/H slots per BTS (default: 0)
153
Supported codecs per BTS (default: FR only)
154
Maximum number of parallel unsynchronized handovers to this cell at a time. (default: infinite)
155
156
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)
157
Penalty time after handover failure before retrying the target cell again. (default: 60 seconds)
158
Penalty time after assignment failure before allowing assignment in this cell again. (default: 60 seconds)
159
160
161
=== Debugging and logging: '''(this part is still work in progress....)''' ===
162
163
The debugging output of Immediate Assignment, Channel Mode Modify, Assignment and Handover process is used to debug handover process and adjust parameters in a deployed network.
164
165
From a network view:
166
LOGL_DEBUG shows detailed process of handover that is performed.
167
LOGL_INFO shows current states of each cell and why handover/assignment/modify is performed or not.
168
LOGL_NOTICE shows only handover/assignment/modify events including their reasons.
169
From a mobile station's view:
170
LOGL_DEBUG same as above
171
LOGL_INFO shows current state of the connection and why handover/assignment/modify is performed or not.
172
LOGL_NOTICE shows only handover/assignment/modify events including their reasons.
Add picture from clipboard (Maximum size: 48.8 MB)