aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/nm_channel_fsm.c
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2023-04-04 14:17:04 +0200
committerpespin <pespin@sysmocom.de>2023-04-06 10:28:22 +0000
commit4190537d7d4414e2545d9808d922b90ed807675a (patch)
tree37d1ea79ef23d5b72651f54466f33d7efb2b6204 /src/common/nm_channel_fsm.c
parentcea6c230ada9b1fea7cc517946a1c16caccaaa51 (diff)
NM: NACK received OML OPSTART if no attributes were set beforehand
Diffstat (limited to 'src/common/nm_channel_fsm.c')
-rw-r--r--src/common/nm_channel_fsm.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c
index 76c860da..252df83d 100644
--- a/src/common/nm_channel_fsm.c
+++ b/src/common/nm_channel_fsm.c
@@ -107,6 +107,10 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event,
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 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, voi
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: