diff options
author | Minh-Quang Nguyen <minh-quang.nguyen@nutaq.com> | 2016-09-02 09:53:14 -0400 |
---|---|---|
committer | Minh-Quang Nguyen <minh-quang.nguyen@nutaq.com> | 2016-09-02 09:53:14 -0400 |
commit | c1dc396e816847a70163ffce9e2d5df13342e063 (patch) | |
tree | 26afc9797921cfc5fb2accc8d8c5f4864946156c /src/common | |
parent | c37cbb45f509529fedfb19f4a146420d61d503d1 (diff) |
LC15: Allow BTS to forward PCU failure alarms to network
Change-Id: I39bb8f8b749e94394909aa4a4be000c306ed712a
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/oml.c | 8 | ||||
-rw-r--r-- | src/common/pcu_sock.c | 23 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/common/oml.c b/src/common/oml.c index 924c4dcb..13a47999 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1552,6 +1552,14 @@ static int handle_oml_fail_evt_rep_sig(unsigned int subsys, unsigned int signal, sig_data->add_text); break; + case S_NM_OML_BTS_RX_PCU_FAIL_EVT_ALARM: + rc = oml_tx_nm_fail_evt_rep(sig_data->mo, + sig_data->event_type, + sig_data->event_serverity, + sig_data->cause_type, + sig_data->event_cause, + sig_data->add_text); + break; default: break; } diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index bd50be15..78c5fe8c 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -604,6 +604,26 @@ static int pcu_rx_act_req(struct gsm_bts *bts, return 0; } +static int pcu_rx_failure_event_rep(struct gsm_bts *bts, struct gsm_pcu_if_fail_evt_ind *fail_ind) +{ + LOGP(DPCU, LOGL_DEBUG, "[PCU] Failure EVT REP detailed: evt_type=%02x, evt_serv=%02x, cause_type=%02x, cause_id=%04x, text=%s\n", + fail_ind->event_type, + fail_ind->event_serverity, + fail_ind->cause_type, + fail_ind->event_cause, + fail_ind->add_text); + + alarm_sig_data.mo = &bts->gprs.cell.mo; + alarm_sig_data.event_type = fail_ind->event_type; + alarm_sig_data.event_serverity = fail_ind->event_serverity; + alarm_sig_data.cause_type = fail_ind->cause_type; + alarm_sig_data.event_cause = fail_ind->event_cause; + alarm_sig_data.add_text = &fail_ind->add_text[0]; + osmo_signal_dispatch(SS_NM, S_NM_OML_BTS_RX_PCU_FAIL_EVT_ALARM, &alarm_sig_data); + + return alarm_sig_data.rc; +} + static int pcu_rx(struct gsm_network *net, uint8_t msg_type, struct gsm_pcu_if *pcu_prim) { @@ -621,6 +641,9 @@ static int pcu_rx(struct gsm_network *net, uint8_t msg_type, case PCU_IF_MSG_ACT_REQ: rc = pcu_rx_act_req(bts, &pcu_prim->u.act_req); break; + case PCU_IF_MSG_FAILURE_EVT_IND: + rc = pcu_rx_failure_event_rep(bts, &pcu_prim->u.failure_evt_ind); + break; default: LOGP(DPCU, LOGL_ERROR, "Received unknwon PCU msg type %d\n", msg_type); |