<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/9711">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions<br><br>This change introduces some new rate counters for call-independent<br>SS/USSD connections. As OsmoMSC doesn't handle the messages itself,<br>and only responsible for dispatching messages between both<br>A and GSUP interfaces, the following is taken into account:<br><br>  - MS-initiated and network-initiated requests to establish<br>    a NC SS/USSD session (transaction) - "nc_ss:m{o|t}_requests";<br><br>  - successfully established MS-initiated and network-initiated<br>    SS/USSD sessions (transactions) - "nc_ss:m{o|t}_established".<br><br>Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741<br>---<br>M include/osmocom/msc/gsm_data.h<br>M src/libmsc/gsm_09_11.c<br>M src/libmsc/msc_vty.c<br>3 files changed, 38 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h</span><br><span>index 73047ee..3af619d 100644</span><br><span>--- a/include/osmocom/msc/gsm_data.h</span><br><span>+++ b/include/osmocom/msc/gsm_data.h</span><br><span>@@ -200,6 +200,10 @@</span><br><span>         MSC_CTR_CALL_ACTIVE,</span><br><span>         MSC_CTR_CALL_COMPLETE,</span><br><span>       MSC_CTR_CALL_INCOMPLETE,</span><br><span style="color: hsl(120, 100%, 40%);">+      MSC_CTR_NC_SS_MO_REQUESTS,</span><br><span style="color: hsl(120, 100%, 40%);">+    MSC_CTR_NC_SS_MO_ESTABLISHED,</span><br><span style="color: hsl(120, 100%, 40%);">+ MSC_CTR_NC_SS_MT_REQUESTS,</span><br><span style="color: hsl(120, 100%, 40%);">+    MSC_CTR_NC_SS_MT_ESTABLISHED,</span><br><span> };</span><br><span> </span><br><span> static const struct rate_ctr_desc msc_ctr_description[] = {</span><br><span>@@ -227,6 +231,10 @@</span><br><span>        [MSC_CTR_CALL_ACTIVE] =                 {"call:active", "Count total amount of calls that ever reached active state."},</span><br><span>  [MSC_CTR_CALL_COMPLETE] =               {"call:complete", "Count total amount of calls which got terminated by disconnect req or ind after reaching active state."},</span><br><span>     [MSC_CTR_CALL_INCOMPLETE] =             {"call:incomplete", "Count total amount of call which got terminated by any other reason after reaching active state."},</span><br><span style="color: hsl(120, 100%, 40%);">+  [MSC_CTR_NC_SS_MO_REQUESTS] =           {"nc_ss:mo_requests", "Received MS-initiated call independent SS/USSD requests."},</span><br><span style="color: hsl(120, 100%, 40%);">+        [MSC_CTR_NC_SS_MO_ESTABLISHED] =        {"nc_ss:mo_established", "Established MS-initiated call independent SS/USSD sessions."},</span><br><span style="color: hsl(120, 100%, 40%);">+  [MSC_CTR_NC_SS_MT_REQUESTS] =           {"nc_ss:mt_requests", "Received network-initiated call independent SS/USSD requests."},</span><br><span style="color: hsl(120, 100%, 40%);">+   [MSC_CTR_NC_SS_MT_ESTABLISHED] =        {"nc_ss:mt_established", "Established network-initiated call independent SS/USSD sessions."},</span><br><span> };</span><br><span> </span><br><span> static const struct rate_ctr_group_desc msc_ctrg_desc = {</span><br><span>diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c</span><br><span>index 96acd8c..2c5afb3 100644</span><br><span>--- a/src/libmsc/gsm_09_11.c</span><br><span>+++ b/src/libmsc/gsm_09_11.c</span><br><span>@@ -31,6 +31,7 @@</span><br><span> #include <stdbool.h></span><br><span> </span><br><span> #include <osmocom/core/linuxlist.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/core/rate_ctr.h></span><br><span> #include <osmocom/core/utils.h></span><br><span> #include <osmocom/core/msgb.h></span><br><span> #include <osmocom/gsm/tlv.h></span><br><span>@@ -74,6 +75,9 @@</span><br><span>        /* Reuse existing transaction, or create a new one */</span><br><span>        trans = trans_find_by_id(conn, pdisc, tid);</span><br><span>  if (!trans) {</span><br><span style="color: hsl(120, 100%, 40%);">+         /* Count MS-initiated attempts to establish a NC SS/USSD session */</span><br><span style="color: hsl(120, 100%, 40%);">+           rate_ctr_inc(&conn->network->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>               /**</span><br><span>           * According to GSM TS 04.80, section 2.4.2 "Register</span><br><span>            * (mobile station to network direction)", the REGISTER</span><br><span>@@ -185,6 +189,10 @@</span><br><span>  else</span><br><span>                 msc_subscr_conn_communicating(conn);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+      /* Count established MS-initiated NC SS/USSD sessions */</span><br><span style="color: hsl(120, 100%, 40%);">+      if (msg_type == GSM0480_MTYPE_REGISTER)</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_inc(&conn->network->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_ESTABLISHED]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>    return 0;</span><br><span> </span><br><span> error:</span><br><span>@@ -233,6 +241,9 @@</span><br><span>                /* Sent to the MS, give ownership of ss_msg */</span><br><span>               msc_tx_dtap(transt->conn, ss_msg);</span><br><span>                transt->ss.msg = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           /* Count established network-initiated NC SS/USSD sessions */</span><br><span style="color: hsl(120, 100%, 40%);">+         rate_ctr_inc(&conn->network->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED]);</span><br><span>              break;</span><br><span>       case GSM_PAGING_EXPIRED:</span><br><span>     case GSM_PAGING_BUSY:</span><br><span>@@ -386,6 +397,9 @@</span><br><span>  /* Attempt to find DTAP-transaction */</span><br><span>       trans = trans_find_by_callref(net, gsup_msg->session_id);</span><br><span>         if (!trans) {</span><br><span style="color: hsl(120, 100%, 40%);">+         /* Count network-initiated attempts to establish a NC SS/USSD session */</span><br><span style="color: hsl(120, 100%, 40%);">+              rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_REQUESTS]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>            /* Attempt to establish a new transaction */</span><br><span>                 trans = establish_nc_ss_trans(net, vsub, gsup_msg);</span><br><span>          if (!trans) {</span><br><span>@@ -464,5 +478,9 @@</span><br><span>  if (trans_end)</span><br><span>               trans_free(trans);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        /* Count established network-initiated NC SS/USSD sessions */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (gsup_msg->session_state == OSMO_GSUP_SESSION_STATE_BEGIN)</span><br><span style="color: hsl(120, 100%, 40%);">+              rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         return 0;</span><br><span> }</span><br><span>diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c</span><br><span>index d10028e..3cbb001 100644</span><br><span>--- a/src/libmsc/msc_vty.c</span><br><span>+++ b/src/libmsc/msc_vty.c</span><br><span>@@ -1217,6 +1217,18 @@</span><br><span>                 gsmnet->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP].current,</span><br><span>          gsmnet->msc_ctrs->ctr[MSC_CTR_CALL_MT_CONNECT].current,</span><br><span>                VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ vty_out(vty, "MO NC SS/USSD           : %lu requests, %lu established, %lu rejected%s",</span><br><span style="color: hsl(120, 100%, 40%);">+             gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS].current,</span><br><span style="color: hsl(120, 100%, 40%);">+               gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_ESTABLISHED].current,</span><br><span style="color: hsl(120, 100%, 40%);">+            gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS].current</span><br><span style="color: hsl(120, 100%, 40%);">+                        - gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_ESTABLISHED].current,</span><br><span style="color: hsl(120, 100%, 40%);">+          VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+ vty_out(vty, "MT NC SS/USSD           : %lu requests, %lu established, %lu rejected%s",</span><br><span style="color: hsl(120, 100%, 40%);">+             gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_REQUESTS].current,</span><br><span style="color: hsl(120, 100%, 40%);">+               gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED].current,</span><br><span style="color: hsl(120, 100%, 40%);">+            gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_REQUESTS].current</span><br><span style="color: hsl(120, 100%, 40%);">+                        - gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED].current,</span><br><span style="color: hsl(120, 100%, 40%);">+          VTY_NEWLINE);</span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9711">change 9711</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/9711"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 </div>
<div style="display:none"> Gerrit-Change-Number: 9711 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Alexander Chemeris <Alexander.Chemeris@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: Vadim Yanitskiy <axilirator@gmail.com> </div>