aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2023-01-05 15:43:36 +0100
committerdexter <pmaier@sysmocom.de>2023-01-30 10:36:08 +0000
commita68cdf57a31920969729f801507ba1e39d05be86 (patch)
treed88a018c4f60fa17e79b7b863531e7eceba22160
parent2a24613e39c730374ed7f1304fc591aaafa6c9cf (diff)
pcu_sock: check trx mo state
Make sure that the TRX MO state is enabled and unlocked before filling in any TRX information into the info indication Change-Id: I7a93826e6b0df187425310cb82854e7d7fb47e72 Related: OS#5198
-rw-r--r--src/osmo-bsc/pcu_sock.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c
index ddcf66b54..289382126 100644
--- a/src/osmo-bsc/pcu_sock.c
+++ b/src/osmo-bsc/pcu_sock.c
@@ -33,6 +33,7 @@
#include <osmocom/core/logging.h>
#include <osmocom/gsm/l1sap.h>
#include <osmocom/gsm/gsm0502.h>
+#include <osmocom/bsc/abis_nm.h>
#include <osmocom/bsc/gsm_data.h>
#include <osmocom/bsc/pcu_if.h>
@@ -113,6 +114,14 @@ static void info_ind_fill_trx(struct gsm_pcu_if_info_trx *trx_info, const struct
trx_info->pdch_mask = 0;
trx_info->arfcn = trx->arfcn;
+ if (trx->mo.nm_state.operational != NM_OPSTATE_ENABLED ||
+ trx->mo.nm_state.administrative != NM_STATE_UNLOCKED) {
+ LOG_TRX(trx, DPCU, LOGL_INFO, "unavailable for PCU (op=%s adm=%s)\n",
+ abis_nm_opstate_name(trx->mo.nm_state.operational),
+ abis_nm_admin_name(trx->mo.nm_state.administrative));
+ return;
+ }
+
for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) {
ts = &trx->ts[tn];
if (ts->mo.nm_state.operational != NM_OPSTATE_ENABLED ||