[PATCH 1/2] sysmobts: Only set RC state to LOCK if all channels are muted

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Jacob Erlbeck jerlbeck at sysmocom.de
Tue Nov 5 12:42:59 UTC 2013


Currently only mute_state[0] (refers to ts[0]) is inspected to
determine, whether the Radio Carrier's state is set to LOCK.

This patch changes this by looking at all channels and using LOCK
if (and only if) all channels have been muted successfully.

Sponsored-by: On-Waves ehf
---
 src/osmo-bts-sysmo/oml.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c
index c87acb6..4c63fd5 100644
--- a/src/osmo-bts-sysmo/oml.c
+++ b/src/osmo-bts-sysmo/oml.c
@@ -342,9 +342,15 @@ int oml_mo_rf_lock_chg(struct gsm_abis_mo *mo, uint8_t mute_state[8],
 		       int success)
 {
 	if (success) {
-		/* assume mute_state[i] == mute_state[k] */
+		int i;
+		int is_locked = 1;
+
+		for (i = 0; i < ARRAY_SIZE(mute_state); ++i)
+			if (!mute_state[i])
+				is_locked = 0;
+
 		mo->nm_state.administrative =
-			mute_state[0] ? NM_STATE_LOCKED : NM_STATE_UNLOCKED;
+			is_locked ? NM_STATE_LOCKED : NM_STATE_UNLOCKED;
 		mo->procedure_pending = 0;
 		return oml_mo_statechg_ack(mo);
 	} else {
-- 
1.7.9.5





More information about the OpenBSC mailing list