nm_statechg_signal_data: Convert state ptr to data
There's no need to use pointers there, it is only asking for errors from code handling the data structe from the signal by attempting to change them. Even for mem size point of view it doesn't make sense, since it's 3 byte vs a 4 byte pointer. Furthermore, this is a preparation for new commit, where the NM object current state will be updated before emitting the signal. This patch eases a lot the follow up mentioned patch. Change-Id: I9b648dfd8392b7b40bfe2b38f3345017481f5129
This commit is contained in:
parent
7b36d0b0a0
commit
b978d1582f
|
@ -131,8 +131,8 @@ struct nm_statechg_signal_data {
|
|||
struct gsm_bts *bts;
|
||||
uint8_t obj_class;
|
||||
void *obj;
|
||||
const struct gsm_nm_state *old_state;
|
||||
const struct gsm_nm_state *new_state;
|
||||
struct gsm_nm_state old_state;
|
||||
struct gsm_nm_state new_state;
|
||||
|
||||
/* This pointer is valid for TS 12.21 MO */
|
||||
struct abis_om_obj_inst *obj_inst;
|
||||
|
|
|
@ -369,8 +369,8 @@ static int nm_sig_cb(unsigned int subsys, unsigned int signal,
|
|||
break;
|
||||
case S_NM_STATECHG:
|
||||
nsd = signal_data;
|
||||
nm_state_event(signal, nsd->obj_class, nsd->obj, nsd->old_state,
|
||||
nsd->new_state, nsd->obj_inst);
|
||||
nm_state_event(signal, nsd->obj_class, nsd->obj, &nsd->old_state,
|
||||
&nsd->new_state, nsd->obj_inst);
|
||||
break;
|
||||
case S_NM_GET_ATTR_REP:
|
||||
fprintf(stderr, "Received SIGNAL S_NM_GET_ATTR_REP\n");
|
||||
|
|
|
@ -210,7 +210,7 @@ static int abis_nm_rcvmsg_sw(struct msgb *mb);
|
|||
static int update_admstate(struct gsm_bts *bts, uint8_t obj_class,
|
||||
struct abis_om_obj_inst *obj_inst, uint8_t adm_state)
|
||||
{
|
||||
struct gsm_nm_state *nm_state, new_state;
|
||||
struct gsm_nm_state *nm_state;
|
||||
struct nm_statechg_signal_data nsd;
|
||||
|
||||
memset(&nsd, 0, sizeof(nsd));
|
||||
|
@ -222,18 +222,16 @@ static int update_admstate(struct gsm_bts *bts, uint8_t obj_class,
|
|||
if (!nm_state)
|
||||
return -1;
|
||||
|
||||
new_state = *nm_state;
|
||||
new_state.administrative = adm_state;
|
||||
|
||||
nsd.bts = bts;
|
||||
nsd.obj_class = obj_class;
|
||||
nsd.old_state = nm_state;
|
||||
nsd.new_state = &new_state;
|
||||
nsd.old_state = *nm_state;
|
||||
nsd.new_state = *nm_state;
|
||||
nsd.obj_inst = obj_inst;
|
||||
|
||||
nsd.new_state.administrative = adm_state;
|
||||
|
||||
osmo_signal_dispatch(SS_NM, S_NM_STATECHG, &nsd);
|
||||
|
||||
nm_state->administrative = adm_state;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -244,17 +242,27 @@ static int abis_nm_rx_statechg_rep(struct msgb *mb)
|
|||
struct e1inp_sign_link *sign_link = mb->dst;
|
||||
struct gsm_bts *bts = sign_link->trx->bts;
|
||||
struct tlv_parsed tp;
|
||||
struct gsm_nm_state *nm_state, new_state;
|
||||
struct gsm_nm_state *nm_state;
|
||||
struct nm_statechg_signal_data nsd;
|
||||
|
||||
memset(&new_state, 0, sizeof(new_state));
|
||||
memset(&nsd, 0, sizeof(nsd));
|
||||
|
||||
nsd.obj = gsm_objclass2obj(bts, foh->obj_class, &foh->obj_inst);
|
||||
if (!nsd.obj) {
|
||||
LOGPFOH(DNM, LOGL_ERROR, foh, "unknown managed object\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
nm_state = gsm_objclass2nmstate(bts, foh->obj_class, &foh->obj_inst);
|
||||
if (!nm_state) {
|
||||
LOGPFOH(DNM, LOGL_ERROR, foh, "unknown managed object\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
new_state = *nm_state;
|
||||
nsd.obj_class = foh->obj_class;
|
||||
nsd.old_state = *nm_state;
|
||||
nsd.new_state = *nm_state;
|
||||
nsd.obj_inst = &foh->obj_inst;
|
||||
nsd.bts = bts;
|
||||
|
||||
if (abis_nm_tlv_parse(&tp, bts, foh->data, oh->length - sizeof(*foh)) < 0) {
|
||||
LOGPFOH(DNM, LOGL_ERROR, foh, "%s(): tlv_parse failed\n", __func__);
|
||||
|
@ -263,45 +271,35 @@ static int abis_nm_rx_statechg_rep(struct msgb *mb)
|
|||
|
||||
DEBUGPFOH(DNM, foh, "STATE CHG: ");
|
||||
if (TLVP_PRESENT(&tp, NM_ATT_OPER_STATE)) {
|
||||
new_state.operational = *TLVP_VAL(&tp, NM_ATT_OPER_STATE);
|
||||
nsd.new_state.operational = *TLVP_VAL(&tp, NM_ATT_OPER_STATE);
|
||||
DEBUGPC(DNM, "OP_STATE=%s ",
|
||||
abis_nm_opstate_name(new_state.operational));
|
||||
abis_nm_opstate_name(nsd.new_state.operational));
|
||||
}
|
||||
if (TLVP_PRESENT(&tp, NM_ATT_AVAIL_STATUS)) {
|
||||
if (TLVP_LEN(&tp, NM_ATT_AVAIL_STATUS) == 0)
|
||||
new_state.availability = NM_AVSTATE_OK;
|
||||
nsd.new_state.availability = NM_AVSTATE_OK;
|
||||
else
|
||||
new_state.availability = *TLVP_VAL(&tp, NM_ATT_AVAIL_STATUS);
|
||||
nsd.new_state.availability = *TLVP_VAL(&tp, NM_ATT_AVAIL_STATUS);
|
||||
DEBUGPC(DNM, "AVAIL=%s(%02x) ",
|
||||
abis_nm_avail_name(new_state.availability),
|
||||
new_state.availability);
|
||||
abis_nm_avail_name(nsd.new_state.availability),
|
||||
nsd.new_state.availability);
|
||||
} else
|
||||
new_state.availability = NM_AVSTATE_OK;
|
||||
nsd.new_state.availability = NM_AVSTATE_OK;
|
||||
if (TLVP_PRESENT(&tp, NM_ATT_ADM_STATE)) {
|
||||
new_state.administrative = *TLVP_VAL(&tp, NM_ATT_ADM_STATE);
|
||||
nsd.new_state.administrative = *TLVP_VAL(&tp, NM_ATT_ADM_STATE);
|
||||
DEBUGPC(DNM, "ADM=%2s ",
|
||||
get_value_string(abis_nm_adm_state_names,
|
||||
new_state.administrative));
|
||||
nsd.new_state.administrative));
|
||||
}
|
||||
|
||||
if ((new_state.administrative != 0 && nm_state->administrative == 0) ||
|
||||
new_state.operational != nm_state->operational ||
|
||||
new_state.availability != nm_state->availability) {
|
||||
if ((nsd.new_state.administrative != 0 && nsd.old_state.administrative == 0) ||
|
||||
nsd.new_state.operational != nsd.old_state.operational ||
|
||||
nsd.new_state.availability != nsd.old_state.availability) {
|
||||
DEBUGPC(DNM, "\n");
|
||||
/* Update the operational state of a given object in our in-memory data
|
||||
* structures and send an event to the higher layer */
|
||||
struct nm_statechg_signal_data nsd;
|
||||
nsd.obj = gsm_objclass2obj(bts, foh->obj_class, &foh->obj_inst);
|
||||
nsd.obj_class = foh->obj_class;
|
||||
nsd.old_state = nm_state;
|
||||
nsd.new_state = &new_state;
|
||||
nsd.obj_inst = &foh->obj_inst;
|
||||
nsd.bts = bts;
|
||||
osmo_signal_dispatch(SS_NM, S_NM_STATECHG, &nsd);
|
||||
nm_state->operational = new_state.operational;
|
||||
nm_state->availability = new_state.availability;
|
||||
if (nm_state->administrative == 0)
|
||||
nm_state->administrative = new_state.administrative;
|
||||
*nm_state = nsd.new_state;
|
||||
} else {
|
||||
DEBUGPC(DNM, "(No State change detected)\n");
|
||||
}
|
||||
|
|
|
@ -950,13 +950,20 @@ static void *mo2obj(struct gsm_bts *bts, struct abis_om2k_mo *mo)
|
|||
static void update_mo_state(struct gsm_bts *bts, struct abis_om2k_mo *mo, uint8_t mo_state)
|
||||
{
|
||||
struct gsm_nm_state *nm_state = mo2nm_state(bts, mo);
|
||||
struct gsm_nm_state new_state;
|
||||
struct nm_statechg_signal_data nsd;
|
||||
bool has_enabled_state;
|
||||
|
||||
if (!nm_state)
|
||||
return;
|
||||
|
||||
memset(&nsd, 0, sizeof(nsd));
|
||||
|
||||
nsd.bts = bts;
|
||||
nsd.obj = mo2obj(bts, mo);
|
||||
nsd.old_state = *nm_state;
|
||||
nsd.new_state = *nm_state;
|
||||
nsd.om2k_mo = mo;
|
||||
|
||||
switch (mo->class) {
|
||||
case OM2K_MO_CLS_CF:
|
||||
case OM2K_MO_CLS_TRXC:
|
||||
|
@ -967,36 +974,27 @@ static void update_mo_state(struct gsm_bts *bts, struct abis_om2k_mo *mo, uint8_
|
|||
break;
|
||||
}
|
||||
|
||||
new_state = *nm_state;
|
||||
switch (mo_state) {
|
||||
case OM2K_MOSTATE_RESET:
|
||||
new_state.availability = NM_AVSTATE_POWER_OFF;
|
||||
nsd.new_state.availability = NM_AVSTATE_POWER_OFF;
|
||||
break;
|
||||
case OM2K_MOSTATE_STARTED:
|
||||
new_state.availability = has_enabled_state ? NM_AVSTATE_OFF_LINE : NM_AVSTATE_OK;
|
||||
nsd.new_state.availability = has_enabled_state ? NM_AVSTATE_OFF_LINE : NM_AVSTATE_OK;
|
||||
break;
|
||||
case OM2K_MOSTATE_ENABLED:
|
||||
new_state.availability = NM_AVSTATE_OK;
|
||||
nsd.new_state.availability = NM_AVSTATE_OK;
|
||||
break;
|
||||
case OM2K_MOSTATE_DISABLED:
|
||||
new_state.availability = NM_AVSTATE_POWER_OFF;
|
||||
nsd.new_state.availability = NM_AVSTATE_POWER_OFF;
|
||||
break;
|
||||
default:
|
||||
new_state.availability = NM_AVSTATE_DEGRADED;
|
||||
nsd.new_state.availability = NM_AVSTATE_DEGRADED;
|
||||
break;
|
||||
}
|
||||
|
||||
memset(&nsd, 0, sizeof(nsd));
|
||||
|
||||
nsd.bts = bts;
|
||||
nsd.obj = mo2obj(bts, mo);
|
||||
nsd.old_state = nm_state;
|
||||
nsd.new_state = &new_state;
|
||||
nsd.om2k_mo = mo;
|
||||
|
||||
osmo_signal_dispatch(SS_NM, S_NM_STATECHG, &nsd);
|
||||
|
||||
nm_state->availability = new_state.availability;
|
||||
nm_state->availability = nsd.new_state.availability;
|
||||
}
|
||||
|
||||
static void update_op_state(struct gsm_bts *bts, const struct abis_om2k_mo *mo, uint8_t op_state)
|
||||
|
|
|
@ -427,11 +427,11 @@ static int acc_ramp_nm_sig_cb(unsigned int subsys, unsigned int signal, void *ha
|
|||
trx = nsd->obj;
|
||||
|
||||
LOG_TRX(trx, DRSL, LOGL_DEBUG, "ACC RAMP: administrative state %s -> %s\n",
|
||||
get_value_string(abis_nm_adm_state_names, nsd->old_state->administrative),
|
||||
get_value_string(abis_nm_adm_state_names, nsd->new_state->administrative));
|
||||
get_value_string(abis_nm_adm_state_names, nsd->old_state.administrative),
|
||||
get_value_string(abis_nm_adm_state_names, nsd->new_state.administrative));
|
||||
LOG_TRX(trx, DRSL, LOGL_DEBUG, "ACC RAMP: operational state %s -> %s\n",
|
||||
abis_nm_opstate_name(nsd->old_state->operational),
|
||||
abis_nm_opstate_name(nsd->new_state->operational));
|
||||
abis_nm_opstate_name(nsd->old_state.operational),
|
||||
abis_nm_opstate_name(nsd->new_state.operational));
|
||||
|
||||
/* We only care about state changes of the first TRX. */
|
||||
if (trx->nr != 0)
|
||||
|
@ -445,21 +445,21 @@ static int acc_ramp_nm_sig_cb(unsigned int subsys, unsigned int signal, void *ha
|
|||
}
|
||||
|
||||
/* Trigger or abort ACC ramping based on the new state of this TRX. */
|
||||
if (nsd->old_state->administrative != nsd->new_state->administrative) {
|
||||
switch (nsd->new_state->administrative) {
|
||||
if (nsd->old_state.administrative != nsd->new_state.administrative) {
|
||||
switch (nsd->new_state.administrative) {
|
||||
case NM_STATE_UNLOCKED:
|
||||
if (nsd->old_state->operational != nsd->new_state->operational) {
|
||||
if (nsd->old_state.operational != nsd->new_state.operational) {
|
||||
/*
|
||||
* Administrative and operational state have both changed.
|
||||
* Trigger ramping only if TRX 0 will be both enabled and unlocked.
|
||||
*/
|
||||
if (nsd->new_state->operational == NM_OPSTATE_ENABLED)
|
||||
if (nsd->new_state.operational == NM_OPSTATE_ENABLED)
|
||||
trigger_ramping = true;
|
||||
else
|
||||
LOG_TRX(trx, DRSL, LOGL_DEBUG,
|
||||
"ACC RAMP: ignoring state change because TRX is "
|
||||
"transitioning into operational state '%s'\n",
|
||||
abis_nm_opstate_name(nsd->new_state->operational));
|
||||
abis_nm_opstate_name(nsd->new_state.operational));
|
||||
} else {
|
||||
/*
|
||||
* Operational state has not changed.
|
||||
|
@ -479,24 +479,24 @@ static int acc_ramp_nm_sig_cb(unsigned int subsys, unsigned int signal, void *ha
|
|||
case NM_STATE_NULL:
|
||||
default:
|
||||
LOG_TRX(trx, DRSL, LOGL_ERROR, "ACC RAMP: unrecognized administrative state '0x%x' "
|
||||
"reported for TRX 0\n", nsd->new_state->administrative);
|
||||
"reported for TRX 0\n", nsd->new_state.administrative);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (nsd->old_state->operational != nsd->new_state->operational) {
|
||||
switch (nsd->new_state->operational) {
|
||||
if (nsd->old_state.operational != nsd->new_state.operational) {
|
||||
switch (nsd->new_state.operational) {
|
||||
case NM_OPSTATE_ENABLED:
|
||||
if (nsd->old_state->administrative != nsd->new_state->administrative) {
|
||||
if (nsd->old_state.administrative != nsd->new_state.administrative) {
|
||||
/*
|
||||
* Administrative and operational state have both changed.
|
||||
* Trigger ramping only if TRX 0 will be both enabled and unlocked.
|
||||
*/
|
||||
if (nsd->new_state->administrative == NM_STATE_UNLOCKED)
|
||||
if (nsd->new_state.administrative == NM_STATE_UNLOCKED)
|
||||
trigger_ramping = true;
|
||||
else
|
||||
LOG_TRX(trx, DRSL, LOGL_DEBUG, "ACC RAMP: ignoring state change "
|
||||
"because TRX is transitioning into administrative state '%s'\n",
|
||||
get_value_string(abis_nm_adm_state_names, nsd->new_state->administrative));
|
||||
get_value_string(abis_nm_adm_state_names, nsd->new_state.administrative));
|
||||
} else {
|
||||
/*
|
||||
* Administrative state has not changed.
|
||||
|
@ -516,7 +516,7 @@ static int acc_ramp_nm_sig_cb(unsigned int subsys, unsigned int signal, void *ha
|
|||
case NM_OPSTATE_NULL:
|
||||
default:
|
||||
LOG_TRX(trx, DRSL, LOGL_ERROR, "ACC RAMP: unrecognized operational state '0x%x' "
|
||||
"reported for TRX 0\n", nsd->new_state->administrative);
|
||||
"reported for TRX 0\n", nsd->new_state.administrative);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event
|
|||
break;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/*should not happen... */
|
||||
nm_bb_transc_fsm_state_chg(fi, NM_BB_TRANSC_ST_OP_ENABLED);
|
||||
|
@ -149,7 +149,7 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event,
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_bb_transc_fsm_state_chg(fi, NM_BB_TRANSC_ST_OP_ENABLED);
|
||||
|
@ -199,7 +199,7 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, voi
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
nm_bb_transc_fsm_state_chg(fi, NM_BB_TRANSC_ST_OP_ENABLED);
|
||||
return;
|
||||
|
@ -253,7 +253,7 @@ static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED)
|
||||
return;
|
||||
switch (new_state->availability) { /* operational = DISABLED */
|
||||
|
|
|
@ -66,7 +66,7 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event
|
|||
break;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/*should not happen... */
|
||||
nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_ENABLED);
|
||||
|
@ -177,7 +177,7 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event,
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_ENABLED);
|
||||
|
@ -229,7 +229,7 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, voi
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_ENABLED);
|
||||
return;
|
||||
|
@ -285,7 +285,7 @@ static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED)
|
||||
return;
|
||||
switch (new_state->availability) { /* operational = DISABLED */
|
||||
|
|
|
@ -64,7 +64,7 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event
|
|||
break;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* nanobts always go directly into Reported ENABLED state during
|
||||
startup, but we still need to OPSTART it, otherwise it won't
|
||||
|
@ -107,7 +107,7 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event,
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_ENABLED);
|
||||
return;
|
||||
|
@ -147,7 +147,7 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, voi
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_ENABLED);
|
||||
return;
|
||||
|
@ -178,7 +178,7 @@ static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED)
|
||||
return;
|
||||
switch (new_state->availability) { /* operational = DISABLED */
|
||||
|
|
|
@ -65,7 +65,7 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event
|
|||
break;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/*should not happen... */
|
||||
nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_ENABLED);
|
||||
|
@ -138,7 +138,7 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event,
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_ENABLED);
|
||||
|
@ -187,7 +187,7 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, voi
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_ENABLED);
|
||||
return;
|
||||
|
@ -241,7 +241,7 @@ static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED)
|
||||
return;
|
||||
switch (new_state->availability) { /* operational = DISABLED */
|
||||
|
|
|
@ -64,7 +64,7 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event
|
|||
break;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_ENABLED);
|
||||
|
@ -148,7 +148,7 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event,
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_ENABLED);
|
||||
|
@ -198,7 +198,7 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, voi
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
nm_gprs_cell_fsm_state_chg(fi, NM_GPRS_CELL_ST_OP_ENABLED);
|
||||
return;
|
||||
|
@ -252,7 +252,7 @@ static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED)
|
||||
return;
|
||||
switch (new_state->availability) { /* operational = DISABLED */
|
||||
|
|
|
@ -65,7 +65,7 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event
|
|||
break;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED);
|
||||
|
@ -149,7 +149,7 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event,
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED);
|
||||
|
@ -199,7 +199,7 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, voi
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
nm_gprs_nse_fsm_state_chg(fi, NM_GPRS_NSE_ST_OP_ENABLED);
|
||||
return;
|
||||
|
@ -253,7 +253,7 @@ static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED)
|
||||
return;
|
||||
switch (new_state->availability) { /* operational = DISABLED */
|
||||
|
|
|
@ -68,7 +68,7 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event
|
|||
break;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_ENABLED);
|
||||
|
@ -164,7 +164,7 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event,
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_ENABLED);
|
||||
|
@ -216,7 +216,7 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, voi
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
nm_gprs_nsvc_fsm_state_chg(fi, NM_GPRS_NSVC_ST_OP_ENABLED);
|
||||
return;
|
||||
|
@ -270,7 +270,7 @@ static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED)
|
||||
return;
|
||||
switch (new_state->availability) { /* operational = DISABLED */
|
||||
|
|
|
@ -64,7 +64,7 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event
|
|||
break;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/*should not happen... */
|
||||
nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_ENABLED);
|
||||
|
@ -144,7 +144,7 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event,
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
/* should not happen... */
|
||||
nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_ENABLED);
|
||||
|
@ -193,7 +193,7 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, voi
|
|||
return;
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED) {
|
||||
nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_ENABLED);
|
||||
return;
|
||||
|
@ -238,7 +238,7 @@ static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
|||
switch (event) {
|
||||
case NM_EV_STATE_CHG_REP:
|
||||
nsd = (struct nm_statechg_signal_data *)data;
|
||||
new_state = nsd->new_state;
|
||||
new_state = &nsd->new_state;
|
||||
if (new_state->operational == NM_OPSTATE_ENABLED)
|
||||
return;
|
||||
switch (new_state->availability) { /* operational = DISABLED */
|
||||
|
|
Loading…
Reference in New Issue