aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/osmo-bts-litecell15/lc15_l1_if.c1
-rw-r--r--src/pcu_l1_if.cpp9
-rw-r--r--src/pcuif_proto.h1
3 files changed, 11 insertions, 0 deletions
diff --git a/src/osmo-bts-litecell15/lc15_l1_if.c b/src/osmo-bts-litecell15/lc15_l1_if.c
index 01bebec1..013c78c9 100644
--- a/src/osmo-bts-litecell15/lc15_l1_if.c
+++ b/src/osmo-bts-litecell15/lc15_l1_if.c
@@ -352,6 +352,7 @@ int l1if_pdch_req(void *obj, uint8_t ts, int is_ptcch, uint32_t fn,
/* transmit */
if (osmo_wqueue_enqueue(&fl1h->write_q[MQ_PDTCH_WRITE], msg) != 0) {
LOGP(DL1IF, LOGL_ERROR, "PDTCH queue full. dropping message.\n");
+ osmo_signal_dispatch(SS_L_GLOBAL, S_PCU_NM_PDTCH_QUEUE_FULL_ALARM, &alarm_sig_data);
msgb_free(msg);
}
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp
index cdfce690..7308fa1f 100644
--- a/src/pcu_l1_if.cpp
+++ b/src/pcu_l1_if.cpp
@@ -686,6 +686,15 @@ static int handle_pcu_fail_evt_rep_sig(unsigned int subsys, unsigned int signal,
PCU_NM_EVT_CAUSE_MAJ_UKWN_L1_PRIM_MSG,
sig_data->add_text);
break;
+
+ case S_PCU_NM_PDTCH_QUEUE_FULL_ALARM:
+ rc = pcu_tx_nm_fail_evt(NM_EVT_PROC_FAIL,
+ NM_SEVER_MAJOR,
+ NM_PCAUSE_T_MANUF,
+ PCU_NM_EVT_CAUSE_MAJ_PDTCH_QUEUE_FULL,
+ "PCU: PDTCH queue full. PCU is dropping message.\n");
+ break;
+
#endif
case S_PCU_NM_NO_PDCH_ALARM:
rc = pcu_tx_nm_fail_evt(NM_EVT_PROC_FAIL,
diff --git a/src/pcuif_proto.h b/src/pcuif_proto.h
index 46b5db53..e4604ba7 100644
--- a/src/pcuif_proto.h
+++ b/src/pcuif_proto.h
@@ -64,6 +64,7 @@ enum pcu_nm_event_causes {
PCU_NM_EVT_CAUSE_MAJ_UKWN_L1_MSG = 0x3012,
PCU_NM_EVT_CAUSE_MAJ_UKWN_L1_PRIM_MSG = 0x3013,
PCU_NM_EVT_CAUSE_MAJ_UKWN_BTS_MSG = 0x3014,
+ PCU_NM_EVT_CAUSE_MAJ_PDTCH_QUEUE_FULL = 0x333a,
/* Warning causes */
PCU_NM_EVT_CAUSE_WARN_NO_PDCH_AVAIL = 0x3011,