<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/14173">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Add severity to OML FAILURE EVENT REPORT<br><br>Example: The fact that the PCU has connected with a given version is not<br>a *failure* in the first place, particularly not a MAJOR one.  Let's<br>allow callers of oml_tx_failure_event_rep() specify the serverity of the<br>event that they're reporting to the BSC.<br><br>Change-Id: I49af04212568892648e0e8704ba1cc6de8c8ae89<br>---<br>M include/osmo-bts/oml.h<br>M src/common/bts.c<br>M src/common/bts_ctrl_commands.c<br>M src/common/l1sap.c<br>M src/common/main.c<br>M src/common/oml.c<br>M src/common/pcu_sock.c<br>M src/common/rsl.c<br>M src/osmo-bts-oc2g/calib_file.c<br>9 files changed, 49 insertions(+), 48 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/14173/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmo-bts/oml.h b/include/osmo-bts/oml.h</span><br><span>index 5136058..14da70e 100644</span><br><span>--- a/include/osmo-bts/oml.h</span><br><span>+++ b/include/osmo-bts/oml.h</span><br><span>@@ -45,7 +45,7 @@</span><br><span> extern const unsigned int oml_default_t200_ms[7];</span><br><span> </span><br><span> /* Transmit failure event report */</span><br><span style="color: hsl(0, 100%, 40%);">-int oml_tx_failure_event_rep(const struct gsm_abis_mo *mo, uint16_t cause_value,</span><br><span style="color: hsl(0, 100%, 40%);">-                            const char *fmt, ...);</span><br><span style="color: hsl(120, 100%, 40%);">+int oml_tx_failure_event_rep(const struct gsm_abis_mo *mo, enum abis_nm_severity severity,</span><br><span style="color: hsl(120, 100%, 40%);">+                            uint16_t cause_value, const char *fmt, ...);</span><br><span> </span><br><span> #endif // _OML_H */</span><br><span>diff --git a/src/common/bts.c b/src/common/bts.c</span><br><span>index 5220406..97e7a8b 100644</span><br><span>--- a/src/common/bts.c</span><br><span>+++ b/src/common/bts.c</span><br><span>@@ -340,7 +340,7 @@</span><br><span>      else</span><br><span>                 rc = bts_model_trx_deact_rf(trx);</span><br><span>    if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                oml_tx_failure_event_rep(&trx->bb_transc.mo, OSMO_EVT_MAJ_RSL_FAIL,</span><br><span style="color: hsl(120, 100%, 40%);">+            oml_tx_failure_event_rep(&trx->bb_transc.mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_RSL_FAIL,</span><br><span>                                    link ?</span><br><span>                                       "Failed to establish RSL link (%d)" :</span><br><span>                                      "Failed to deactivate RF (%d)", rc);</span><br><span>diff --git a/src/common/bts_ctrl_commands.c b/src/common/bts_ctrl_commands.c</span><br><span>index 47d8a5d..0d31890 100644</span><br><span>--- a/src/common/bts_ctrl_commands.c</span><br><span>+++ b/src/common/bts_ctrl_commands.c</span><br><span>@@ -77,7 +77,7 @@</span><br><span> static int set_oml_alert(struct ctrl_cmd *cmd, void *data)</span><br><span> {</span><br><span>  /* Note: we expect signal dispatch to be synchronous */</span><br><span style="color: hsl(0, 100%, 40%);">- oml_tx_failure_event_rep(&g_bts->mo, OSMO_EVT_EXT_ALARM, cmd->value);</span><br><span style="color: hsl(120, 100%, 40%);">+       oml_tx_failure_event_rep(&g_bts->mo, NM_SEVER_INDETERMINATE, OSMO_EVT_EXT_ALARM, cmd->value);</span><br><span> </span><br><span>  cmd->reply = "OK";</span><br><span> </span><br><span>diff --git a/src/common/l1sap.c b/src/common/l1sap.c</span><br><span>index 52f2b33..59d5b93 100644</span><br><span>--- a/src/common/l1sap.c</span><br><span>+++ b/src/common/l1sap.c</span><br><span>@@ -1358,7 +1358,7 @@</span><br><span>     default:</span><br><span>             LOGP(DL1P, LOGL_NOTICE, "unknown prim %d op %d\n",</span><br><span>                         l1sap->oph.primitive, l1sap->oph.operation);</span><br><span style="color: hsl(0, 100%, 40%);">-              oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(&trx->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span>                                      "unknown prim %d op %d",</span><br><span>                                   l1sap->oph.primitive,</span><br><span>                                     l1sap->oph.operation);</span><br><span>diff --git a/src/common/main.c b/src/common/main.c</span><br><span>index 0d84c18..25ecd11 100644</span><br><span>--- a/src/common/main.c</span><br><span>+++ b/src/common/main.c</span><br><span>@@ -184,7 +184,7 @@</span><br><span>    case SIGTERM:</span><br><span>                if (!quit) {</span><br><span>                         oml_tx_failure_event_rep(&bts->mo,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                OSMO_EVT_CRIT_PROC_STOP,</span><br><span style="color: hsl(120, 100%, 40%);">+                                              NM_SEVER_CRITICAL, OSMO_EVT_CRIT_PROC_STOP,</span><br><span>                                                  "BTS: SIGINT received -> shutdown");</span><br><span>                   bts_shutdown(bts, "SIGINT");</span><br><span>               }</span><br><span>diff --git a/src/common/oml.c b/src/common/oml.c</span><br><span>index 67eb6d8..d44b395 100644</span><br><span>--- a/src/common/oml.c</span><br><span>+++ b/src/common/oml.c</span><br><span>@@ -81,8 +81,8 @@</span><br><span> }</span><br><span> </span><br><span> /* 3GPP TS 12.21 ยง 8.8.2 */</span><br><span style="color: hsl(0, 100%, 40%);">-int oml_tx_failure_event_rep(const struct gsm_abis_mo *mo, uint16_t cause_value,</span><br><span style="color: hsl(0, 100%, 40%);">-                          const char *fmt, ...)</span><br><span style="color: hsl(120, 100%, 40%);">+int oml_tx_failure_event_rep(const struct gsm_abis_mo *mo, enum abis_nm_severity severity,</span><br><span style="color: hsl(120, 100%, 40%);">+                             uint16_t cause_value, const char *fmt, ...)</span><br><span> {</span><br><span>        struct msgb *nmsg;</span><br><span>   va_list ap;</span><br><span>@@ -558,12 +558,14 @@</span><br><span> </span><br><span>      rc = oml_tlv_parse(&tp, foh->data, msgb_l3len(msg) - sizeof(*foh));</span><br><span>   if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UNSUP_ATTR, "Get Attribute parsing failure");</span><br><span style="color: hsl(120, 100%, 40%);">+             oml_tx_failure_event_rep(mo, NM_SEVER_MINOR, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  "Get Attribute parsing failure");</span><br><span>                 return oml_mo_fom_ack_nack(mo, NM_MT_GET_ATTR, NM_NACK_INCORR_STRUCT);</span><br><span>       }</span><br><span> </span><br><span>        if (!TLVP_PRES_LEN(&tp, NM_ATT_LIST_REQ_ATTR, 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">-         oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UNSUP_ATTR, "Get Attribute without Attribute List");</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(mo, NM_SEVER_MINOR, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  "Get Attribute without Attribute List");</span><br><span>          return oml_mo_fom_ack_nack(mo, NM_MT_GET_ATTR, NM_NACK_INCORR_STRUCT);</span><br><span>       }</span><br><span> </span><br><span>@@ -588,7 +590,7 @@</span><br><span> </span><br><span>      rc = oml_tlv_parse(&tp, foh->data, msgb_l3len(msg) - sizeof(*foh));</span><br><span>   if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span style="color: hsl(120, 100%, 40%);">+            oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span>                                    "New value for Attribute not supported");</span><br><span>                 return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT);</span><br><span>         }</span><br><span>@@ -597,7 +599,7 @@</span><br><span>      if (TLVP_PRES_LEN(&tp, NM_ATT_BCCH_ARFCN, 2)) {</span><br><span>          uint16_t arfcn = ntohs(tlvp_val16_unal(&tp, NM_ATT_BCCH_ARFCN));</span><br><span>                 if (arfcn > 1024) {</span><br><span style="color: hsl(0, 100%, 40%);">-                  oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_WARN_SW_WARN,</span><br><span style="color: hsl(120, 100%, 40%);">+                      oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_WARN_SW_WARN,</span><br><span>                                              "Given ARFCN %u is not supported",</span><br><span>                                                 arfcn);</span><br><span>                     LOGPFOH(DOML, LOGL_ERROR, foh, "Given ARFCN %u is not supported.\n", arfcn);</span><br><span>@@ -606,7 +608,7 @@</span><br><span>         }</span><br><span>    /* 9.4.52 Starting Time */</span><br><span>   if (TLVP_PRESENT(&tp, NM_ATT_START_TIME)) {</span><br><span style="color: hsl(0, 100%, 40%);">-         oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span style="color: hsl(120, 100%, 40%);">+            oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span>                                    "NM_ATT_START_TIME Attribute not "</span><br><span>                                         "supported");</span><br><span>             return oml_fom_ack_nack(msg, NM_NACK_SPEC_IMPL_NOTSUPP);</span><br><span>@@ -756,7 +758,7 @@</span><br><span> </span><br><span>   rc = oml_tlv_parse(&tp, foh->data, msgb_l3len(msg) - sizeof(*foh));</span><br><span>   if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span style="color: hsl(120, 100%, 40%);">+            oml_tx_failure_event_rep(&trx->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span>                                    "New value for Set Radio Attribute not"</span><br><span>                                    " supported");</span><br><span>            return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT);</span><br><span>@@ -820,10 +822,8 @@</span><br><span>          arfcn = ntohs(_value);</span><br><span>               value += 2;</span><br><span>          if (arfcn > 1024) {</span><br><span style="color: hsl(0, 100%, 40%);">-                  oml_tx_failure_event_rep(&trx->bts->mo,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                OSMO_EVT_WARN_SW_WARN,</span><br><span style="color: hsl(0, 100%, 40%);">-                                          "Given ARFCN %u is unsupported",</span><br><span style="color: hsl(0, 100%, 40%);">-                                              arfcn);</span><br><span style="color: hsl(120, 100%, 40%);">+                      oml_tx_failure_event_rep(&trx->bts->mo, NM_SEVER_MAJOR, OSMO_EVT_WARN_SW_WARN,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               "Given ARFCN %u is unsupported", arfcn);</span><br><span>                  LOGPFOH(DOML, LOGL_NOTICE, foh, "Given ARFCN %u is unsupported.\n", arfcn);</span><br><span>                        return oml_fom_ack_nack(msg, NM_NACK_FREQ_NOTAVAIL);</span><br><span>                 }</span><br><span>@@ -926,9 +926,8 @@</span><br><span> </span><br><span>  rc = oml_tlv_parse(&tp, foh->data, msgb_l3len(msg) - sizeof(*foh));</span><br><span>   if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                oml_tx_failure_event_rep(&ts->mo, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span style="color: hsl(0, 100%, 40%);">-                                        "New value for Set Channel Attribute "</span><br><span style="color: hsl(0, 100%, 40%);">-                                        "not supported");</span><br><span style="color: hsl(120, 100%, 40%);">+          oml_tx_failure_event_rep(&ts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      "New value for Set Channel Attribute not supported");</span><br><span>             return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT);</span><br><span>         }</span><br><span> </span><br><span>@@ -1073,7 +1072,8 @@</span><br><span>                trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr);</span><br><span>                 if (trx)</span><br><span>                     mo = &trx->mo;</span><br><span style="color: hsl(0, 100%, 40%);">-           oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, form, foh->obj_inst.bts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+            oml_tx_failure_event_rep(mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG, form,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      foh->obj_inst.bts_nr,</span><br><span>                                     get_value_string(abis_nm_msgtype_names, foh->msg_type));</span><br><span> </span><br><span>             return true;</span><br><span>@@ -1094,7 +1094,8 @@</span><br><span>                 trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr);</span><br><span>                 if (trx)</span><br><span>                     mo = &trx->mo;</span><br><span style="color: hsl(0, 100%, 40%);">-           oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, "Formatted O&M message too short");</span><br><span style="color: hsl(120, 100%, 40%);">+         oml_tx_failure_event_rep(mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    "Formatted O&M message too short");</span><br><span>           return -EIO;</span><br><span>         }</span><br><span> </span><br><span>@@ -1149,8 +1150,8 @@</span><br><span>                trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr);</span><br><span>                 if (trx)</span><br><span>                     mo = &trx->mo;</span><br><span style="color: hsl(0, 100%, 40%);">-           oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, "unknown Formatted O&M "</span><br><span style="color: hsl(0, 100%, 40%);">-                                       "msg_type 0x%02x", foh->msg_type);</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(mo, NM_SEVER_MINOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    "unknown Formatted O&M msg_type 0x%02x", foh->msg_type);</span><br><span>           ret = oml_fom_ack_nack(msg, NM_NACK_MSGTYPE_INVAL);</span><br><span>  }</span><br><span> </span><br><span>@@ -1317,9 +1318,8 @@</span><br><span>                mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst);</span><br><span>                 if (!mo)</span><br><span>                     return oml_fom_ack_nack(msg, NM_NACK_OBJINST_UNKN);</span><br><span style="color: hsl(0, 100%, 40%);">-             oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    "New value for IPAC Set Attribute not "</span><br><span style="color: hsl(0, 100%, 40%);">-                                       "supported\n");</span><br><span style="color: hsl(120, 100%, 40%);">+            oml_tx_failure_event_rep(mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UNSUP_ATTR,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  "New value for IPAC Set Attribute not supported\n");</span><br><span>              return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT);</span><br><span>         }</span><br><span> </span><br><span>@@ -1392,13 +1392,13 @@</span><br><span>      int ret;</span><br><span> </span><br><span>         if (msgb_l2len(msg) < sizeof(*foh)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span>                                      "Manufacturer O&M message too short\n");</span><br><span>              return -EIO;</span><br><span>         }</span><br><span> </span><br><span>        if (strncmp((char *)&oh->data[1], abis_nm_ipa_magic, idstrlen)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span>                                      "Manufacturer OML message != ipaccess not supported\n");</span><br><span>          return -EINVAL;</span><br><span>      }</span><br><span>@@ -1437,8 +1437,8 @@</span><br><span>            trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr);</span><br><span>                 if (trx)</span><br><span>                     mo = &trx->mo;</span><br><span style="color: hsl(0, 100%, 40%);">-           oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, "unknown Manufacturer O&M "</span><br><span style="color: hsl(0, 100%, 40%);">-                                    "msg_type 0x%02x", foh->msg_type);</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(mo, NM_SEVER_MINOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    "unknown Manufacturer O&M msg_type 0x%02x", foh->msg_type);</span><br><span>                ret = oml_fom_ack_nack(msg, NM_NACK_MSGTYPE_INVAL);</span><br><span>  }</span><br><span> </span><br><span>@@ -1452,7 +1452,7 @@</span><br><span>        int ret = 0;</span><br><span> </span><br><span>     if (msgb_l2len(msg) < sizeof(*oh)) {</span><br><span style="color: hsl(0, 100%, 40%);">-         oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span>                                      "OML message too short\n");</span><br><span>               msgb_free(msg);</span><br><span>              return -EIO;</span><br><span>@@ -1461,14 +1461,14 @@</span><br><span> </span><br><span>   /* We don't implement de-segmentation of segmented OML messages */</span><br><span>       if (oh->placement != ABIS_OM_PLACEMENT_ONLY || oh->sequence != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span>                                      "Unsupported segmented O&M message\n");</span><br><span>               msgb_free(msg);</span><br><span>              return -EIO;</span><br><span>         }</span><br><span> </span><br><span>        if (msgb_l3len(msg) < oh->length) {</span><br><span style="color: hsl(0, 100%, 40%);">-               oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span>                                      "Short OML message: %u < %u\n",</span><br><span>                                         msgb_l3len(msg), oh->length);</span><br><span>            msgb_free(msg);</span><br><span>@@ -1478,7 +1478,7 @@</span><br><span>      switch (oh->mdisc) {</span><br><span>      case ABIS_OM_MDISC_FOM:</span><br><span>              if (msgb_l2len(msg) < sizeof(*oh)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                 oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+                      oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span>                                             "Formatted O&M message too short\n");</span><br><span>                  ret = -EIO;</span><br><span>                  break;</span><br><span>@@ -1487,7 +1487,7 @@</span><br><span>               break;</span><br><span>       case ABIS_OM_MDISC_MANUF:</span><br><span>            if (msgb_l2len(msg) < sizeof(*oh)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                 oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+                      oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span>                                             "Manufacturer O&M message too short\n");</span><br><span>                       ret = -EIO;</span><br><span>                  break;</span><br><span>@@ -1495,7 +1495,7 @@</span><br><span>               ret = down_mom(bts, msg);</span><br><span>            break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span style="color: hsl(120, 100%, 40%);">+              oml_tx_failure_event_rep(&bts->mo, NM_SEVER_MINOR, OSMO_EVT_MAJ_UKWN_MSG,</span><br><span>                                      "unknown O&M msg_disc 0x%02x\n", oh->mdisc);</span><br><span>               ret = -EINVAL;</span><br><span>       }</span><br><span>diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c</span><br><span>index 31097ba..a20a7fc 100644</span><br><span>--- a/src/common/pcu_sock.c</span><br><span>+++ b/src/common/pcu_sock.c</span><br><span>@@ -595,7 +595,7 @@</span><br><span>     case PCU_VERSION:</span><br><span>            LOGP(DPCU, LOGL_INFO, "OsmoPCU version %s connected\n",</span><br><span>                 txt->text);</span><br><span style="color: hsl(0, 100%, 40%);">-             oml_tx_failure_event_rep(&bts->gprs.cell.mo, OSMO_EVT_PCU_VERS, txt->text);</span><br><span style="color: hsl(120, 100%, 40%);">+         oml_tx_failure_event_rep(&bts->gprs.cell.mo, NM_SEVER_MINOR, OSMO_EVT_PCU_VERS, txt->text);</span><br><span>                osmo_strlcpy(bts->pcu_version, txt->text, MAX_VERSION_LENGTH);</span><br><span> </span><br><span>             if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_13))</span><br><span>@@ -604,7 +604,8 @@</span><br><span>              LOGP(DPCU, LOGL_INFO, "SI13 is not available on PCU connection\n");</span><br><span>                break;</span><br><span>       case PCU_OML_ALERT:</span><br><span style="color: hsl(0, 100%, 40%);">-             oml_tx_failure_event_rep(&bts->gprs.cell.mo, OSMO_EVT_EXT_ALARM, txt->text);</span><br><span style="color: hsl(120, 100%, 40%);">+                oml_tx_failure_event_rep(&bts->gprs.cell.mo, NM_SEVER_INDETERMINATE, OSMO_EVT_EXT_ALARM,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        txt->text);</span><br><span>              break;</span><br><span>       default:</span><br><span>             LOGP(DPCU, LOGL_ERROR, "Unknown TXT_IND type %u received\n",</span><br><span>@@ -731,7 +732,7 @@</span><br><span>         bts = llist_entry(state->net->bts_list.next, struct gsm_bts, list);</span><br><span> </span><br><span>        LOGP(DPCU, LOGL_NOTICE, "PCU socket has LOST connection\n");</span><br><span style="color: hsl(0, 100%, 40%);">-  oml_tx_failure_event_rep(&bts->gprs.cell.mo, OSMO_EVT_PCU_VERS,</span><br><span style="color: hsl(120, 100%, 40%);">+        oml_tx_failure_event_rep(&bts->gprs.cell.mo, NM_SEVER_MAJOR, OSMO_EVT_PCU_VERS,</span><br><span>                                "PCU socket has LOST connection");</span><br><span> </span><br><span>    bts->pcu_version[0] = '\0';</span><br><span>diff --git a/src/common/rsl.c b/src/common/rsl.c</span><br><span>index cc653ce..92575b5 100644</span><br><span>--- a/src/common/rsl.c</span><br><span>+++ b/src/common/rsl.c</span><br><span>@@ -471,8 +471,8 @@</span><br><span>    if (rc < 0) {</span><br><span>             /* FIXME: notfiy the BSC on other errors? */</span><br><span>                 if (rc == -ENOSPC) {</span><br><span style="color: hsl(0, 100%, 40%);">-                    oml_tx_failure_event_rep(&trx->bts->mo, OSMO_EVT_MIN_PAG_TAB_FULL,</span><br><span style="color: hsl(0, 100%, 40%);">-                                             "BTS paging table is full");</span><br><span style="color: hsl(120, 100%, 40%);">+                       oml_tx_failure_event_rep(&trx->bts->mo, NM_SEVER_WARNING,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            OSMO_EVT_MIN_PAG_TAB_FULL, "BTS paging table is full");</span><br><span>           }</span><br><span>    }</span><br><span> </span><br><span>@@ -2013,7 +2013,7 @@</span><br><span>                if (!lchan->abis_ip.rtp_socket) {</span><br><span>                         LOGPLCHAN(lchan, DRTP, LOGL_ERROR, "IPAC Failed to create RTP/RTCP sockets\n");</span><br><span>                    oml_tx_failure_event_rep(&lchan->ts->trx->mo,</span><br><span style="color: hsl(0, 100%, 40%);">-                                               OSMO_EVT_CRIT_RTP_TOUT,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               NM_SEVER_MINOR, OSMO_EVT_CRIT_RTP_TOUT,</span><br><span>                                              "%s IPAC Failed to create RTP/RTCP sockets",</span><br><span>                                               gsm_lchan_name(lchan));</span><br><span>                     return tx_ipac_XXcx_nack(lchan, RSL_ERR_RES_UNAVAIL,</span><br><span>@@ -2050,7 +2050,7 @@</span><br><span>                 if (rc < 0) {</span><br><span>                     LOGPLCHAN(lchan, DRTP, LOGL_ERROR, "IPAC Failed to bind RTP/RTCP sockets\n");</span><br><span>                      oml_tx_failure_event_rep(&lchan->ts->trx->mo,</span><br><span style="color: hsl(0, 100%, 40%);">-                                               OSMO_EVT_CRIT_RTP_TOUT,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               NM_SEVER_MINOR, OSMO_EVT_CRIT_RTP_TOUT,</span><br><span>                                              "%s IPAC Failed to bind RTP/RTCP sockets",</span><br><span>                                                 gsm_lchan_name(lchan));</span><br><span>                     osmo_rtp_socket_free(lchan->abis_ip.rtp_socket);</span><br><span>diff --git a/src/osmo-bts-oc2g/calib_file.c b/src/osmo-bts-oc2g/calib_file.c</span><br><span>index 72ec266..6d2d561 100644</span><br><span>--- a/src/osmo-bts-oc2g/calib_file.c</span><br><span>+++ b/src/osmo-bts-oc2g/calib_file.c</span><br><span>@@ -134,7 +134,7 @@</span><br><span>       st->fp = fopen(fname, "rb");</span><br><span>    if (!st->fp) {</span><br><span>            LOGP(DL1C, LOGL_FATAL, "Failed to open '%s' for calibration data.\n", fname);</span><br><span style="color: hsl(0, 100%, 40%);">-         oml_tx_failure_event_rep(&fl1h->phy_inst->trx->mo, OSMO_EVT_WARN_SW_WARN,</span><br><span style="color: hsl(120, 100%, 40%);">+                oml_tx_failure_event_rep(&fl1h->phy_inst->trx->mo, NM_SEVER_MAJOR, OSMO_EVT_WARN_SW_WARN,</span><br><span>                                        "Failed to open '%s' for calibration data", fname);</span><br><span>               return -1;</span><br><span>   }</span><br><span>@@ -221,7 +221,7 @@</span><br><span>      rc = calib_verify(fl1h, desc);</span><br><span>       if (rc < 0) {</span><br><span>             LOGP(DL1C, LOGL_FATAL, "Verify L1 calibration table %s -> failed (%d)\n", desc->fname, rc);</span><br><span style="color: hsl(0, 100%, 40%);">-             oml_tx_failure_event_rep(&fl1h->phy_inst->trx->mo, OSMO_EVT_WARN_SW_WARN,</span><br><span style="color: hsl(120, 100%, 40%);">+                oml_tx_failure_event_rep(&fl1h->phy_inst->trx->mo, NM_SEVER_MAJOR, OSMO_EVT_WARN_SW_WARN,</span><br><span>                                        "Verify L1 calibration table %s -> failed (%d)", desc->fname, rc);</span><br><span> </span><br><span>              st->last_file_idx = get_next_calib_file_idx(fl1h, st->last_file_idx);</span><br><span>@@ -278,7 +278,7 @@</span><br><span> </span><br><span>        if (!calib_path) {</span><br><span>           LOGP(DL1C, LOGL_FATAL, "Calibration file path not specified\n");</span><br><span style="color: hsl(0, 100%, 40%);">-              oml_tx_failure_event_rep(&fl1h->phy_inst->trx->mo, OSMO_EVT_WARN_SW_WARN,</span><br><span style="color: hsl(120, 100%, 40%);">+                oml_tx_failure_event_rep(&fl1h->phy_inst->trx->mo, NM_SEVER_MAJOR, OSMO_EVT_WARN_SW_WARN,</span><br><span>                                        "Calibration file path not specified");</span><br><span>           return -1;</span><br><span>   }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/14173">change 14173</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/14173"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I49af04212568892648e0e8704ba1cc6de8c8ae89 </div>
<div style="display:none"> Gerrit-Change-Number: 14173 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>