diff options
-rw-r--r-- | src/pcu_l1_if.cpp | 15 | ||||
-rw-r--r-- | src/pcuif_proto.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 2397d79e..d93dc91a 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -502,6 +502,9 @@ bssgp_failed: if (!bts->trx[trx].fl1h) { LOGP(DL1IF, LOGL_FATAL, "Failed to open direct " "DSP access for PDCH.\n"); + + alarm_sig_data.spare[0] = trx; + osmo_signal_dispatch(SS_L_GLOBAL, S_PCU_NM_FAIL_OPEN_PDCH_ALARM, &alarm_sig_data); exit(0); } #else @@ -635,6 +638,18 @@ static int handle_pcu_fail_evt_rep_sig(unsigned int subsys, unsigned int signal, PCU_NM_EVT_CAUSE_CRIT_BAD_PCU_IF_VER, sig_data->add_text); break; +#ifdef ENABLE_DIRECT_PHY + case S_PCU_NM_FAIL_OPEN_PDCH_ALARM: + snprintf(log_msg, 100, "PCU: Failed to open direct DSP (%d) access for PDCH.\n", sig_data->spare[0]); + sig_data->add_text = &log_msg[0]; + + rc = pcu_tx_nm_fail_evt(NM_EVT_PROC_FAIL, + NM_SEVER_CRITICAL, + NM_PCAUSE_T_MANUF, + PCU_NM_EVT_CAUSE_CRIT_OPEN_PDCH_FAIL, + sig_data->add_text); + break; +#endif default: break; } diff --git a/src/pcuif_proto.h b/src/pcuif_proto.h index 19fcb94f..69989da7 100644 --- a/src/pcuif_proto.h +++ b/src/pcuif_proto.h @@ -50,6 +50,7 @@ /* NuRAN Wireless manufacture-defined alarm causes */ enum pcu_nm_event_causes { /* Critical causes */ + PCU_NM_EVT_CAUSE_CRIT_OPEN_PDCH_FAIL = 0x3411, PCU_NM_EVT_CAUSE_CRIT_BAD_PCU_IF_VER = 0x3415, /* Major causes */ PCU_NM_EVT_CAUSE_MAJ_UKWN_L1_MSG = 0x3012, |