aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pcu_l1_if.cpp15
-rw-r--r--src/pcuif_proto.h1
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,