[PATCH] oml: Pass all valid state change requests to the model

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
Mon Mar 31 13:11:57 UTC 2014


Currently ADM state change request that tries to set the
administrative state to the current value are immediately ACK'ed.
Beside the caching problem, this could lead the protocol
inconsistencies if two such requests are sent one after the other and
the second arrives before the procedure of the first has finished.

This patch removes the shortcut in oml_rx_chg_adm_state() which
immediately called oml_mo_statechg_ack(mo).

Ticket: OW#1132
Sponsored-by: On-Waves ehf
---
 src/common/oml.c |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/common/oml.c b/src/common/oml.c
index 9ec773b..b7c12f7 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -765,11 +765,10 @@ static int oml_rx_chg_adm_state(struct gsm_bts *bts, struct msgb *msg)
 		return oml_fom_ack_nack(msg, NM_NACK_OBJINST_UNKN);
 
 	/* Step 2: Do some global dependency/consistency checking */
-	if (mo->nm_state.administrative == adm_state) {
-		DEBUGP(DOML, "... automatic ACK, ADM state already was %s\n",
-			get_value_string(abis_nm_adm_state_names, adm_state));
-		return oml_mo_statechg_ack(mo);
-	}
+	if (mo->nm_state.administrative == adm_state)
+		LOGP(DOML, LOGL_NOTICE,
+		     "ADM state already was %s\n",
+		     get_value_string(abis_nm_adm_state_names, adm_state));
 
 	/* Step 3: Ask BTS driver to apply the state chg */
 	return bts_model_chg_adm_state(bts, mo, obj, adm_state);
-- 
1.7.9.5





More information about the OpenBSC mailing list