<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/25473">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, approved
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Allow setting administrative state through oml_mo_state_chg()<br><br>This way it can be changed together with operative/availability state,<br>and changes announced to the BSC if present.<br><br>This commit presents no real change in osmo-bts behavior, since the only<br>place where adm_state is passed different than -1 is in<br>st_op_disabled_notinstalled_on_enter(), which is actually never called<br>(yet) since it's the initial state and no other states transition later<br>to it.<br><br>However, this will change in the future once we support re-connecting to<br>a (possibly different) BSC, which means objects will need to be moved to<br>that state to restart the whole OML install procedure on the new BSC.<br><br>Change-Id: Ifdc6a1dfb673c0ab915ddf2a9d372928f4f86b4c<br>---<br>M include/osmo-bts/oml.h<br>M src/common/nm_bb_transc_fsm.c<br>M src/common/nm_bts_fsm.c<br>M src/common/nm_bts_sm_fsm.c<br>M src/common/nm_channel_fsm.c<br>M src/common/nm_radio_carrier_fsm.c<br>M src/common/oml.c<br>M src/osmo-bts-lc15/oml.c<br>M src/osmo-bts-oc2g/oml.c<br>M src/osmo-bts-octphy/l1_oml.c<br>M src/osmo-bts-omldummy/bts_model.c<br>M src/osmo-bts-sysmo/oml.c<br>M src/osmo-bts-trx/l1_if.c<br>M src/osmo-bts-virtual/bts_model.c<br>14 files changed, 47 insertions(+), 38 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmo-bts/oml.h b/include/osmo-bts/oml.h</span><br><span>index 27afc53..42284f9 100644</span><br><span>--- a/include/osmo-bts/oml.h</span><br><span>+++ b/include/osmo-bts/oml.h</span><br><span>@@ -47,7 +47,7 @@</span><br><span> int oml_mo_statechg_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause);</span><br><span> </span><br><span> /* Change the state and send STATE CHG REP */</span><br><span style="color: hsl(0, 100%, 40%);">-int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state);</span><br><span style="color: hsl(120, 100%, 40%);">+int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state, int adm_state);</span><br><span> </span><br><span> /* First initialization of MO, does _not_ generate state changes */</span><br><span> void oml_mo_state_init(struct gsm_abis_mo *mo, int op_state, int avail_state);</span><br><span>diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c</span><br><span>index cffd9ea..75ff1aa 100644</span><br><span>--- a/src/common/nm_bb_transc_fsm.c</span><br><span>+++ b/src/common/nm_bb_transc_fsm.c</span><br><span>@@ -49,7 +49,7 @@</span><br><span> {</span><br><span> struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv;</span><br><span> bb_transc->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED);</span><br><span> }</span><br><span> </span><br><span> static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -89,7 +89,7 @@</span><br><span> int i;</span><br><span> </span><br><span> bb_transc->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1);</span><br><span> </span><br><span> if (prev_state == NM_BBTRANSC_ST_OP_ENABLED) {</span><br><span> for (i = 0; i < TRX_NR_TS; i++) {</span><br><span>@@ -157,7 +157,7 @@</span><br><span> struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc);</span><br><span> uint8_t tn;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1);</span><br><span> /* Mark Dependency TS as Offline (ready to be Opstarted) */</span><br><span> for (tn = 0; tn < TRX_NR_TS; tn++) {</span><br><span> struct gsm_bts_trx_ts *ts = &trx->ts[tn];</span><br><span>diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c</span><br><span>index 12f1a61..6575b54 100644</span><br><span>--- a/src/common/nm_bts_fsm.c</span><br><span>+++ b/src/common/nm_bts_fsm.c</span><br><span>@@ -49,7 +49,7 @@</span><br><span> {</span><br><span> struct gsm_bts *bts = (struct gsm_bts *)fi->priv;</span><br><span> bts->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED);</span><br><span> }</span><br><span> </span><br><span> static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -70,7 +70,7 @@</span><br><span> {</span><br><span> struct gsm_bts *bts = (struct gsm_bts *)fi->priv;</span><br><span> bts->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1);</span><br><span> }</span><br><span> </span><br><span> static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -95,7 +95,7 @@</span><br><span> static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span> {</span><br><span> struct gsm_bts *bts = (struct gsm_bts *)fi->priv;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1);</span><br><span> }</span><br><span> </span><br><span> static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c</span><br><span>index dedbacb..864aeab 100644</span><br><span>--- a/src/common/nm_bts_sm_fsm.c</span><br><span>+++ b/src/common/nm_bts_sm_fsm.c</span><br><span>@@ -49,7 +49,7 @@</span><br><span> {</span><br><span> struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv;</span><br><span> site_mgr->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED);</span><br><span> }</span><br><span> </span><br><span> static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -70,7 +70,7 @@</span><br><span> {</span><br><span> struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv;</span><br><span> site_mgr->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1);</span><br><span> }</span><br><span> </span><br><span> static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -95,7 +95,7 @@</span><br><span> static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span> {</span><br><span> struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1);</span><br><span> }</span><br><span> </span><br><span> static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c</span><br><span>index 15be6c6..4983c27 100644</span><br><span>--- a/src/common/nm_channel_fsm.c</span><br><span>+++ b/src/common/nm_channel_fsm.c</span><br><span>@@ -56,7 +56,7 @@</span><br><span> {</span><br><span> struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv;</span><br><span> ts->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED);</span><br><span> }</span><br><span> </span><br><span> static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -80,7 +80,7 @@</span><br><span> {</span><br><span> struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv;</span><br><span> ts->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY, -1);</span><br><span> }</span><br><span> </span><br><span> static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -117,7 +117,7 @@</span><br><span> {</span><br><span> struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv;</span><br><span> ts->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1);</span><br><span> }</span><br><span> </span><br><span> static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -147,7 +147,7 @@</span><br><span> static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span> {</span><br><span> struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&ts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&ts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1);</span><br><span> }</span><br><span> </span><br><span> static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c</span><br><span>index ad5fc04..2bae273 100644</span><br><span>--- a/src/common/nm_radio_carrier_fsm.c</span><br><span>+++ b/src/common/nm_radio_carrier_fsm.c</span><br><span>@@ -49,7 +49,7 @@</span><br><span> {</span><br><span> struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv;</span><br><span> trx->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED);</span><br><span> }</span><br><span> </span><br><span> static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -82,7 +82,7 @@</span><br><span> unsigned int i;</span><br><span> </span><br><span> trx->mo.opstart_success = false;</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1);</span><br><span> </span><br><span> if (prev_state == NM_RCARRIER_ST_OP_ENABLED) {</span><br><span> for (i = 0; i < TRX_NR_TS; i++) {</span><br><span>@@ -147,7 +147,7 @@</span><br><span> struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv;</span><br><span> unsigned int tn;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&trx->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&trx->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1);</span><br><span> /* Mark Dependency TS as Offline (ready to be Opstarted) */</span><br><span> for (tn = 0; tn < TRX_NR_TS; tn++) {</span><br><span> struct gsm_bts_trx_ts *ts = &trx->ts[tn];</span><br><span>diff --git a/src/common/oml.c b/src/common/oml.c</span><br><span>index 819b033..d2cf877 100644</span><br><span>--- a/src/common/oml.c</span><br><span>+++ b/src/common/oml.c</span><br><span>@@ -340,12 +340,13 @@</span><br><span> mo->nm_state.operational = op_state;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state)</span><br><span style="color: hsl(120, 100%, 40%);">+int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state, int adm_state)</span><br><span> {</span><br><span> int rc = 0;</span><br><span> </span><br><span> if ((op_state != -1 && mo->nm_state.operational != op_state) ||</span><br><span style="color: hsl(0, 100%, 40%);">- (avail_state != -1 && mo->nm_state.availability != avail_state)) {</span><br><span style="color: hsl(120, 100%, 40%);">+ (avail_state != -1 && mo->nm_state.availability != avail_state) ||</span><br><span style="color: hsl(120, 100%, 40%);">+ (adm_state != -1 && mo->nm_state.administrative != adm_state)) {</span><br><span> if (avail_state != -1) {</span><br><span> LOGP(DOML, LOGL_INFO, "%s AVAIL STATE %s -> %s\n",</span><br><span> gsm_abis_mo_name(mo),</span><br><span>@@ -361,6 +362,14 @@</span><br><span> mo->nm_state.operational = op_state;</span><br><span> osmo_signal_dispatch(SS_GLOBAL, S_NEW_OP_STATE, NULL);</span><br><span> }</span><br><span style="color: hsl(120, 100%, 40%);">+ if (adm_state != -1) {</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGP(DOML, LOGL_INFO, "%s ADMIN STATE %s -> %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ gsm_abis_mo_name(mo),</span><br><span style="color: hsl(120, 100%, 40%);">+ abis_nm_admin_name(mo->nm_state.administrative),</span><br><span style="color: hsl(120, 100%, 40%);">+ abis_nm_admin_name(adm_state));</span><br><span style="color: hsl(120, 100%, 40%);">+ mo->nm_state.administrative = adm_state;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> /* send state change report */</span><br><span> rc = oml_tx_state_changed(mo);</span><br><span>diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c</span><br><span>index b4945be..9d0d99a 100644</span><br><span>--- a/src/osmo-bts-lc15/oml.c</span><br><span>+++ b/src/osmo-bts-lc15/oml.c</span><br><span>@@ -1906,13 +1906,13 @@</span><br><span> case NM_OC_GPRS_NSE:</span><br><span> case NM_OC_GPRS_CELL:</span><br><span> case NM_OC_GPRS_NSVC:</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1);</span><br><span> rc = oml_mo_opstart_ack(mo);</span><br><span> if (mo->obj_class == NM_OC_BTS) {</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK, -1);</span><br><span> }</span><br><span> break;</span><br><span> default:</span><br><span>diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c</span><br><span>index 9791ab8..b50e151 100644</span><br><span>--- a/src/osmo-bts-oc2g/oml.c</span><br><span>+++ b/src/osmo-bts-oc2g/oml.c</span><br><span>@@ -1898,10 +1898,10 @@</span><br><span> break;</span><br><span> case NM_OC_BTS:</span><br><span> rc = osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK, -1);</span><br><span> break;</span><br><span> case NM_OC_RADIO_CARRIER:</span><br><span> trx = (struct gsm_bts_trx *) obj;</span><br><span>@@ -1918,7 +1918,7 @@</span><br><span> case NM_OC_GPRS_NSE:</span><br><span> case NM_OC_GPRS_CELL:</span><br><span> case NM_OC_GPRS_NSVC:</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1);</span><br><span> rc = oml_mo_opstart_ack(mo);</span><br><span> break;</span><br><span> default:</span><br><span>diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c</span><br><span>index 1e2f89d..1830599 100644</span><br><span>--- a/src/osmo-bts-octphy/l1_oml.c</span><br><span>+++ b/src/osmo-bts-octphy/l1_oml.c</span><br><span>@@ -1788,7 +1788,7 @@</span><br><span> case NM_OC_GPRS_NSE:</span><br><span> case NM_OC_GPRS_CELL:</span><br><span> case NM_OC_GPRS_NSVC:</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1);</span><br><span> rc = oml_mo_opstart_ack(mo);</span><br><span> break;</span><br><span> default:</span><br><span>diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c</span><br><span>index 46558a1..5bfcfca 100644</span><br><span>--- a/src/osmo-bts-omldummy/bts_model.c</span><br><span>+++ b/src/osmo-bts-omldummy/bts_model.c</span><br><span>@@ -143,7 +143,7 @@</span><br><span> case NM_OC_GPRS_NSE:</span><br><span> case NM_OC_GPRS_CELL:</span><br><span> case NM_OC_GPRS_NSVC:</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1);</span><br><span> rc = oml_mo_opstart_ack(mo);</span><br><span> break;</span><br><span> default:</span><br><span>diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c</span><br><span>index 93ecf90..194afcd 100644</span><br><span>--- a/src/osmo-bts-sysmo/oml.c</span><br><span>+++ b/src/osmo-bts-sysmo/oml.c</span><br><span>@@ -1776,10 +1776,10 @@</span><br><span> break;</span><br><span> case NM_OC_BTS:</span><br><span> rc = osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK, -1);</span><br><span> break;</span><br><span> case NM_OC_RADIO_CARRIER:</span><br><span> trx = (struct gsm_bts_trx *) obj;</span><br><span>@@ -1796,7 +1796,7 @@</span><br><span> case NM_OC_GPRS_NSE:</span><br><span> case NM_OC_GPRS_CELL:</span><br><span> case NM_OC_GPRS_NSVC:</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1);</span><br><span> rc = oml_mo_opstart_ack(mo);</span><br><span> break;</span><br><span> default:</span><br><span>diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c</span><br><span>index 754e9d7..6b417f4 100644</span><br><span>--- a/src/osmo-bts-trx/l1_if.c</span><br><span>+++ b/src/osmo-bts-trx/l1_if.c</span><br><span>@@ -604,7 +604,7 @@</span><br><span> case NM_OC_GPRS_NSE:</span><br><span> case NM_OC_GPRS_CELL:</span><br><span> case NM_OC_GPRS_NSVC:</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1);</span><br><span> rc = oml_mo_opstart_ack(mo);</span><br><span> break;</span><br><span> default:</span><br><span>diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c</span><br><span>index af8a6f2..48e9400 100644</span><br><span>--- a/src/osmo-bts-virtual/bts_model.c</span><br><span>+++ b/src/osmo-bts-virtual/bts_model.c</span><br><span>@@ -156,7 +156,7 @@</span><br><span> case NM_OC_GPRS_NSE:</span><br><span> case NM_OC_GPRS_CELL:</span><br><span> case NM_OC_GPRS_NSVC:</span><br><span style="color: hsl(0, 100%, 40%);">- oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK);</span><br><span style="color: hsl(120, 100%, 40%);">+ oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1);</span><br><span> rc = oml_mo_opstart_ack(mo);</span><br><span> break;</span><br><span> default:</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/25473">change 25473</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-bts/+/25473"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ifdc6a1dfb673c0ab915ddf2a9d372928f4f86b4c </div>
<div style="display:none"> Gerrit-Change-Number: 25473 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>