Change in osmo-bsc[master]: hodec2: don't apply AFS bias to same-cell lchans

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/.

neels gerrit-no-reply at lists.osmocom.org
Fri Jun 18 09:40:27 UTC 2021


neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24608 )

Change subject: hodec2: don't apply AFS bias to same-cell lchans
......................................................................

hodec2: don't apply AFS bias to same-cell lchans

The AFS bias actually should not apply to local cell lchans, because it
makes no sense for intra-cell considerations:

- same-cell lchans obviously have identical rxlev;
- any nonzero AFS bias thus always raises the TCH/F above the TCH/H;
- for intra-cell reassignment, the power budget hysteresis is,
  naturally, not applied.

So, before this patch, setting AFS bias even to only 1 would
unconditionally move all (AMR) TCH/H lchans over to free TCH/F lchans in
the same cell.

Recent patch Id40d1cf8b58410c7d4eb87407fe8b8106e352438 implements
explicit upgrade from TCH/H to TCH/F *if* the TCH/H is experiencing low
rxqual or low rxlev, as a proper replacement for intra-cell AFS bias.

Related: SYS#5198 SYS#5365
Change-Id: I315f24123ae016887ab91666870ce252e096f90f
---
M src/osmo-bsc/handover_decision_2.c
M tests/handover/test_amr_tch_h_and_afs_bias.ho_vty
2 files changed, 9 insertions(+), 12 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  dexter: Looks good to me, but someone else must approve
  Jenkins Builder: Verified



diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c
index 9d4f1e9..d4ebc41 100644
--- a/src/osmo-bsc/handover_decision_2.c
+++ b/src/osmo-bsc/handover_decision_2.c
@@ -1295,9 +1295,10 @@
 			continue;
 
 		better = clist[i].target.rxlev - clist[i].current.rxlev;
-		/* Apply AFS bias? */
+		/* Apply AFS bias? Skip AFS bias for all intra-cell candidates. */
 		afs_bias = 0;
-		if (ahs && (clist[i].requirements & REQUIREMENT_B_TCHF))
+		if (clist[i].target.bts != bts
+		    && ahs && (clist[i].requirements & REQUIREMENT_B_TCHF))
 			afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].target.bts->ho);
 		better += afs_bias;
 		if (better > best_better_db) {
@@ -1328,9 +1329,10 @@
 			continue;
 
 		better = clist[i].target.rxlev - clist[i].current.rxlev;
-		/* Apply AFS bias? */
+		/* Apply AFS bias? Skip AFS bias for all intra-cell candidates. */
 		afs_bias = 0;
-		if (ahs && (clist[i].requirements & REQUIREMENT_C_TCHF))
+		if (clist[i].target.bts != bts
+		    && ahs && (clist[i].requirements & REQUIREMENT_C_TCHF))
 			afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].target.bts->ho);
 		better += afs_bias;
 		if (better > best_better_db) {
@@ -1365,11 +1367,11 @@
 			continue;
 
 		better = clist[i].target.rxlev - clist[i].current.rxlev;
-		/* Apply AFS bias?
+		/* Apply AFS bias? Skip AFS bias for all intra-cell candidates.
 		 * (never to remote-BSS neighbors, since we will not change the lchan type for those.) */
 		afs_bias = 0;
 		if (ahs && (clist[i].requirements & REQUIREMENT_A_TCHF)
-		    && clist[i].target.bts)
+		    && clist[i].target.bts && clist[i].target.bts != bts)
 			afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].target.bts->ho);
 		better += afs_bias;
 		if (better > best_better_db
diff --git a/tests/handover/test_amr_tch_h_and_afs_bias.ho_vty b/tests/handover/test_amr_tch_h_and_afs_bias.ho_vty
index 127727f..462cb0d 100644
--- a/tests/handover/test_amr_tch_h_and_afs_bias.ho_vty
+++ b/tests/handover/test_amr_tch_h_and_afs_bias.ho_vty
@@ -10,9 +10,4 @@
 set-ts-use trx 0 0 states        *    -     -     -     TCH/H- -     -     *
 meas-rep lchan 0 0 4 0 rxlev 50 rxqual 1 ta 0
 # The TCH/H should stay where it is, because its levels are fine.
-#expect-no-chan
-# FAIL: osmo-bsc applies AFS bias to the intra-cell move from TCH/H to TCH/F.
-# but intra-cell re-assignment does not employ a bower budget hysteresis.
-# So in the presence of afs-bias, all TCH/H *always* move over to TCH/F.
-# That should only happen when rxlev or rxqual ratings are too low.
-expect-as from lchan 0 0 4 0 to lchan 0 0 1 0
+expect-no-chan

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24608
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I315f24123ae016887ab91666870ce252e096f90f
Gerrit-Change-Number: 24608
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Hoernchen <ewild at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de>
Gerrit-CC: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210618/716c081e/attachment.htm>


More information about the gerrit-log mailing list