<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>