Age | Commit message (Collapse) | Author | Files | Lines |
|
This message is required for each activated channel. It is sent after
activating channel, due to IMMEDIATE ASSIGNMENT already (after paging
response or CM service request). Also it is required for the activated
channel after late assignment or handover.
It has been successfully tested with late assignment and handover to the
same BTS.
|
|
LCR requires IMSI to correlate calls for MPTY (multi party conference)
and ECT (call transfer).
|
|
Add a VTY command that will attempt to all allocate all lchans
that can provide a SDCCH. This can be used to stress-test a BTS
and the radio link timeout and activation/release of it.
|
|
If a number of retries is configured, the retry is allowed. If it fails
more than the number of retries, the penalty timer is started to prevent
subsequent retries for the given time.
Add test case that will test that handover is blocked after the exact
number of handover retries are performed.
|
|
In order to allow full codec negotiation between MS and MNCC application,
MNCC_LCHAN_MODIFY must be sent with lchan_type and lchan_mode. Both
attributes define the actual codec. They are used by OpenBSC to assign to
given channel type and set correct mode.
|
|
|
|
The handover algorithm selects the best cell, tries to solve congestion
of cells and forces handover in case of bad radio link:
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 can be handovered to a non-congested neighbor cell, to solve
or balance the congestion.
Because congestion of TCH/F and TCH/H is handled individually or bad
quality might require change from TCH/H to TCH/F, assignment instead
of handover might be used to change the channel within the same BTS. This
new algorithm handles both assigment and handover depending on the target
BTS.
|
|
|
|
A special VTY command "handover algorithm x" is used to set the algorithm.
A union of all handover option is provided, but depending on the selected
algorithm, only the specific options are accepted, others are rejected. At
VTY write, only the specific options are written to the config file.
|
|
If we want to average over up to 10 measurement reports (as configurable
at VTY), we need a history of at least 10 measurements.
|
|
When averaging measurements, only the valid reports are used. If there is
no valid report in the averaging window at all, an error is returned.
|
|
|
|
If assignment fails, we must check if the secondary lchan has been released
already. This can happen if the BTS indicates a CHANNEL FAILURE INDICATION,
then the BSC already released the secondary lchan.
|
|
|
|
Since we use late assignment now, we must assign requested channel after
paging response.
|
|
If handover is triggered without a BTS given, the handover logic will
use assignment instead of handover.
|
|
The given value is 10 * ms, so 13 is used instead of 128.
If T3105 is set at config to something greater 0, it is used instead of
the default value.
|
|
This makes sense, if silent call is used. Assignment allows to change from
SDCCH (or whatever was available) to given TCH rate.
|
|
This can happen, if a TCH/H was requested, but because it is not available,
a TCH/F is allocated. If the old channel was TCH/F already, it makes no
sense to assign it.
|
|
|
|
If the initial assignment to the TCH channel fails, the call is released
and the MNCC application receives cause 41 (Temporary Failure).
|
|
|
|
The up-to-date rqd_ta is required for assignment command. If the phone
moves, the timing advance might change. The rqd_ta will be updated by
each measurement report.
|
|
|
|
Always start with a counter of 0 for a new measurement report. If the
neigh_meas_avg is caluclated over the given window, the window is
reduced, if there are less measurement reports received so far.
|
|
get_meas_rep_avg will return -EINVAL, if the required number of
measurements are not reached. There will be no handover possible until the
given number of measurements are available.
|
|
In case of current channel equals TCH/F and we request half rate, we
must return 0, so the calling function will trigger assignment.
|
|
The lchan_type depends on selected codec, but in case of AMR, this can be
any lchan_type (TCH/F or TCH/H). The actual rate of both peers are
not relevant for ARM, because voice data is compatible.(*)
*: The rates must match. This is not yet considered.
|
|
The MNCC application must provide the lchan_type with the lchan_mode,
since FR and HR codec depends on given lchan_type. In case of AMR, the
lchan_type is ignored and an available channel type is selected. In case
of EFR, the given lchan_type (must be full rate) is used.
|
|
When the MNCC application negotiates the codec, it must be sure that the
TCH rates of the neotiation results can be assigned to the MS. Therefore
not only the codecs that are unsupported by BTS are removed, but also the
codecs that require channels that are not available.
|
|
This is needed, so channel can be negotiated before the actual channel
type is assigned.
In case there is no SDCCH available, try to assign what ever the MS requested.
If this is not possible try to assign TCH/F. If this is still not possible,
reject channel request.
|
|
Handover might require change in codec, especially when switching between
AFS (AMR on TCH/F) and AHS (AMR on TCH/H). In this case the handover
decision must know if a different target rate is supported by the MS or
not.
|
|
This penalty timer is used to temporarily block cells where handover
or assignment failed or where handover is not allowed. This is usefull
to prevent repeated handover attempts to broken cells or cells that have
limited allowed distance.
|
|
|
|
This is required for individual BTS configuration.
|
|
In order to keep processing power at BTS at a defined level, the handover
decision might want to limit maximum number of slots that require RACH
detection.
|
|
This is needed for handover algorithm to balance free slots and to prevent
congestion of one cell, while other cells still have free capacities.
|
|
This is needed, if the channel mode should change when doing handover.
A change in channel mode makes sense, if available resources at the new
BTS are different.
|
|
This makes things easier when doing tests with fake BTS and fake lchans.
There is no need to create any subscriber to test the handover process.
|
|
A CM service request must be acknowledged also, when encryption is already
enabled.
Without encryption enabled, the security status is GSM_SECURITY_NOTAVAIL,
which causes a CM service acknowledge. On initial CM service request, the
security status is GSM_SECURITY_SUCCEED, if encryption is enabled. This
will not lead to an acknowledge, because the cyphering command implies an
acknowlege. An additional CM service request requires an acknowledge, so
I added a new security status: GSM_SECURITY_ALREADY
|
|
|
|
Since codec negotiation is done automatically, there is no need to define
codec for TCH/F and TCH/H via VTY anymore.
|
|
If MNCC application requests a half rate channel, the channel might not be
available, due to different cell configuration, so the full rate channel
is used.
|
|
|
|
|
|
|
|
|
|
Some RTP endpoints may not check for bad frame indications, so a frame
that is marked as bad may be still decoded, which creates anoying noise.
This patch drops these frames. It depends on the SIP endpoint how these
dropped frames are handled. (insert silence, extrapolate speech...)
|
|
Traffic cannot sent to BTS, if there is (currently) no logical channel
associated with the transaction.
|
|
|