aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-11-05 17:13:52 +0300
committerlaforge <laforge@osmocom.org>2021-11-11 09:01:15 +0000
commitefc0d5bf57b8521b5585a36311233fe2355772dd (patch)
treed560eb0ea6adceea7d74688933b2fb8a533a97d7
parentb9fcb85a295cf02b42ac904ea582fcd496aa8480 (diff)
gsm_lchan_interf_meas_calc_avg(): fix band calculation
This patch makes osmo-bts bahave similar to ip.access nanoBTS. Change-Id: I1bcc6d6ba154f82aef95d05fb9af0eab490923c9 Related: SYS#5313
-rw-r--r--src/common/lchan.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/common/lchan.c b/src/common/lchan.c
index 29fd2470..ec1b1753 100644
--- a/src/common/lchan.c
+++ b/src/common/lchan.c
@@ -464,8 +464,11 @@ void gsm_lchan_interf_meas_calc_avg(struct gsm_lchan *lchan)
/* Calculate the average of all collected samples */
meas_avg = meas_sum / (int) meas_num;
- /* Determine the band using interference boundaries from BSC */
- for (b = 0; b < ARRAY_SIZE(bts->interference.boundary); b++) {
+ /* 3GPP TS 48.008 defines 5 interference bands, and 6 interference level
+ * boundaries (0, X1, ... X5). It's not clear how to handle values
+ * exceeding the outer boundaries (0 or X5), because bands 0 and 6 do
+ * not exist (sigh). Let's map such values to closest bands 1 and 5. */
+ for (b = 1; b < ARRAY_SIZE(bts->interference.boundary) - 1; b++) {
if (meas_avg >= bts->interference.boundary[b])
break; /* Current 'b' is the band value */
}