Max has submitted this change and it was merged.

Change subject: OML: consider administrative state when reporting
......................................................................


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
---
M include/osmocom/bsc/abis_nm.h
M src/libbsc/abis_nm.c
M src/libbsc/bts_ipaccess_nanobts.c
3 files changed, 8 insertions(+), 3 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/bsc/abis_nm.h b/include/osmocom/bsc/abis_nm.h
index e25cb4f..b0cb166 100644
--- a/include/osmocom/bsc/abis_nm.h
+++ b/include/osmocom/bsc/abis_nm.h
@@ -162,7 +162,7 @@
 const char *ipacc_testres_name(uint8_t res);
 
 /* Functions calling into other code parts */
-bool all_trx_rsl_connected(const struct gsm_bts *bts);
+bool all_trx_rsl_connected_unlocked(const struct gsm_bts *bts);
 int nm_is_running(struct gsm_nm_state *s);
 
 int abis_nm_vty_init(void);
diff --git a/src/libbsc/abis_nm.c b/src/libbsc/abis_nm.c
index b7391a1..295cefd 100644
--- a/src/libbsc/abis_nm.c
+++ b/src/libbsc/abis_nm.c
@@ -683,13 +683,18 @@
        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 9e273f5..03bb708 100644
--- a/src/libbsc/bts_ipaccess_nanobts.c
+++ b/src/libbsc/bts_ipaccess_nanobts.c
@@ -50,7 +50,7 @@
 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";
 }

-- 
To view, visit https://gerrit.osmocom.org/5081
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic9ee998d972ca870ce5d039c3ed95edb6ba8b36f
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Max <msur...@sysmocom.de>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msur...@sysmocom.de>

Reply via email to