aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2014-03-31 15:11:57 +0200
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-04-03 12:46:03 +0200
commit57a4d121c4d756f1e97c75d85a7799db751e9f75 (patch)
tree5cebddb01064d548774cf638a878737a8aa4b39d
parent0859795878783f5b07fecb1404b2d0eacb17d208 (diff)
oml: Pass all valid state change requests to the model
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
-rw-r--r--src/common/oml.c9
1 files 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);