aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/nm_bts_sm_fsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/nm_bts_sm_fsm.c')
-rw-r--r--src/common/nm_bts_sm_fsm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c
index 267341e7..2d433153 100644
--- a/src/common/nm_bts_sm_fsm.c
+++ b/src/common/nm_bts_sm_fsm.c
@@ -55,6 +55,7 @@ static void ev_dispatch_children(struct gsm_bts_sm *site_mgr, uint32_t event)
static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)
{
struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv;
+ site_mgr->mo.setattr_success = false;
site_mgr->mo.opstart_success = false;
oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED);
}
@@ -76,6 +77,7 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event
static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)
{
struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv;
+ site_mgr->mo.setattr_success = false;
site_mgr->mo.opstart_success = false;
oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1);
}
@@ -83,8 +85,15 @@ static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t p
static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data)
{
struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv;
+ struct nm_fsm_ev_setattr_data *setattr_data;
switch (event) {
+ case NM_EV_SETATTR_ACK:
+ case NM_EV_SETATTR_NACK:
+ setattr_data = (struct nm_fsm_ev_setattr_data *)data;
+ site_mgr->mo.setattr_success = setattr_data->cause == 0;
+ oml_fom_ack_nack(setattr_data->msg, setattr_data->cause);
+ break;
case NM_EV_OPSTART_ACK:
site_mgr->mo.opstart_success = true;
oml_mo_opstart_ack(&site_mgr->mo);
@@ -144,6 +153,8 @@ static struct osmo_fsm_state nm_bts_sm_fsm_states[] = {
},
[NM_BTS_SM_ST_OP_DISABLED_OFFLINE] = {
.in_event_mask =
+ X(NM_EV_SETATTR_ACK) |
+ X(NM_EV_SETATTR_NACK) |
X(NM_EV_OPSTART_ACK) |
X(NM_EV_OPSTART_NACK),
.out_state_mask =