hodec2: fix low rxlev tch/h<->tch/f oscillation

Related: SYS#5365
Change-Id: Ibc3ac7ce6190b4e854fa42d5376a7038ddfbd6e5
This commit is contained in:
Neels Hofmeyr 2021-06-29 15:33:13 +02:00
parent 26ce6b3aa4
commit 4cff729353
2 changed files with 5 additions and 11 deletions

View File

@ -1191,7 +1191,10 @@ static void collect_candidates_for_lchan(struct gsm_lchan *lchan,
assignment = ho_get_hodec2_as_active(bts->ho);
handover = ho_get_ho_active(bts->ho);
if (assignment)
/* See if re-assignment within the same cell can resolve congestion.
* But: when TCH/F has low rxlev, do not re-assign. If a low rxlev TCH/F were re-assigned to TCH/H, we would
* subsequently oscillate back to TCH/F due to low rxlev. So skip TCH/F with low rxlev. */
if (assignment && !(lchan->type == GSM_LCHAN_TCH_F && is_low_rxlev(rxlev_current, bts->ho)))
collect_assignment_candidate(lchan, clist, candidates, rxlev_current);
if (handover) {

View File

@ -17,13 +17,4 @@ expect-ts-use trx 0 0 states * TCH/F - - - - - *
meas-rep lchan 0 0 1 0 rxlev 23 rxqual 1 ta 0
congestion-check
# FAIL: should stay on TCH/F because rxlev is low, do not oscillate between TCH/F and /H.
expect-as from lchan 0 0 1 0 to lchan 0 0 4 0
expect-ts-use trx 0 0 states * - - - TCH/H- - - *
meas-rep lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
expect-as from lchan 0 0 4 0 to lchan 0 0 1 0
expect-ts-use trx 0 0 states * TCH/F - - - - - *
meas-rep lchan 0 0 1 0 rxlev 23 rxqual 1 ta 0
congestion-check
expect-as from lchan 0 0 1 0 to lchan 0 0 4 0
expect-ts-use trx 0 0 states * - - - TCH/H- - - *
expect-no-chan