<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/14177">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">[WIP] ctrl: Send TRAP in case of OML FAIL EVT REP<br><br>A BTS sending a FAILURE EVENT REPORT is certainly something that<br>we'd want to make external listeners aware of.<br><br>Change-Id: I4f8a9737c6ef1b951ea8e742cdbd3689371a99d5<br>---<br>M src/osmo-bsc/abis_nm.c<br>M src/osmo-bsc/osmo_bsc_ctrl.c<br>2 files changed, 36 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/77/14177/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c</span><br><span>index da41c70..a53b82b 100644</span><br><span>--- a/src/osmo-bsc/abis_nm.c</span><br><span>+++ b/src/osmo-bsc/abis_nm.c</span><br><span>@@ -399,7 +399,8 @@</span><br><span> rc = -EINVAL;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- sd.bts = mb->trx->bts;</span><br><span style="color: hsl(120, 100%, 40%);">+ memset(&sd, 0, sizeof(sd));</span><br><span style="color: hsl(120, 100%, 40%);">+ sd.bts = sign_link->trx->bts;</span><br><span> sd.msg = mb;</span><br><span> sd.tp = &tp;</span><br><span> if (e_type)</span><br><span>diff --git a/src/osmo-bsc/osmo_bsc_ctrl.c b/src/osmo-bsc/osmo_bsc_ctrl.c</span><br><span>index 80699f8..bc359bb 100644</span><br><span>--- a/src/osmo-bsc/osmo_bsc_ctrl.c</span><br><span>+++ b/src/osmo-bsc/osmo_bsc_ctrl.c</span><br><span>@@ -734,6 +734,37 @@</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static int nm_signal_handler(unsigned int subsys, unsigned int signal,</span><br><span style="color: hsl(120, 100%, 40%);">+ void *handler_data, void *signal_data)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ struct nm_fail_rep_signal_data *sd;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_network *net;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ctrl_cmd *cmd;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (subsys != SS_NM)</span><br><span style="color: hsl(120, 100%, 40%);">+ return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ if (signal != S_NM_FAIL_REP)</span><br><span style="color: hsl(120, 100%, 40%);">+ return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ sd = signal_data;</span><br><span style="color: hsl(120, 100%, 40%);">+ net = sd->bts->network;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ cmd = ctrl_cmd_create(tall_bsc_ctx, CTRL_TYPE_TRAP);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!cmd) {</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGP(DCTRL, LOGL_ERROR, "Trap creation failed.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ cmd->id = "0";</span><br><span style="color: hsl(120, 100%, 40%);">+ cmd->variable = talloc_asprintf(cmd, "bts.%d.oml_failure_report", sd->bts->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+ cmd->reply = talloc_asprintf(cmd, "\"%s\",\"%s\",\"%s\"", sd->parsed.event_type,</span><br><span style="color: hsl(120, 100%, 40%);">+ sd->parsed.severity, sd->parsed.additional_text);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ ctrl_cmd_send_to_all(net->ctrl, cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> int bsc_ctrl_cmds_install(struct gsm_network *net)</span><br><span> {</span><br><span> int rc;</span><br><span>@@ -759,6 +790,9 @@</span><br><span> rc = osmo_signal_register_handler(SS_MSC, msc_signal_handler, NULL);</span><br><span> if (rc)</span><br><span> goto end;</span><br><span style="color: hsl(120, 100%, 40%);">+ rc = osmo_signal_register_handler(SS_NM, nm_signal_handler, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (rc)</span><br><span style="color: hsl(120, 100%, 40%);">+ goto end;</span><br><span> rc = ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_bts_connection_status);</span><br><span> if (rc)</span><br><span> goto end;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/14177">change 14177</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/14177"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I4f8a9737c6ef1b951ea8e742cdbd3689371a99d5 </div>
<div style="display:none"> Gerrit-Change-Number: 14177 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>