diff options
Diffstat (limited to 'src/common/bts.c')
-rw-r--r-- | src/common/bts.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/common/bts.c b/src/common/bts.c index 6f621c4d..42ac0967 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -44,6 +44,7 @@ #include <osmo-bts/rsl.h> #include <osmo-bts/oml.h> #include <osmo-bts/signal.h> +#include "osmo-bts/oml.h" #define MIN_QUAL_RACH 5.0f /* at least 5 dB C/I */ #define MIN_QUAL_NORM -0.5f /* at least -1 dB C/I */ @@ -175,6 +176,9 @@ int bts_init(struct gsm_bts *bts) INIT_LLIST_HEAD(&btsb->smscb_state.queue); INIT_LLIST_HEAD(&btsb->oml_queue); +#ifdef ENABLE_LC15BTS + INIT_LLIST_HEAD(&btsb->lc15.ceased_alarm_list); +#endif return rc; } @@ -250,6 +254,7 @@ int bts_link_estab(struct gsm_bts *bts) int trx_link_estab(struct gsm_bts_trx *trx) { struct e1inp_sign_link *link = trx->rsl_link; + int rc; uint8_t radio_state = link ? NM_OPSTATE_ENABLED : NM_OPSTATE_DISABLED; LOGP(DSUM, LOGL_INFO, "RSL link (TRX %02x) state changed to %s, sending Status'.\n", @@ -258,11 +263,19 @@ int trx_link_estab(struct gsm_bts_trx *trx) oml_mo_state_chg(&trx->mo, radio_state, NM_AVSTATE_OK); if (link) - rsl_tx_rf_res(trx); + rc = rsl_tx_rf_res(trx); else - bts_model_trx_deact_rf(trx); + rc = bts_model_trx_deact_rf(trx); + + if(rc < 0) { + alarm_sig_data.mo = &trx->mo; + if(link) + osmo_signal_dispatch(SS_NM, S_NM_OML_BTS_RSL_FAILED_ALARM, &alarm_sig_data); + else + osmo_signal_dispatch(SS_NM, S_NM_OML_BTS_RF_DEACT_FAILED_ALARM, &alarm_sig_data); + } - return 0; + return rc; } /* set the availability of the TRX (used by PHY driver) */ |