aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/bts.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/bts.c')
-rw-r--r--src/common/bts.c19
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) */