From 61755b93983ee4cc7a98d0419c60c30bc3ad884a Mon Sep 17 00:00:00 2001 From: Minh-Quang Nguyen Date: Thu, 8 Sep 2016 11:34:54 -0400 Subject: [PATCH] Implementation of unknown NSVC alarm. The alarm cause ID is defined by NuRAN Wireless. Change-Id: I48ee1c23cd299b5208487472d802d339c55c99e6 --- src/gprs_bssgp_pcu.cpp | 2 ++ src/pcu_l1_if.cpp | 11 +++++++++++ src/pcuif_proto.h | 1 + 3 files changed, 14 insertions(+) diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 4c7ca7c8..75f7e056 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -488,6 +488,8 @@ static int nsvc_signal_cb(unsigned int subsys, unsigned int signal, nssd = (struct ns_signal_data *)signal_data; if (nssd->nsvc != the_pcu.nsvc) { LOGP(DPCU, LOGL_ERROR, "Signal received of unknown NSVC\n"); + memcpy(alarm_sig_data.spare, &nssd->nsvc->nsvci, sizeof(uint16_t)); + osmo_signal_dispatch(SS_L_GLOBAL, S_PCU_NM_UNKN_NSVC_ALARM, &alarm_sig_data); return -EINVAL; } diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 57beaf95..c19f3354 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -772,6 +772,17 @@ static int handle_pcu_fail_evt_rep_sig(unsigned int subsys, unsigned int signal, sig_data->add_text); break; + case S_PCU_NM_UNKN_NSVC_ALARM: + memcpy(&val, sig_data->spare, sizeof(uint16_t)); + snprintf(log_msg, 100, "PCU: Rx unknown NSVC %d\n", val); + sig_data->add_text = &log_msg[0]; + rc = pcu_tx_nm_fail_evt(NM_EVT_COMM_FAIL, + NM_SEVER_MAJOR, + NM_PCAUSE_T_MANUF, + PCU_NM_EVT_CAUSE_MAJ_UNKN_NSVC, + sig_data->add_text); + break; + default: break; } diff --git a/src/pcuif_proto.h b/src/pcuif_proto.h index f3d92144..8bd74882 100644 --- a/src/pcuif_proto.h +++ b/src/pcuif_proto.h @@ -68,6 +68,7 @@ enum pcu_nm_event_causes { 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, + PCU_NM_EVT_CAUSE_MAJ_UNKN_NSVC = 0x3314, PCU_NM_EVT_CAUSE_MAJ_UNKN_NSEI_BVCI = 0x3317, PCU_NM_EVT_CAUSE_MAJ_PTP_BVC_FAIL = 0x3318, /* Warning causes */