From aa954cd10fc5235f334b389cdeeec93e8e0452de Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 29 Nov 2017 12:18:02 +0100 Subject: OML: consider administrative state when reporting Report state as degraded if BTS or any of its TRX are administratively locked. Change-Id: Ic9ee998d972ca870ce5d039c3ed95edb6ba8b36f Related: OS#2486 --- src/libbsc/abis_nm.c | 7 ++++++- src/libbsc/bts_ipaccess_nanobts.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src/libbsc') diff --git a/src/libbsc/abis_nm.c b/src/libbsc/abis_nm.c index b7391a168..295cefde2 100644 --- a/src/libbsc/abis_nm.c +++ b/src/libbsc/abis_nm.c @@ -683,13 +683,18 @@ static int abis_nm_rx_lmt_event(struct msgb *mb) return 0; } -bool all_trx_rsl_connected(const struct gsm_bts *bts) +bool all_trx_rsl_connected_unlocked(const struct gsm_bts *bts) { const struct gsm_bts_trx *trx; + if (bts->mo.nm_state.administrative == NM_STATE_LOCKED) + return false; + llist_for_each_entry(trx, &bts->trx_list, list) { if (!trx->rsl_link) return false; + if (trx->mo.nm_state.administrative == NM_STATE_LOCKED) + return false; } return true; diff --git a/src/libbsc/bts_ipaccess_nanobts.c b/src/libbsc/bts_ipaccess_nanobts.c index 9e273f5f2..03bb7084f 100644 --- a/src/libbsc/bts_ipaccess_nanobts.c +++ b/src/libbsc/bts_ipaccess_nanobts.c @@ -50,7 +50,7 @@ static void bts_model_nanobts_e1line_bind_ops(struct e1inp_line *line); static char *get_oml_status(const struct gsm_bts *bts) { if (bts->oml_link) - return all_trx_rsl_connected(bts) ? "connected" : "degraded"; + return all_trx_rsl_connected_unlocked(bts) ? "connected" : "degraded"; return "disconnected"; } -- cgit v1.2.3