diff options
author | Harald Welte <laforge@gnumonks.org> | 2012-03-18 21:25:45 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2012-03-18 21:25:45 +0100 |
commit | 452112e82391df347823175df86ca8fcc922ef3c (patch) | |
tree | 4cb8a6106556f4c79a5e0542629b2a6cd6134833 /src/common/oml.c | |
parent | d0e67493276b4e14007d359a5dd866e49a137574 (diff) |
Ensure that ADM_STATE IE is presnent when sending NM_MT_CHG_ADM_STATE_ACK
Diffstat (limited to 'src/common/oml.c')
-rw-r--r-- | src/common/oml.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/common/oml.c b/src/common/oml.c index c7591d76..37fb4bda 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -274,6 +274,19 @@ int oml_mo_fom_ack_nack(struct gsm_abis_mo *mo, uint8_t orig_msg_type, return oml_mo_send_msg(mo, msg, new_msg_type); } +int oml_mo_statechg_ack(struct gsm_abis_mo *mo) +{ + struct msgb *msg; + + msg = oml_msgb_alloc(); + if (!msg) + return -ENOMEM; + + msgb_tv_put(msg, NM_ATT_ADM_STATE, mo->nm_state.administrative); + + return oml_mo_send_msg(mo, msg, NM_MT_CHG_ADM_STATE_ACK); +} + int oml_mo_opstart_ack(struct gsm_abis_mo *mo) { return oml_mo_fom_ack_nack(mo, NM_MT_OPSTART, 0); @@ -712,7 +725,7 @@ static int oml_rx_chg_adm_state(struct gsm_bts *bts, struct msgb *msg) if (mo->nm_state.administrative == adm_state) { DEBUGP(DOML, "... automatic ACK, ADM state already was %s\n", get_value_string(abis_nm_adm_state_names, adm_state)); - return oml_fom_ack_nack(msg, 0); + return oml_mo_statechg_ack(mo); } /* Step 3: Ask BTS driver to apply the state chg */ |