From b847a21fa48158b17c4f84c1ceeb3d143cffed8c Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Tue, 2 Aug 2016 11:34:11 +0200 Subject: libmsc/bsc: split rate counters into bsc and msc group Tweaked-By: Neels Hofmeyr Change-Id: I7361033cd1eb919ec3c2ea2652f40ab8c75b2f99 --- openbsc/include/openbsc/gsm_data.h | 79 ++++++++++++++++++------------- openbsc/src/libbsc/abis_rsl.c | 8 ++-- openbsc/src/libbsc/bsc_init.c | 4 +- openbsc/src/libbsc/bsc_vty.c | 18 +++---- openbsc/src/libbsc/gsm_04_08_utils.c | 2 +- openbsc/src/libbsc/handover_logic.c | 10 ++-- openbsc/src/libbsc/net_init.c | 3 +- openbsc/src/libbsc/paging.c | 6 +-- openbsc/src/libmsc/gsm_04_08.c | 20 ++++---- openbsc/src/libmsc/gsm_04_11.c | 14 +++--- openbsc/src/libmsc/vty_interface_layer3.c | 40 ++++++++-------- 11 files changed, 110 insertions(+), 94 deletions(-) diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index 6168a6ba2..daa5a4d2a 100644 --- a/openbsc/include/openbsc/gsm_data.h +++ b/openbsc/include/openbsc/gsm_data.h @@ -150,25 +150,49 @@ struct gsm_subscriber_connection { #include "gsm_data_shared.h" -/* Some statistics of our network */ enum { - MSC_CTR_CHREQ_TOTAL, - MSC_CTR_CHREQ_NO_CHANNEL, - MSC_CTR_HANDOVER_ATTEMPTED, - MSC_CTR_HANDOVER_NO_CHANNEL, - MSC_CTR_HANDOVER_TIMEOUT, - MSC_CTR_HANDOVER_COMPLETED, - MSC_CTR_HANDOVER_FAILED, + BSC_CTR_CHREQ_TOTAL, + BSC_CTR_CHREQ_NO_CHANNEL, + BSC_CTR_HANDOVER_ATTEMPTED, + BSC_CTR_HANDOVER_NO_CHANNEL, + BSC_CTR_HANDOVER_TIMEOUT, + BSC_CTR_HANDOVER_COMPLETED, + BSC_CTR_HANDOVER_FAILED, + BSC_CTR_PAGING_ATTEMPTED, + BSC_CTR_PAGING_DETACHED, + BSC_CTR_PAGING_COMPLETED, + BSC_CTR_PAGING_EXPIRED, + BSC_CTR_CHAN_RF_FAIL, + BSC_CTR_CHAN_RLL_ERR, + BSC_CTR_BTS_OML_FAIL, + BSC_CTR_BTS_RSL_FAIL, +}; + +static const struct rate_ctr_desc bsc_ctr_description[] = { + [BSC_CTR_CHREQ_TOTAL] = {"chreq.total", "Received channel requests."}, + [BSC_CTR_CHREQ_NO_CHANNEL] = {"chreq.no_channel", "Sent to MS no channel available."}, + [BSC_CTR_HANDOVER_ATTEMPTED] = {"handover.attempted", "Received handover attempts."}, + [BSC_CTR_HANDOVER_NO_CHANNEL] = {"handover.no_channel", "Sent no channel available responses."}, + [BSC_CTR_HANDOVER_TIMEOUT] = {"handover.timeout", "Count the amount of timeouts of timer T3103."}, + [BSC_CTR_HANDOVER_COMPLETED] = {"handover.completed", "Received handover completed."}, + [BSC_CTR_HANDOVER_FAILED] = {"handover.failed", "Receive HO FAIL messages."}, + [BSC_CTR_PAGING_ATTEMPTED] = {"paging.attempted", "Paging attempts for a MS."}, + [BSC_CTR_PAGING_DETACHED] = {"paging.detached", "Counts the amount of paging attempts which couldn't sent out any paging request because no responsible bts found."}, + [BSC_CTR_PAGING_COMPLETED] = {"paging.completed", "Paging successful completed."}, + [BSC_CTR_PAGING_EXPIRED] = {"paging.expired", "Paging Request expired because of timeout T3113."}, + [BSC_CTR_CHAN_RF_FAIL] = {"chan.rf_fail", "Received a RF failure indication from BTS."}, + [BSC_CTR_CHAN_RLL_ERR] = {"chan.rll_err", "Received a RLL failure with T200 cause from BTS."}, + [BSC_CTR_BTS_OML_FAIL] = {"bts.oml_fail", "Received a TEI down on a OML link."}, + [BSC_CTR_BTS_RSL_FAIL] = {"bts.rsl_fail", "Received a TEI down on a OML link."}, +}; + +enum { MSC_CTR_LOC_UPDATE_TYPE_ATTACH, MSC_CTR_LOC_UPDATE_TYPE_NORMAL, MSC_CTR_LOC_UPDATE_TYPE_PERIODIC, MSC_CTR_LOC_UPDATE_TYPE_DETACH, MSC_CTR_LOC_UPDATE_RESP_REJECT, MSC_CTR_LOC_UPDATE_RESP_ACCEPT, - MSC_CTR_PAGING_ATTEMPTED, - MSC_CTR_PAGING_DETACHED, - MSC_CTR_PAGING_COMPLETED, - MSC_CTR_PAGING_EXPIRED, MSC_CTR_SMS_SUBMITTED, MSC_CTR_SMS_NO_RECEIVER, MSC_CTR_SMS_DELIVERED, @@ -178,30 +202,15 @@ enum { MSC_CTR_CALL_MO_CONNECT_ACK, MSC_CTR_CALL_MT_SETUP, MSC_CTR_CALL_MT_CONNECT, - MSC_CTR_CHAN_RF_FAIL, - MSC_CTR_CHAN_RLL_ERR, - MSC_CTR_BTS_OML_FAIL, - MSC_CTR_BTS_RSL_FAIL, }; static const struct rate_ctr_desc msc_ctr_description[] = { - [MSC_CTR_CHREQ_TOTAL] = {"chreq.total", "Received channel requests."}, - [MSC_CTR_CHREQ_NO_CHANNEL] = {"chreq.no_channel", "Sent to MS no channel available."}, - [MSC_CTR_HANDOVER_ATTEMPTED] = {"handover.attempted", "Received handover attempts."}, - [MSC_CTR_HANDOVER_NO_CHANNEL] = {"handover.no_channel", "Sent no channel available responses."}, - [MSC_CTR_HANDOVER_TIMEOUT] = {"handover.timeout", "Count the amount of timeouts of timer T3103."}, - [MSC_CTR_HANDOVER_COMPLETED] = {"handover.completed", "Received handover completed."}, - [MSC_CTR_HANDOVER_FAILED] = {"handover.failed", "Receive HO FAIL messages."}, [MSC_CTR_LOC_UPDATE_TYPE_ATTACH] = {"loc_update_type.attach", "Received location update imsi attach requests."}, [MSC_CTR_LOC_UPDATE_TYPE_NORMAL] = {"loc_update_type.normal", "Received location update normal requests."}, [MSC_CTR_LOC_UPDATE_TYPE_PERIODIC] = {"loc_update_type.periodic", "Received location update periodic requests."}, [MSC_CTR_LOC_UPDATE_TYPE_DETACH] = {"loc_update_type.detach", "Received location update detach indication."}, [MSC_CTR_LOC_UPDATE_RESP_REJECT] = {"loc_update_resp.reject", "Sent location update reject responses."}, [MSC_CTR_LOC_UPDATE_RESP_ACCEPT] = {"loc_update_resp.accept", "Sent location update accept responses."}, - [MSC_CTR_PAGING_ATTEMPTED] = {"paging.attempted", "Paging attempts for a MS."}, - [MSC_CTR_PAGING_DETACHED] = {"paging.detached", "Counts the amount of paging attempts which couldn't sent out any paging request because no responsible bts found."}, - [MSC_CTR_PAGING_COMPLETED] = {"paging.completed", "Paging successful completed."}, - [MSC_CTR_PAGING_EXPIRED] = {"paging.expired", "Paging Request expired because of timeout T3113."}, [MSC_CTR_SMS_SUBMITTED] = {"sms.submitted", "Received a RPDU from a MS (MO)."}, [MSC_CTR_SMS_NO_RECEIVER] = {"sms.no_receiver", "Counts SMS which couldn't routed because no receiver found."}, [MSC_CTR_SMS_DELIVERED] = {"sms.delivered", "Global SMS Deliver attempts."}, @@ -212,10 +221,15 @@ static const struct rate_ctr_desc msc_ctr_description[] = { [MSC_CTR_CALL_MO_CONNECT_ACK] = {"call.mo_connect_ack", "Received a connect ack from MS of a MO call. Call is now succesful connected up."}, [MSC_CTR_CALL_MT_SETUP] = {"call.mt_setup", "Sent setup requests to the MS (MT)."}, [MSC_CTR_CALL_MT_CONNECT] = {"call.mt_connect", "Sent a connect to the MS (MT)."}, - [MSC_CTR_CHAN_RF_FAIL] = {"chan.rf_fail", "Received a RF failure indication from BTS."}, - [MSC_CTR_CHAN_RLL_ERR] = {"chan.rll_err", "Received a RLL failure with T200 cause from BTS."}, - [MSC_CTR_BTS_OML_FAIL] = {"bts.oml_fail", "Received a TEI down on a OML link."}, - [MSC_CTR_BTS_RSL_FAIL] = {"bts.rsl_fail", "Received a TEI down on a OML link."}, +}; + + +static const struct rate_ctr_group_desc bsc_ctrg_desc = { + "bsc", + "base station controller", + OSMO_STATS_CLASS_GLOBAL, + ARRAY_SIZE(bsc_ctr_description), + bsc_ctr_description, }; static const struct rate_ctr_group_desc msc_ctrg_desc = { @@ -268,7 +282,8 @@ struct gsm_network { unsigned int max_distance; /* TA values */ } handover; - struct rate_ctr_group *ratectrs; + struct rate_ctr_group *bsc_ctrs; + struct rate_ctr_group *msc_ctrs; /* layer 4 */ diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 9af986a68..4c8448ed5 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1229,7 +1229,7 @@ static int rsl_rx_conn_fail(struct msgb *msg) TLVP_LEN(&tp, RSL_IE_CAUSE)); LOGPC(DRSL, LOGL_NOTICE, "\n"); - rate_ctr_inc(&msg->lchan->ts->trx->bts->network->ratectrs->ctr[MSC_CTR_CHAN_RF_FAIL]); + rate_ctr_inc(&msg->lchan->ts->trx->bts->network->bsc_ctrs->ctr[BSC_CTR_CHAN_RF_FAIL]); return rsl_rf_chan_release_err(msg->lchan); } @@ -1663,7 +1663,7 @@ static int rsl_rx_chan_rqd(struct msgb *msg) lctype = get_ctype_by_chreq(bts->network, rqd_ref->ra); chreq_reason = get_reason_by_chreq(rqd_ref->ra, bts->network->neci); - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_CHREQ_TOTAL]); + rate_ctr_inc(&bts->network->bsc_ctrs->ctr[BSC_CTR_CHREQ_TOTAL]); /* * We want LOCATION UPDATES to succeed and will assign a TCH @@ -1676,7 +1676,7 @@ static int rsl_rx_chan_rqd(struct msgb *msg) if (!lchan) { LOGP(DRSL, LOGL_NOTICE, "BTS %d CHAN RQD: no resources for %s 0x%x\n", msg->lchan->ts->trx->bts->nr, gsm_lchant_name(lctype), rqd_ref->ra); - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_CHREQ_NO_CHANNEL]); + rate_ctr_inc(&bts->network->bsc_ctrs->ctr[BSC_CTR_CHREQ_NO_CHANNEL]); /* FIXME gather multiple CHAN RQD and reject up to 4 at the same time */ if (bts->network->T3122) rsl_send_imm_ass_rej(bts, 1, rqd_ref, bts->network->T3122 & 0xff); @@ -1859,7 +1859,7 @@ static int rsl_rx_rll_err_ind(struct msgb *msg) rll_indication(msg->lchan, rllh->link_id, BSC_RLLR_IND_ERR_IND); if (rlm_cause == RLL_CAUSE_T200_EXPIRED) { - rate_ctr_inc(&msg->lchan->ts->trx->bts->network->ratectrs->ctr[MSC_CTR_CHAN_RLL_ERR]); + rate_ctr_inc(&msg->lchan->ts->trx->bts->network->bsc_ctrs->ctr[BSC_CTR_CHAN_RLL_ERR]); return rsl_rf_chan_release_err(msg->lchan); } diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c index 5ea85d020..989fca800 100644 --- a/openbsc/src/libbsc/bsc_init.c +++ b/openbsc/src/libbsc/bsc_init.c @@ -340,9 +340,9 @@ static int inp_sig_cb(unsigned int subsys, unsigned int signal, LOGP(DLMI, LOGL_ERROR, "Lost some E1 TEI link: %d %p\n", isd->link_type, trx); if (isd->link_type == E1INP_SIGN_OML) - rate_ctr_inc(&trx->bts->network->ratectrs->ctr[MSC_CTR_BTS_OML_FAIL]); + rate_ctr_inc(&trx->bts->network->bsc_ctrs->ctr[BSC_CTR_BTS_OML_FAIL]); else if (isd->link_type == E1INP_SIGN_RSL) - rate_ctr_inc(&trx->bts->network->ratectrs->ctr[MSC_CTR_BTS_RSL_FAIL]); + rate_ctr_inc(&trx->bts->network->bsc_ctrs->ctr[BSC_CTR_BTS_RSL_FAIL]); /* * free all allocated channels. change the nm_state so the diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c index fbaf06bfb..8116af1ab 100644 --- a/openbsc/src/libbsc/bsc_vty.c +++ b/openbsc/src/libbsc/bsc_vty.c @@ -3784,21 +3784,21 @@ DEFUN(cfg_ts_e1_subslot, void openbsc_vty_print_statistics(struct vty *vty, struct gsm_network *net) { vty_out(vty, "Channel Requests : %lu total, %lu no channel%s", - net->ratectrs->ctr[MSC_CTR_CHREQ_TOTAL].current, - net->ratectrs->ctr[MSC_CTR_CHREQ_NO_CHANNEL].current, + net->bsc_ctrs->ctr[BSC_CTR_CHREQ_TOTAL].current, + net->bsc_ctrs->ctr[BSC_CTR_CHREQ_NO_CHANNEL].current, VTY_NEWLINE); vty_out(vty, "Channel Failures : %lu rf_failures, %lu rll failures%s", - net->ratectrs->ctr[MSC_CTR_CHAN_RF_FAIL].current, - net->ratectrs->ctr[MSC_CTR_CHAN_RLL_ERR].current, + net->bsc_ctrs->ctr[BSC_CTR_CHAN_RF_FAIL].current, + net->bsc_ctrs->ctr[BSC_CTR_CHAN_RLL_ERR].current, VTY_NEWLINE); vty_out(vty, "Paging : %lu attempted, %lu complete, %lu expired%s", - net->ratectrs->ctr[MSC_CTR_PAGING_ATTEMPTED].current, - net->ratectrs->ctr[MSC_CTR_PAGING_COMPLETED].current, - net->ratectrs->ctr[MSC_CTR_PAGING_EXPIRED].current, + net->bsc_ctrs->ctr[BSC_CTR_PAGING_ATTEMPTED].current, + net->bsc_ctrs->ctr[BSC_CTR_PAGING_COMPLETED].current, + net->bsc_ctrs->ctr[BSC_CTR_PAGING_EXPIRED].current, VTY_NEWLINE); vty_out(vty, "BTS failures : %lu OML, %lu RSL%s", - net->ratectrs->ctr[MSC_CTR_BTS_OML_FAIL].current, - net->ratectrs->ctr[MSC_CTR_BTS_RSL_FAIL].current, + net->bsc_ctrs->ctr[BSC_CTR_BTS_OML_FAIL].current, + net->bsc_ctrs->ctr[BSC_CTR_BTS_RSL_FAIL].current, VTY_NEWLINE); } diff --git a/openbsc/src/libbsc/gsm_04_08_utils.c b/openbsc/src/libbsc/gsm_04_08_utils.c index d4eca4a29..46df10827 100644 --- a/openbsc/src/libbsc/gsm_04_08_utils.c +++ b/openbsc/src/libbsc/gsm_04_08_utils.c @@ -304,7 +304,7 @@ int gsm48_handle_paging_resp(struct gsm_subscriber_connection *conn, subscr = conn->subscr; } - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_PAGING_COMPLETED]); + rate_ctr_inc(&bts->network->bsc_ctrs->ctr[BSC_CTR_PAGING_COMPLETED]); /* Stop paging on the bts we received the paging response */ paging_request_stop(conn->bts, subscr, conn, msg); diff --git a/openbsc/src/libbsc/handover_logic.c b/openbsc/src/libbsc/handover_logic.c index 5424e2750..ffcca6647 100644 --- a/openbsc/src/libbsc/handover_logic.c +++ b/openbsc/src/libbsc/handover_logic.c @@ -103,7 +103,7 @@ int bsc_handover_start(struct gsm_lchan *old_lchan, struct gsm_bts *bts) DEBUGP(DHO, "(old_lchan on BTS %u, new BTS %u)\n", old_lchan->ts->trx->bts->nr, bts->nr); - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_HANDOVER_ATTEMPTED]); + rate_ctr_inc(&bts->network->bsc_ctrs->ctr[BSC_CTR_HANDOVER_ATTEMPTED]); if (!old_lchan->conn) { LOGP(DHO, LOGL_ERROR, "Old lchan lacks connection data.\n"); @@ -113,7 +113,7 @@ int bsc_handover_start(struct gsm_lchan *old_lchan, struct gsm_bts *bts) new_lchan = lchan_alloc(bts, old_lchan->type, 0); if (!new_lchan) { LOGP(DHO, LOGL_NOTICE, "No free channel\n"); - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_HANDOVER_NO_CHANNEL]); + rate_ctr_inc(&bts->network->bsc_ctrs->ctr[BSC_CTR_HANDOVER_NO_CHANNEL]); return -ENOSPC; } @@ -188,7 +188,7 @@ static void ho_T3103_cb(void *_ho) struct gsm_network *net = ho->new_lchan->ts->trx->bts->network; DEBUGP(DHO, "HO T3103 expired\n"); - rate_ctr_inc(&net->ratectrs->ctr[MSC_CTR_HANDOVER_TIMEOUT]); + rate_ctr_inc(&net->bsc_ctrs->ctr[BSC_CTR_HANDOVER_TIMEOUT]); ho->new_lchan->conn->ho_lchan = NULL; ho->new_lchan->conn = NULL; @@ -265,7 +265,7 @@ static int ho_gsm48_ho_compl(struct gsm_lchan *new_lchan) ho->old_lchan->ts->trx->bts->nr, new_lchan->ts->trx->bts->nr, ho->old_lchan->ts->trx->arfcn, new_lchan->ts->trx->arfcn); - rate_ctr_inc(&net->ratectrs->ctr[MSC_CTR_HANDOVER_COMPLETED]); + rate_ctr_inc(&net->bsc_ctrs->ctr[BSC_CTR_HANDOVER_COMPLETED]); osmo_timer_del(&ho->T3103); @@ -303,7 +303,7 @@ static int ho_gsm48_ho_fail(struct gsm_lchan *old_lchan) return -ENODEV; } - rate_ctr_inc(&net->ratectrs->ctr[MSC_CTR_HANDOVER_FAILED]); + rate_ctr_inc(&net->bsc_ctrs->ctr[BSC_CTR_HANDOVER_FAILED]); new_lchan = ho->new_lchan; diff --git a/openbsc/src/libbsc/net_init.c b/openbsc/src/libbsc/net_init.c index b99f3d2a0..37ba3c02e 100644 --- a/openbsc/src/libbsc/net_init.c +++ b/openbsc/src/libbsc/net_init.c @@ -81,7 +81,8 @@ struct gsm_network *gsm_network_init(uint16_t country_code, uint16_t network_cod INIT_LLIST_HEAD(&net->bts_list); /* init statistics */ - net->ratectrs = rate_ctr_group_alloc(net, &msc_ctrg_desc, 0); + net->bsc_ctrs = rate_ctr_group_alloc(net, &bsc_ctrg_desc, 0); + net->bsc_ctrs = rate_ctr_group_alloc(net, &msc_ctrg_desc, 0); net->mncc_recv = mncc_recv; net->ext_min = GSM_MIN_EXTEN; diff --git a/openbsc/src/libbsc/paging.c b/openbsc/src/libbsc/paging.c index 03c91fd7b..fcb4debd9 100644 --- a/openbsc/src/libbsc/paging.c +++ b/openbsc/src/libbsc/paging.c @@ -260,7 +260,7 @@ static void paging_T3113_expired(void *data) req, req->subscr->imsi); /* must be destroyed before calling cbfn, to prevent double free */ - rate_ctr_inc(&req->bts->network->ratectrs->ctr[MSC_CTR_PAGING_EXPIRED]); + rate_ctr_inc(&req->bts->network->bsc_ctrs->ctr[BSC_CTR_PAGING_EXPIRED]); cbfn_param = req->cbfn_param; cbfn = req->cbfn; @@ -330,7 +330,7 @@ int paging_request(struct gsm_network *network, struct gsm_subscriber *subscr, struct gsm_bts *bts = NULL; int num_pages = 0; - rate_ctr_inc(&network->ratectrs->ctr[MSC_CTR_PAGING_ATTEMPTED]); + rate_ctr_inc(&network->bsc_ctrs->ctr[BSC_CTR_PAGING_ATTEMPTED]); /* start paging subscriber on all BTS within Location Area */ do { @@ -349,7 +349,7 @@ int paging_request(struct gsm_network *network, struct gsm_subscriber *subscr, } while (1); if (num_pages == 0) - rate_ctr_inc(&network->ratectrs->ctr[MSC_CTR_PAGING_DETACHED]); + rate_ctr_inc(&network->bsc_ctrs->ctr[BSC_CTR_PAGING_DETACHED]); return num_pages; } diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index c4ecf1c0c..c30fbb0a5 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -457,7 +457,7 @@ int gsm0408_loc_upd_rej(struct gsm_subscriber_connection *conn, uint8_t cause) struct gsm_bts *bts = conn->bts; struct msgb *msg; - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_LOC_UPDATE_RESP_REJECT]); + rate_ctr_inc(&bts->network->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_RESP_REJECT]); msg = gsm48_create_loc_upd_rej(cause); if (!msg) { @@ -506,7 +506,7 @@ static int gsm0408_loc_upd_acc(struct gsm_subscriber_connection *conn) DEBUGP(DMM, "-> LOCATION UPDATE ACCEPT\n"); - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_LOC_UPDATE_RESP_ACCEPT]); + rate_ctr_inc(&bts->network->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_RESP_ACCEPT]); return gsm48_conn_sendmsg(msg, conn, NULL); } @@ -637,13 +637,13 @@ static int mm_rx_loc_upd_req(struct gsm_subscriber_connection *conn, struct msgb switch (lu->type) { case GSM48_LUPD_NORMAL: - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_NORMAL]); + rate_ctr_inc(&bts->network->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_NORMAL]); break; case GSM48_LUPD_IMSI_ATT: - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_ATTACH]); + rate_ctr_inc(&bts->network->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_ATTACH]); break; case GSM48_LUPD_PERIODIC: - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_PERIODIC]); + rate_ctr_inc(&bts->network->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_PERIODIC]); break; } @@ -1063,7 +1063,7 @@ static int gsm48_rx_mm_imsi_detach_ind(struct gsm_subscriber_connection *conn, s DEBUGP(DMM, "IMSI DETACH INDICATION: MI(%s)=%s", gsm48_mi_type_name(mi_type), mi_string); - rate_ctr_inc(&bts->network->ratectrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH]); + rate_ctr_inc(&bts->network->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH]); switch (mi_type) { case GSM_MI_TYPE_TMSI: @@ -2002,7 +2002,7 @@ static int gsm48_cc_rx_setup(struct gsm_trans *trans, struct msgb *msg) subscr_name(trans->subscr), trans->subscr->extension, setup.called.number); - rate_ctr_inc(&trans->net->ratectrs->ctr[MSC_CTR_CALL_MO_SETUP]); + rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MO_SETUP]); /* indicate setup to MNCC */ mncc_recvmsg(trans->net, trans, MNCC_SETUP_IND, &setup); @@ -2080,7 +2080,7 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) new_cc_state(trans, GSM_CSTATE_CALL_PRESENT); - rate_ctr_inc(&trans->net->ratectrs->ctr[MSC_CTR_CALL_MT_SETUP]); + rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP]); return gsm48_conn_sendmsg(msg, trans->conn, trans); } @@ -2306,7 +2306,7 @@ static int gsm48_cc_rx_connect(struct gsm_trans *trans, struct msgb *msg) } new_cc_state(trans, GSM_CSTATE_CONNECT_REQUEST); - rate_ctr_inc(&trans->net->ratectrs->ctr[MSC_CTR_CALL_MT_CONNECT]); + rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_CONNECT]); return mncc_recvmsg(trans->net, trans, MNCC_SETUP_CNF, &connect); } @@ -2319,7 +2319,7 @@ static int gsm48_cc_rx_connect_ack(struct gsm_trans *trans, struct msgb *msg) gsm48_stop_cc_timer(trans); new_cc_state(trans, GSM_CSTATE_ACTIVE); - rate_ctr_inc(&trans->net->ratectrs->ctr[MSC_CTR_CALL_MO_CONNECT_ACK]); + rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MO_CONNECT_ACK]); memset(&connect_ack, 0, sizeof(struct gsm_mncc)); connect_ack.callref = trans->callref; diff --git a/openbsc/src/libmsc/gsm_04_11.c b/openbsc/src/libmsc/gsm_04_11.c index 840d4d4ce..6d3f41b23 100644 --- a/openbsc/src/libmsc/gsm_04_11.c +++ b/openbsc/src/libmsc/gsm_04_11.c @@ -310,21 +310,21 @@ try_local: #ifdef BUILD_SMPP /* Avoid a second look-up */ if (smpp_first) { - rate_ctr_inc(&conn->bts->network->ratectrs->ctr[MSC_CTR_SMS_NO_RECEIVER]); + rate_ctr_inc(&conn->bts->network->msc_ctrs->ctr[MSC_CTR_SMS_NO_RECEIVER]); return 1; /* cause 1: unknown subscriber */ } rc = smpp_try_deliver(gsms, conn); if (rc == 1) { rc = 1; /* cause 1: unknown subscriber */ - rate_ctr_inc(&conn->bts->network->ratectrs->ctr[MSC_CTR_SMS_NO_RECEIVER]); + rate_ctr_inc(&conn->bts->network->msc_ctrs->ctr[MSC_CTR_SMS_NO_RECEIVER]); } else if (rc < 0) { rc = 21; /* cause 21: short message transfer rejected */ /* FIXME: handle the error somehow? */ } #else rc = 1; /* cause 1: unknown subscriber */ - rate_ctr_inc(&conn->bts->network->ratectrs->ctr[MSC_CTR_SMS_NO_RECEIVER]); + rate_ctr_inc(&conn->bts->network->msc_ctrs->ctr[MSC_CTR_SMS_NO_RECEIVER]); #endif return rc; } @@ -365,7 +365,7 @@ static int gsm340_rx_tpdu(struct gsm_subscriber_connection *conn, struct msgb *m uint8_t address_lv[12]; /* according to 03.40 / 9.1.2.5 */ int rc = 0; - rate_ctr_inc(&conn->bts->network->ratectrs->ctr[MSC_CTR_SMS_SUBMITTED]); + rate_ctr_inc(&conn->bts->network->msc_ctrs->ctr[MSC_CTR_SMS_SUBMITTED]); gsms = sms_alloc(); if (!gsms) @@ -635,10 +635,10 @@ static int gsm411_rx_rp_error(struct msgb *msg, struct gsm_trans *trans, * to store this in our database and wait for a SMMA message */ /* FIXME */ send_signal(S_SMS_MEM_EXCEEDED, trans, sms, 0); - rate_ctr_inc(&net->ratectrs->ctr[MSC_CTR_SMS_RP_ERR_MEM]); + rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_RP_ERR_MEM]); } else { send_signal(S_SMS_UNKNOWN_ERROR, trans, sms, 0); - rate_ctr_inc(&net->ratectrs->ctr[MSC_CTR_SMS_RP_ERR_OTHER]); + rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_SMS_RP_ERR_OTHER]); } sms_free(sms); @@ -934,7 +934,7 @@ int gsm411_send_sms(struct gsm_subscriber_connection *conn, struct gsm_sms *sms) DEBUGP(DLSMS, "TX: SMS DELIVER\n"); - rate_ctr_inc(&conn->bts->network->ratectrs->ctr[MSC_CTR_SMS_DELIVERED]); + rate_ctr_inc(&conn->bts->network->msc_ctrs->ctr[MSC_CTR_SMS_DELIVERED]); db_sms_inc_deliver_attempts(trans->sms.sms); return gsm411_rp_sendmsg(&trans->sms.smr_inst, msg, diff --git a/openbsc/src/libmsc/vty_interface_layer3.c b/openbsc/src/libmsc/vty_interface_layer3.c index d1041b378..e7ff0a9ed 100644 --- a/openbsc/src/libmsc/vty_interface_layer3.c +++ b/openbsc/src/libmsc/vty_interface_layer3.c @@ -795,41 +795,41 @@ DEFUN(show_stats, openbsc_vty_print_statistics(vty, net); vty_out(vty, "Location Update : %lu attach, %lu normal, %lu periodic%s", - net->ratectrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_ATTACH].current, - net->ratectrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_NORMAL].current, - net->ratectrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_PERIODIC].current, + net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_ATTACH].current, + net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_NORMAL].current, + net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_PERIODIC].current, VTY_NEWLINE); vty_out(vty, "IMSI Detach Indications : %lu%s", - net->ratectrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH].current, + net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH].current, VTY_NEWLINE); vty_out(vty, "Location Update Response: %lu accept, %lu reject%s", - net->ratectrs->ctr[MSC_CTR_LOC_UPDATE_RESP_ACCEPT].current, - net->ratectrs->ctr[MSC_CTR_LOC_UPDATE_RESP_REJECT].current, + net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_RESP_ACCEPT].current, + net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_RESP_REJECT].current, VTY_NEWLINE); vty_out(vty, "Handover : %lu attempted, %lu no_channel, %lu timeout, " "%lu completed, %lu failed%s", - net->ratectrs->ctr[MSC_CTR_HANDOVER_ATTEMPTED].current, - net->ratectrs->ctr[MSC_CTR_HANDOVER_NO_CHANNEL].current, - net->ratectrs->ctr[MSC_CTR_HANDOVER_TIMEOUT].current, - net->ratectrs->ctr[MSC_CTR_HANDOVER_COMPLETED].current, - net->ratectrs->ctr[MSC_CTR_HANDOVER_FAILED].current, + net->msc_ctrs->ctr[BSC_CTR_HANDOVER_ATTEMPTED].current, + net->msc_ctrs->ctr[BSC_CTR_HANDOVER_NO_CHANNEL].current, + net->msc_ctrs->ctr[BSC_CTR_HANDOVER_TIMEOUT].current, + net->msc_ctrs->ctr[BSC_CTR_HANDOVER_COMPLETED].current, + net->msc_ctrs->ctr[BSC_CTR_HANDOVER_FAILED].current, VTY_NEWLINE); vty_out(vty, "SMS MO : %lu submitted, %lu no receiver%s", - net->ratectrs->ctr[MSC_CTR_SMS_SUBMITTED].current, - net->ratectrs->ctr[MSC_CTR_SMS_NO_RECEIVER].current, + net->msc_ctrs->ctr[MSC_CTR_SMS_SUBMITTED].current, + net->msc_ctrs->ctr[MSC_CTR_SMS_NO_RECEIVER].current, VTY_NEWLINE); vty_out(vty, "SMS MT : %lu delivered, %lu no memory, %lu other error%s", - net->ratectrs->ctr[MSC_CTR_SMS_DELIVERED].current, - net->ratectrs->ctr[MSC_CTR_SMS_RP_ERR_MEM].current, - net->ratectrs->ctr[MSC_CTR_SMS_RP_ERR_OTHER].current, + net->msc_ctrs->ctr[MSC_CTR_SMS_DELIVERED].current, + net->msc_ctrs->ctr[MSC_CTR_SMS_RP_ERR_MEM].current, + net->msc_ctrs->ctr[MSC_CTR_SMS_RP_ERR_OTHER].current, VTY_NEWLINE); vty_out(vty, "MO Calls : %lu setup, %lu connect ack%s", - net->ratectrs->ctr[MSC_CTR_CALL_MO_SETUP].current, - net->ratectrs->ctr[MSC_CTR_CALL_MO_CONNECT_ACK].current, + net->msc_ctrs->ctr[MSC_CTR_CALL_MO_SETUP].current, + net->msc_ctrs->ctr[MSC_CTR_CALL_MO_CONNECT_ACK].current, VTY_NEWLINE); vty_out(vty, "MT Calls : %lu setup, %lu connect%s", - net->ratectrs->ctr[MSC_CTR_CALL_MT_SETUP].current, - net->ratectrs->ctr[MSC_CTR_CALL_MT_CONNECT].current, + net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP].current, + net->msc_ctrs->ctr[MSC_CTR_CALL_MT_CONNECT].current, VTY_NEWLINE); return CMD_SUCCESS; } -- cgit v1.2.3