<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-msc/+/24545">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Use new osmo stat items/ctr APIs<br><br>Generated using several semantinc patches with spatch.<br><br>Change-Id: I3ee853539949a763a309856bf2e7196415b23741<br>---<br>M src/libmsc/gsm_04_08.c<br>M src/libmsc/gsm_04_08_cc.c<br>M src/libmsc/gsm_04_11.c<br>M src/libmsc/gsm_09_11.c<br>M src/libmsc/mncc_call.c<br>M src/libmsc/msc_a.c<br>M src/libmsc/msc_vty.c<br>7 files changed, 61 insertions(+), 64 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/45/24545/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c</span><br><span>index 58ef074..fb450e6 100644</span><br><span>--- a/src/libmsc/gsm_04_08.c</span><br><span>+++ b/src/libmsc/gsm_04_08.c</span><br><span>@@ -366,15 +366,15 @@</span><br><span> </span><br><span>    switch (lu->type) {</span><br><span>       case GSM48_LUPD_NORMAL:</span><br><span style="color: hsl(0, 100%, 40%);">-         rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_NORMAL]);</span><br><span style="color: hsl(120, 100%, 40%);">+          rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_LOC_UPDATE_TYPE_NORMAL));</span><br><span>              vlr_lu_type = VLR_LU_TYPE_REGULAR;</span><br><span>           break;</span><br><span>       case GSM48_LUPD_IMSI_ATT:</span><br><span style="color: hsl(0, 100%, 40%);">-               rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_ATTACH]);</span><br><span style="color: hsl(120, 100%, 40%);">+          rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_LOC_UPDATE_TYPE_ATTACH));</span><br><span>              vlr_lu_type = VLR_LU_TYPE_IMSI_ATTACH;</span><br><span>               break;</span><br><span>       case GSM48_LUPD_PERIODIC:</span><br><span style="color: hsl(0, 100%, 40%);">-               rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_PERIODIC]);</span><br><span style="color: hsl(120, 100%, 40%);">+                rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_LOC_UPDATE_TYPE_PERIODIC));</span><br><span>            vlr_lu_type = VLR_LU_TYPE_PERIODIC;</span><br><span>          break;</span><br><span>       }</span><br><span>@@ -854,7 +854,7 @@</span><br><span> </span><br><span>  DEBUGP(DMM, "IMSI DETACH INDICATION: %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH]);</span><br><span style="color: hsl(120, 100%, 40%);">+  rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_LOC_UPDATE_TYPE_DETACH));</span><br><span> </span><br><span>  switch (mi.type) {</span><br><span>   case GSM_MI_TYPE_TMSI:</span><br><span>diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c</span><br><span>index 704e596..a8b4665 100644</span><br><span>--- a/src/libmsc/gsm_04_08_cc.c</span><br><span>+++ b/src/libmsc/gsm_04_08_cc.c</span><br><span>@@ -163,20 +163,22 @@</span><br><span>      /* state incoming */</span><br><span>         switch (new_state) {</span><br><span>         case GSM_CSTATE_ACTIVE:</span><br><span style="color: hsl(0, 100%, 40%);">-         osmo_stat_item_inc(trans->net->statg->items[MSC_STAT_ACTIVE_CALLS], 1);</span><br><span style="color: hsl(0, 100%, 40%);">-                rate_ctr_inc(&msc->ctr[MSC_CTR_CALL_ACTIVE]);</span><br><span style="color: hsl(120, 100%, 40%);">+          osmo_stat_item_inc(osmo_stat_item_group_get_item(trans->net->statg, MSC_STAT_ACTIVE_CALLS),</span><br><span style="color: hsl(120, 100%, 40%);">+                                1);</span><br><span style="color: hsl(120, 100%, 40%);">+                rate_ctr_inc(rate_ctr_group_get_ctr(msc, MSC_CTR_CALL_ACTIVE));</span><br><span>              break;</span><br><span>       }</span><br><span> </span><br><span>        /* state outgoing */</span><br><span>         switch (old_state) {</span><br><span>         case GSM_CSTATE_ACTIVE:</span><br><span style="color: hsl(0, 100%, 40%);">-         osmo_stat_item_dec(trans->net->statg->items[MSC_STAT_ACTIVE_CALLS], 1);</span><br><span style="color: hsl(120, 100%, 40%);">+              osmo_stat_item_dec(osmo_stat_item_group_get_item(trans->net->statg, MSC_STAT_ACTIVE_CALLS),</span><br><span style="color: hsl(120, 100%, 40%);">+                                1);</span><br><span>               if (new_state == GSM_CSTATE_DISCONNECT_REQ ||</span><br><span>                                new_state == GSM_CSTATE_DISCONNECT_IND)</span><br><span style="color: hsl(0, 100%, 40%);">-                 rate_ctr_inc(&msc->ctr[MSC_CTR_CALL_COMPLETE]);</span><br><span style="color: hsl(120, 100%, 40%);">+                        rate_ctr_inc(rate_ctr_group_get_ctr(msc, MSC_CTR_CALL_COMPLETE));</span><br><span>            else</span><br><span style="color: hsl(0, 100%, 40%);">-                    rate_ctr_inc(&msc->ctr[MSC_CTR_CALL_INCOMPLETE]);</span><br><span style="color: hsl(120, 100%, 40%);">+                      rate_ctr_inc(rate_ctr_group_get_ctr(msc, MSC_CTR_CALL_INCOMPLETE));</span><br><span>          break;</span><br><span>       }</span><br><span> }</span><br><span>@@ -574,7 +576,7 @@</span><br><span>         LOG_TRANS(trans, setup.emergency ? LOGL_NOTICE : LOGL_INFO, "%sSETUP to %s\n",</span><br><span>               setup.emergency ? "EMERGENCY_" : "", setup.called.number);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MO_SETUP]);</span><br><span style="color: hsl(120, 100%, 40%);">+ rate_ctr_inc(rate_ctr_group_get_ctr(trans->net->msc_ctrs, MSC_CTR_CALL_MO_SETUP));</span><br><span> </span><br><span>         /* indicate setup to MNCC */</span><br><span>         mncc_recvmsg(trans->net, trans, MNCC_SETUP_IND, &setup);</span><br><span>@@ -657,7 +659,7 @@</span><br><span> </span><br><span>    new_cc_state(trans, GSM_CSTATE_CALL_PRESENT);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP]);</span><br><span style="color: hsl(120, 100%, 40%);">+ rate_ctr_inc(rate_ctr_group_get_ctr(trans->net->msc_ctrs, MSC_CTR_CALL_MT_SETUP));</span><br><span> </span><br><span>         return trans_tx_gsm48(trans, msg);</span><br><span> }</span><br><span>@@ -902,7 +904,7 @@</span><br><span>        }</span><br><span> </span><br><span>        new_cc_state(trans, GSM_CSTATE_CONNECT_REQUEST);</span><br><span style="color: hsl(0, 100%, 40%);">-        rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_CONNECT]);</span><br><span style="color: hsl(120, 100%, 40%);">+       rate_ctr_inc(rate_ctr_group_get_ctr(trans->net->msc_ctrs, MSC_CTR_CALL_MT_CONNECT));</span><br><span> </span><br><span>       return mncc_recvmsg(trans->net, trans, MNCC_SETUP_CNF, &connect);</span><br><span> }</span><br><span>@@ -915,7 +917,7 @@</span><br><span>  gsm48_stop_cc_timer(trans);</span><br><span> </span><br><span>      new_cc_state(trans, GSM_CSTATE_ACTIVE);</span><br><span style="color: hsl(0, 100%, 40%);">- rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MO_CONNECT_ACK]);</span><br><span style="color: hsl(120, 100%, 40%);">+   rate_ctr_inc(rate_ctr_group_get_ctr(trans->net->msc_ctrs, MSC_CTR_CALL_MO_CONNECT_ACK));</span><br><span> </span><br><span>   memset(&connect_ack, 0, sizeof(struct gsm_mncc));</span><br><span>        connect_ack.callref = trans->callref;</span><br><span>diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c</span><br><span>index e5063dc..199fdc1 100644</span><br><span>--- a/src/libmsc/gsm_04_11.c</span><br><span>+++ b/src/libmsc/gsm_04_11.c</span><br><span>@@ -432,7 +432,7 @@</span><br><span>                  LOG_TRANS(trans, LOGL_ERROR, "SMS delivery error: %d\n", rc);</span><br><span>                      rc = GSM411_RP_CAUSE_MO_TEMP_FAIL;</span><br><span>                   /* rc will be logged by gsm411_send_rp_error() */</span><br><span style="color: hsl(0, 100%, 40%);">-                       rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_DELIVER_UNKNOWN_ERROR]);</span><br><span style="color: hsl(120, 100%, 40%);">+                       rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_DELIVER_UNKNOWN_ERROR));</span><br><span>           }</span><br><span>            return rc;</span><br><span>   }</span><br><span>@@ -448,22 +448,22 @@</span><br><span> #ifdef BUILD_SMPP</span><br><span>       /* Avoid a second look-up */</span><br><span>         if (smpp_route_smpp_first()) {</span><br><span style="color: hsl(0, 100%, 40%);">-          rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_NO_RECEIVER]);</span><br><span style="color: hsl(120, 100%, 40%);">+         rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_NO_RECEIVER));</span><br><span>             return GSM411_RP_CAUSE_MO_NUM_UNASSIGNED;</span><br><span>    }</span><br><span> </span><br><span>        rc = smpp_try_deliver(gsms, msc_a);</span><br><span>  if (rc == GSM411_RP_CAUSE_MO_NUM_UNASSIGNED) {</span><br><span style="color: hsl(0, 100%, 40%);">-          rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_NO_RECEIVER]);</span><br><span style="color: hsl(120, 100%, 40%);">+         rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_NO_RECEIVER));</span><br><span>     } else if (rc < 0) {</span><br><span>              LOG_TRANS(trans, LOGL_ERROR, "SMS delivery error: %d\n", rc);</span><br><span>              rc = GSM411_RP_CAUSE_MO_TEMP_FAIL;</span><br><span>           /* rc will be logged by gsm411_send_rp_error() */</span><br><span style="color: hsl(0, 100%, 40%);">-               rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_DELIVER_UNKNOWN_ERROR]);</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_DELIVER_UNKNOWN_ERROR));</span><br><span>   }</span><br><span> #else</span><br><span>   rc = GSM411_RP_CAUSE_MO_NUM_UNASSIGNED;</span><br><span style="color: hsl(0, 100%, 40%);">- rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_NO_RECEIVER]);</span><br><span style="color: hsl(120, 100%, 40%);">+ rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_NO_RECEIVER));</span><br><span> #endif</span><br><span> </span><br><span>       return rc;</span><br><span>@@ -501,7 +501,7 @@</span><br><span>     }</span><br><span> </span><br><span>        /* FIXME: should we do this on success, after all checks? */</span><br><span style="color: hsl(0, 100%, 40%);">-    rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_SUBMITTED]);</span><br><span style="color: hsl(120, 100%, 40%);">+   rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_SUBMITTED));</span><br><span> </span><br><span>   gsms = sms_alloc();</span><br><span>  if (!gsms)</span><br><span>@@ -903,10 +903,10 @@</span><br><span>            * to store this in our database and wait for a SMMA message */</span><br><span>              /* FIXME */</span><br><span>          send_signal(S_SMS_MEM_EXCEEDED, trans, sms, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-         rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_RP_ERR_MEM]);</span><br><span style="color: hsl(120, 100%, 40%);">+          rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_RP_ERR_MEM));</span><br><span>      } else {</span><br><span>             send_signal(S_SMS_UNKNOWN_ERROR, trans, sms, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-                rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_RP_ERR_OTHER]);</span><br><span style="color: hsl(120, 100%, 40%);">+                rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_RP_ERR_OTHER));</span><br><span>    }</span><br><span> </span><br><span>        sms_free(sms);</span><br><span>@@ -1211,7 +1211,7 @@</span><br><span>       /* Store a pointer to abstract SMS representation */</span><br><span>         trans->sms.sms = sms;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_DELIVERED]);</span><br><span style="color: hsl(120, 100%, 40%);">+   rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_DELIVERED));</span><br><span>       db_sms_inc_deliver_attempts(trans->sms.sms);</span><br><span> </span><br><span>  return gsm411_rp_sendmsg(&trans->sms.smr_inst, msg,</span><br><span>@@ -1254,7 +1254,7 @@</span><br><span>   /* Encode RP-UD itself (SM TPDU) */</span><br><span>  msgb_lv_put(msg, sm_rp_ud_len, sm_rp_ud);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_DELIVERED]);</span><br><span style="color: hsl(120, 100%, 40%);">+   rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_SMS_DELIVERED));</span><br><span> </span><br><span>   return gsm411_rp_sendmsg(&trans->sms.smr_inst, msg,</span><br><span>           GSM411_MT_RP_DATA_MT, trans->sms.sm_rp_mr,</span><br><span>diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c</span><br><span>index b696a67..d94be48 100644</span><br><span>--- a/src/libmsc/gsm_09_11.c</span><br><span>+++ b/src/libmsc/gsm_09_11.c</span><br><span>@@ -125,7 +125,7 @@</span><br><span>     trans = trans_find_by_id(msc_a, TRANS_USSD, tid);</span><br><span>    if (!trans) {</span><br><span>                /* Count MS-initiated attempts to establish a NC SS/USSD session */</span><br><span style="color: hsl(0, 100%, 40%);">-             rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS]);</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_NC_SS_MO_REQUESTS));</span><br><span> </span><br><span>               /**</span><br><span>           * According to GSM TS 04.80, section 2.4.2 "Register</span><br><span>@@ -159,7 +159,7 @@</span><br><span>                     ncss_session_timeout_handler, trans);</span><br><span> </span><br><span>            /* Count active NC SS/USSD sessions */</span><br><span style="color: hsl(0, 100%, 40%);">-          osmo_stat_item_inc(net->statg->items[MSC_STAT_ACTIVE_NC_SS], 1);</span><br><span style="color: hsl(120, 100%, 40%);">+                osmo_stat_item_inc(osmo_stat_item_group_get_item(net->statg, MSC_STAT_ACTIVE_NC_SS), 1);</span><br><span> </span><br><span>              trans->dlci = OMSC_LINKID_CB(msg);</span><br><span>                trans->msc_a = msc_a;</span><br><span>@@ -241,7 +241,7 @@</span><br><span> </span><br><span>   /* Count established MS-initiated NC SS/USSD sessions */</span><br><span>     if (msg_type == GSM0480_MTYPE_REGISTER)</span><br><span style="color: hsl(0, 100%, 40%);">-         rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_ESTABLISHED]);</span><br><span style="color: hsl(120, 100%, 40%);">+            rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_NC_SS_MO_ESTABLISHED));</span><br><span> </span><br><span>    return rc;</span><br><span> </span><br><span>@@ -297,7 +297,7 @@</span><br><span>                 trans->ss.msg = NULL;</span><br><span> </span><br><span>                 /* Count established network-initiated NC SS/USSD sessions */</span><br><span style="color: hsl(0, 100%, 40%);">-           rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED]);</span><br><span style="color: hsl(120, 100%, 40%);">+            rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_NC_SS_MT_ESTABLISHED));</span><br><span>        } else {</span><br><span>             struct osmo_gsup_message gsup_msg;</span><br><span> </span><br><span>@@ -363,7 +363,7 @@</span><br><span>         }</span><br><span> </span><br><span>        /* Count active NC SS/USSD sessions */</span><br><span style="color: hsl(0, 100%, 40%);">-  osmo_stat_item_inc(net->statg->items[MSC_STAT_ACTIVE_NC_SS], 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        osmo_stat_item_inc(osmo_stat_item_group_get_item(net->statg, MSC_STAT_ACTIVE_NC_SS), 1);</span><br><span> </span><br><span>      /* Init inactivity timer */</span><br><span>  osmo_timer_setup(&trans->ss.timer_guard,</span><br><span>@@ -415,7 +415,8 @@</span><br><span>        osmo_timer_del(&trans->ss.timer_guard);</span><br><span> </span><br><span>   /* One session less */</span><br><span style="color: hsl(0, 100%, 40%);">-  osmo_stat_item_dec(trans->net->statg->items[MSC_STAT_ACTIVE_NC_SS], 1);</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo_stat_item_dec(osmo_stat_item_group_get_item(trans->net->statg, MSC_STAT_ACTIVE_NC_SS),</span><br><span style="color: hsl(120, 100%, 40%);">+                        1);</span><br><span> }</span><br><span> </span><br><span> int gsm0911_gsup_rx(struct gsup_client_mux *gcm, void *data, const struct osmo_gsup_message *gsup_msg)</span><br><span>@@ -474,7 +475,7 @@</span><br><span> </span><br><span>  if (!trans) {</span><br><span>                /* Count network-initiated attempts to establish a NC SS/USSD session */</span><br><span style="color: hsl(0, 100%, 40%);">-                rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_REQUESTS]);</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_NC_SS_MT_REQUESTS));</span><br><span> </span><br><span>               /* Attempt to establish a new transaction */</span><br><span>                 trans = establish_nc_ss_trans(net, vsub, gsup_msg);</span><br><span>@@ -578,7 +579,7 @@</span><br><span> </span><br><span>        /* Count established network-initiated NC SS/USSD sessions */</span><br><span>        if (gsup_msg->session_state == OSMO_GSUP_SESSION_STATE_BEGIN)</span><br><span style="color: hsl(0, 100%, 40%);">-                rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED]);</span><br><span style="color: hsl(120, 100%, 40%);">+            rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, MSC_CTR_NC_SS_MT_ESTABLISHED));</span><br><span> </span><br><span>    return 0;</span><br><span> }</span><br><span>diff --git a/src/libmsc/mncc_call.c b/src/libmsc/mncc_call.c</span><br><span>index 131620d..c9a6d56 100644</span><br><span>--- a/src/libmsc/mncc_call.c</span><br><span>+++ b/src/libmsc/mncc_call.c</span><br><span>@@ -224,7 +224,7 @@</span><br><span>    mncc_call->local_msisdn_present = true;</span><br><span>   mncc_call->local_msisdn = mncc_msg.signal.calling;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       rate_ctr_inc(&gsmnet->msc_ctrs->ctr[MSC_CTR_CALL_MO_SETUP]);</span><br><span style="color: hsl(120, 100%, 40%);">+        rate_ctr_inc(rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_CALL_MO_SETUP));</span><br><span> </span><br><span>        mncc_call_tx(mncc_call, &mncc_msg);</span><br><span> }</span><br><span>diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c</span><br><span>index daa5bc7..391d251 100644</span><br><span>--- a/src/libmsc/msc_a.c</span><br><span>+++ b/src/libmsc/msc_a.c</span><br><span>@@ -112,19 +112,13 @@</span><br><span>    struct gsm_network *net = msc_a_net(msc_a);</span><br><span>  switch (msc_a->complete_layer3_type) {</span><br><span>    case COMPLETE_LAYER3_LU:</span><br><span style="color: hsl(0, 100%, 40%);">-                rate_ctr_inc(&net->msc_ctrs->ctr[</span><br><span style="color: hsl(0, 100%, 40%);">-                             conn_accepted ? MSC_CTR_LOC_UPDATE_COMPLETED</span><br><span style="color: hsl(0, 100%, 40%);">-                                          : MSC_CTR_LOC_UPDATE_FAILED]);</span><br><span style="color: hsl(120, 100%, 40%);">+          rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, conn_accepted ? MSC_CTR_LOC_UPDATE_COMPLETED : MSC_CTR_LOC_UPDATE_FAILED));</span><br><span>            break;</span><br><span>       case COMPLETE_LAYER3_CM_SERVICE_REQ:</span><br><span style="color: hsl(0, 100%, 40%);">-            rate_ctr_inc(&net->msc_ctrs->ctr[</span><br><span style="color: hsl(0, 100%, 40%);">-                             conn_accepted ? MSC_CTR_CM_SERVICE_REQUEST_ACCEPTED</span><br><span style="color: hsl(0, 100%, 40%);">-                                           : MSC_CTR_CM_SERVICE_REQUEST_REJECTED]);</span><br><span style="color: hsl(120, 100%, 40%);">+                rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, conn_accepted ? MSC_CTR_CM_SERVICE_REQUEST_ACCEPTED : MSC_CTR_CM_SERVICE_REQUEST_REJECTED));</span><br><span>           break;</span><br><span>       case COMPLETE_LAYER3_PAGING_RESP:</span><br><span style="color: hsl(0, 100%, 40%);">-               rate_ctr_inc(&net->msc_ctrs->ctr[</span><br><span style="color: hsl(0, 100%, 40%);">-                             conn_accepted ? MSC_CTR_PAGING_RESP_ACCEPTED</span><br><span style="color: hsl(0, 100%, 40%);">-                                          : MSC_CTR_PAGING_RESP_REJECTED]);</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_inc(rate_ctr_group_get_ctr(net->msc_ctrs, conn_accepted ? MSC_CTR_PAGING_RESP_ACCEPTED : MSC_CTR_PAGING_RESP_REJECTED));</span><br><span>                 break;</span><br><span>       default:</span><br><span>             break;</span><br><span>diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c</span><br><span>index 79b4daa..7b111b1 100644</span><br><span>--- a/src/libmsc/msc_vty.c</span><br><span>+++ b/src/libmsc/msc_vty.c</span><br><span>@@ -1814,45 +1814,45 @@</span><br><span>        SHOW_STR "Display network statistics\n")</span><br><span> {</span><br><span>      vty_out(vty, "Location Update         : %" PRIu64 " attach, %" PRIu64 " normal, %" PRIu64 " periodic%s",</span><br><span style="color: hsl(0, 100%, 40%);">-                gsmnet->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_ATTACH].current,</span><br><span style="color: hsl(0, 100%, 40%);">-            gsmnet->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_NORMAL].current,</span><br><span style="color: hsl(0, 100%, 40%);">-            gsmnet->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_PERIODIC].current,</span><br><span style="color: hsl(120, 100%, 40%);">+                rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_LOC_UPDATE_TYPE_ATTACH)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+              rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_LOC_UPDATE_TYPE_NORMAL)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+              rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_LOC_UPDATE_TYPE_PERIODIC)->current,</span><br><span>           VTY_NEWLINE);</span><br><span>        vty_out(vty, "IMSI Detach Indications : %" PRIu64 "%s",</span><br><span style="color: hsl(0, 100%, 40%);">-             gsmnet->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH].current,</span><br><span style="color: hsl(120, 100%, 40%);">+          rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_LOC_UPDATE_TYPE_DETACH)->current,</span><br><span>             VTY_NEWLINE);</span><br><span>        vty_out(vty, "Location Updating Results: %" PRIu64 " completed, %" PRIu64 " failed%s",</span><br><span style="color: hsl(0, 100%, 40%);">-            gsmnet->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_COMPLETED].current,</span><br><span style="color: hsl(0, 100%, 40%);">-              gsmnet->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_FAILED].current,</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_LOC_UPDATE_COMPLETED)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+                rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_LOC_UPDATE_FAILED)->current,</span><br><span>          VTY_NEWLINE);</span><br><span>        vty_out(vty, "SMS MO                  : %" PRIu64 " submitted, %" PRIu64 " no receiver%s",</span><br><span style="color: hsl(0, 100%, 40%);">-                gsmnet->msc_ctrs->ctr[MSC_CTR_SMS_SUBMITTED].current,</span><br><span style="color: hsl(0, 100%, 40%);">-             gsmnet->msc_ctrs->ctr[MSC_CTR_SMS_NO_RECEIVER].current,</span><br><span style="color: hsl(120, 100%, 40%);">+         rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_SMS_SUBMITTED)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_SMS_NO_RECEIVER)->current,</span><br><span>            VTY_NEWLINE);</span><br><span>        vty_out(vty, "SMS MT                  : %" PRIu64 " delivered, %" PRIu64 " no memory, %" PRIu64 " other error%s",</span><br><span style="color: hsl(0, 100%, 40%);">-               gsmnet->msc_ctrs->ctr[MSC_CTR_SMS_DELIVERED].current,</span><br><span style="color: hsl(0, 100%, 40%);">-             gsmnet->msc_ctrs->ctr[MSC_CTR_SMS_RP_ERR_MEM].current,</span><br><span style="color: hsl(0, 100%, 40%);">-            gsmnet->msc_ctrs->ctr[MSC_CTR_SMS_RP_ERR_OTHER].current,</span><br><span style="color: hsl(120, 100%, 40%);">+                rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_SMS_DELIVERED)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_SMS_RP_ERR_MEM)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+              rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_SMS_RP_ERR_OTHER)->current,</span><br><span>           VTY_NEWLINE);</span><br><span>        vty_out(vty, "MO Calls                : %" PRIu64 " setup, %" PRIu64 " connect ack%s",</span><br><span style="color: hsl(0, 100%, 40%);">-            gsmnet->msc_ctrs->ctr[MSC_CTR_CALL_MO_SETUP].current,</span><br><span style="color: hsl(0, 100%, 40%);">-             gsmnet->msc_ctrs->ctr[MSC_CTR_CALL_MO_CONNECT_ACK].current,</span><br><span style="color: hsl(120, 100%, 40%);">+             rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_CALL_MO_SETUP)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_CALL_MO_CONNECT_ACK)->current,</span><br><span>                VTY_NEWLINE);</span><br><span>        vty_out(vty, "MT Calls                : %" PRIu64 " setup, %" PRIu64 " connect%s",</span><br><span style="color: hsl(0, 100%, 40%);">-                gsmnet->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP].current,</span><br><span style="color: hsl(0, 100%, 40%);">-             gsmnet->msc_ctrs->ctr[MSC_CTR_CALL_MT_CONNECT].current,</span><br><span style="color: hsl(120, 100%, 40%);">+         rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_CALL_MT_SETUP)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+               rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_CALL_MT_CONNECT)->current,</span><br><span>            VTY_NEWLINE);</span><br><span>        vty_out(vty, "MO NC SS/USSD           : %" PRIu64 " requests, %" PRIu64 " established, %" PRIu64 " rejected%s",</span><br><span style="color: hsl(0, 100%, 40%);">-         gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS].current,</span><br><span style="color: hsl(0, 100%, 40%);">-         gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_ESTABLISHED].current,</span><br><span style="color: hsl(0, 100%, 40%);">-              gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS].current</span><br><span style="color: hsl(0, 100%, 40%);">-                  - gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_ESTABLISHED].current,</span><br><span style="color: hsl(120, 100%, 40%);">+          rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_NC_SS_MO_REQUESTS)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+           rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_NC_SS_MO_ESTABLISHED)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+                rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_NC_SS_MO_REQUESTS)->current</span><br><span style="color: hsl(120, 100%, 40%);">+                    - rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_NC_SS_MO_ESTABLISHED)->current,</span><br><span>             VTY_NEWLINE);</span><br><span>        vty_out(vty, "MT NC SS/USSD           : %" PRIu64 " requests, %" PRIu64 " established, %" PRIu64 " rejected%s",</span><br><span style="color: hsl(0, 100%, 40%);">-         gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_REQUESTS].current,</span><br><span style="color: hsl(0, 100%, 40%);">-         gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED].current,</span><br><span style="color: hsl(0, 100%, 40%);">-              gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_REQUESTS].current</span><br><span style="color: hsl(0, 100%, 40%);">-                  - gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED].current,</span><br><span style="color: hsl(120, 100%, 40%);">+          rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_NC_SS_MT_REQUESTS)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+           rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_NC_SS_MT_ESTABLISHED)->current,</span><br><span style="color: hsl(120, 100%, 40%);">+                rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_NC_SS_MT_REQUESTS)->current</span><br><span style="color: hsl(120, 100%, 40%);">+                    - rate_ctr_group_get_ctr(gsmnet->msc_ctrs, MSC_CTR_NC_SS_MT_ESTABLISHED)->current,</span><br><span>             VTY_NEWLINE);</span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-msc/+/24545">change 24545</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/c/osmo-msc/+/24545"/><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-Change-Id: I3ee853539949a763a309856bf2e7196415b23741 </div>
<div style="display:none"> Gerrit-Change-Number: 24545 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>