aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-11-09 15:18:10 +0300
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-11-09 15:28:30 +0300
commitbc7a490dbc79fdbd08fc4b5ed4ce653510aff5b1 (patch)
treef61b8dc39312ada99c30ad0d5aed04f99b1f143a
parentcommon/Makefile.am: reformat {AM_CPPFLAGS,AM_CFLAGS,LDADD} (diff)
downloadOsmoBTS-bc7a490dbc79fdbd08fc4b5ed4ce653510aff5b1.tar.xz
OsmoBTS-bc7a490dbc79fdbd08fc4b5ed4ce653510aff5b1.zip
rsl: exclude disabled timeslots from interference reports
It may happen after the A-bis connection recovery that the RF RESource INDication message gets sent too early, while some timeslots are not yet configured. This confuses the BSC and provokes error messages. Change-Id: I00bc6fe67ea1bbedcd5d8640e73bd8b16b9e667f Related: SYS#5313, SYS#4971
-rw-r--r--src/common/l1sap.c5
-rw-r--r--src/common/pcu_sock.c4
-rw-r--r--src/common/rsl.c5
3 files changed, 14 insertions, 0 deletions
diff --git a/src/common/l1sap.c b/src/common/l1sap.c
index 8dee2093..502bcef5 100644
--- a/src/common/l1sap.c
+++ b/src/common/l1sap.c
@@ -597,6 +597,11 @@ static void l1sap_interf_meas_calc_avg(struct gsm_bts_trx *trx)
for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) {
struct gsm_bts_trx_ts *ts = &trx->ts[tn];
+ if (ts->mo.nm_state.operational != NM_OPSTATE_ENABLED)
+ continue;
+ if (ts->mo.nm_state.availability != NM_AVSTATE_OK)
+ continue;
+
for (ln = 0; ln < ARRAY_SIZE(ts->lchan); ln++) {
struct gsm_lchan *lchan = &ts->lchan[ln];
diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c
index f8a0f55e..0018acb6 100644
--- a/src/common/pcu_sock.c
+++ b/src/common/pcu_sock.c
@@ -579,6 +579,10 @@ int pcu_tx_interf_ind(const struct gsm_bts_trx *trx, uint32_t fn)
const struct gsm_bts_trx_ts *ts = &trx->ts[tn];
const struct gsm_lchan *lchan = &ts->lchan[0];
+ if (ts->mo.nm_state.operational != NM_OPSTATE_ENABLED)
+ continue;
+ if (ts->mo.nm_state.availability != NM_AVSTATE_OK)
+ continue;
if (ts_pchan(ts) != GSM_PCHAN_PDCH)
continue;
diff --git a/src/common/rsl.c b/src/common/rsl.c
index 4c84f219..9b73869a 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -442,6 +442,11 @@ int rsl_tx_rf_res(struct gsm_bts_trx *trx)
for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) {
const struct gsm_bts_trx_ts *ts = &trx->ts[tn];
+ if (ts->mo.nm_state.operational != NM_OPSTATE_ENABLED)
+ continue;
+ if (ts->mo.nm_state.availability != NM_AVSTATE_OK)
+ continue;
+
for (ln = 0; ln < ARRAY_SIZE(ts->lchan); ln++) {
const struct gsm_lchan *lchan = &ts->lchan[ln];