pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32212 )
Change subject: NM: NACK received OML OPSTART if no attributes were set beforehand ......................................................................
NM: NACK received OML OPSTART if no attributes were set beforehand
Related: OS#5992 Change-Id: I771ecc2f60873a3549e8a07a2e57c7948dfc993e --- M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_radio_carrier_fsm.c 5 files changed, 40 insertions(+), 0 deletions(-)
Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 86151ae..e51a151 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -133,6 +133,13 @@ oml_fom_ack_nack_copy_msg(setattr_data->msg, rc); break; case NM_EV_RX_OPSTART: +#if 0 + /* Disabled because osmo-bsc doesn't send SetAttr on BB_TRANSC object */ + if (!bb_transc->mo.setattr_success) { + oml_mo_opstart_nack(&bb_transc->mo, NM_NACK_CANT_PERFORM); + return; + } +#endif bts_model_opstart(trx->bts, &bb_transc->mo, bb_transc); break; case NM_EV_OPSTART_ACK: diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index a4879b5..13a4727 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -121,6 +121,10 @@ oml_fom_ack_nack_copy_msg(setattr_data->msg, rc); break; case NM_EV_RX_OPSTART: + if (!bts->mo.setattr_success) { + oml_mo_opstart_nack(&bts->mo, NM_NACK_CANT_PERFORM); + return; + } bts_model_opstart(bts, &bts->mo, bts); break; case NM_EV_OPSTART_ACK: diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index 7e3d7d4..4767f9c 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -97,6 +97,13 @@ oml_fom_ack_nack_copy_msg(setattr_data->msg, rc); break; case NM_EV_RX_OPSTART: +#if 0 + /* Disabled because osmo-bsc doesn't send SetAttr on SITE_MGR object */ + if (!site_mgr->mo.setattr_success) { + oml_mo_opstart_nack(&site_mgr->mo, NM_NACK_CANT_PERFORM); + return; + } +#endif bts_model_opstart(NULL, &site_mgr->mo, site_mgr); break; case NM_EV_OPSTART_ACK: diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index 76c860d..252df83 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -107,6 +107,10 @@ case NM_EV_RX_OPSTART: LOGPFSML(fi, LOGL_NOTICE, "BSC trying to activate TS while still in avail=dependency. " "Allowing it to stay backward-compatible with older osmo-bts versions, but BSC is wrong.\n"); + if (!ts->mo.setattr_success) { + oml_mo_opstart_nack(&ts->mo, NM_NACK_CANT_PERFORM); + return; + } bts_model_opstart(ts->trx->bts, &ts->mo, ts); break; case NM_EV_OPSTART_ACK: @@ -154,6 +158,10 @@ oml_fom_ack_nack_copy_msg(setattr_data->msg, rc); break; case NM_EV_RX_OPSTART: + if (!ts->mo.setattr_success) { + oml_mo_opstart_nack(&ts->mo, NM_NACK_CANT_PERFORM); + return; + } bts_model_opstart(ts->trx->bts, &ts->mo, ts); break; case NM_EV_OPSTART_ACK: diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index f76f522..0596a9c 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -114,6 +114,10 @@ oml_fom_ack_nack_copy_msg(setattr_data->msg, rc); break; case NM_EV_RX_OPSTART: + if (!trx->mo.setattr_success) { + oml_mo_opstart_nack(&trx->mo, NM_NACK_CANT_PERFORM); + return; + } bts_model_opstart(trx->bts, &trx->mo, trx); break; case NM_EV_OPSTART_ACK: