This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24797 ) Change subject: hodec2: fix low rxqual tch/h<->tch/f oscillation ...................................................................... hodec2: fix low rxqual tch/h<->tch/f oscillation Related: SYS#5198 Change-Id: I96cd5a494e661ba3bb0b6d22d25a9968d2a6813c --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_amr_tch_h_to_f_rxqual_oscillation.ho_vty 2 files changed, 13 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 7a14f06..0966583 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -265,6 +265,15 @@ && rxlev2dbm(rxlev_current) < ho_get_hodec2_min_rxlev(neigh_cfg); } +static bool is_low_rxqual(int rxqual_current, struct handover_cfg *neigh_cfg) +{ + /* min_rxqual is actually a bit of a misnomer, low quality is a high number. So the "min" refers to the minimum + * acceptable level of quality, and "min or better" here means "rxqual number must be SMALLER-or-equal than the + * min-rxqual setting". */ + return rxqual_current >= 0 + && rxqual_current > ho_get_hodec2_min_rxqual(neigh_cfg); +} + /* obtain averaged rxlev for given neighbor */ static int neigh_meas_avg(struct neigh_meas_proc *nmp, int window) { @@ -1203,7 +1212,9 @@ /* 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))) + if (assignment + && !(lchan->type == GSM_LCHAN_TCH_F + && (is_low_rxlev(rxlev_current, bts->ho) || is_low_rxqual(current_rxqual(lchan), bts->ho)))) collect_assignment_candidate(lchan, clist, candidates, rxlev_current); if (handover) { diff --git a/tests/handover/test_amr_tch_h_to_f_rxqual_oscillation.ho_vty b/tests/handover/test_amr_tch_h_to_f_rxqual_oscillation.ho_vty index a98e917..e628f03 100644 --- a/tests/handover/test_amr_tch_h_to_f_rxqual_oscillation.ho_vty +++ b/tests/handover/test_amr_tch_h_to_f_rxqual_oscillation.ho_vty @@ -17,13 +17,4 @@ meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 congestion-check -# FAIL: should stay on TCH/F because rxqual 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 30 rxqual 6 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 30 rxqual 6 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 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I96cd5a494e661ba3bb0b6d22d25a9968d2a6813c Gerrit-Change-Number: 24797 Gerrit-PatchSet: 3 Gerrit-Owner: neels <nhofmeyr at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210630/d5ef44dd/attachment.htm>