diff options
author | Harald Welte <laforge@netfilter.org> | 2009-12-22 19:07:32 +0100 |
---|---|---|
committer | Harald Welte <laforge@netfilter.org> | 2009-12-22 20:42:40 +0100 |
commit | ffa55a4e8783419f60932ef2f9e872293cf932b9 (patch) | |
tree | c615771fe04a89807a012d8e100de53847b70d0f /openbsc/src/gsm_04_11.c | |
parent | 4983921af1a84ea20c6be7944bf0ff4928578a69 (diff) |
statistics: Introduce 'struct counter' instead of using unsigned long
This has the advantage that counters can be added all over the code
very easily, while having only one routine that stores all of the
current counter values to the database. The counters are synced
every 60 seconds, providing relatively fine grained statistics
about the network usage as time passes by.
Diffstat (limited to 'openbsc/src/gsm_04_11.c')
-rw-r--r-- | openbsc/src/gsm_04_11.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c index a5f64f170..d5b011609 100644 --- a/openbsc/src/gsm_04_11.c +++ b/openbsc/src/gsm_04_11.c @@ -517,7 +517,7 @@ static int gsm340_rx_tpdu(struct msgb *msg) u_int8_t address_lv[12]; /* according to 03.40 / 9.1.2.5 */ int rc = 0; - bts->network->stats.sms.submitted++; + counter_inc(bts->network->stats.sms.submitted); gsms = sms_alloc(); if (!gsms) @@ -607,7 +607,7 @@ static int gsm340_rx_tpdu(struct msgb *msg) gsms->receiver = subscr_get_by_extension(bts->network, gsms->dest_addr); if (!gsms->receiver) { rc = 1; /* cause 1: unknown subscriber */ - bts->network->stats.sms.no_receiver++; + counter_inc(bts->network->stats.sms.no_receiver); goto out; } @@ -761,6 +761,7 @@ static int gsm411_rx_rp_ack(struct msgb *msg, struct gsm_trans *trans, static int gsm411_rx_rp_error(struct msgb *msg, struct gsm_trans *trans, struct gsm411_rp_hdr *rph) { + struct gsm_network *net = trans->lchan->ts->trx->bts->network; struct gsm_sms *sms = trans->sms.sms; u_int8_t cause_len = rph->data[0]; u_int8_t cause = rph->data[1]; @@ -794,9 +795,9 @@ static int gsm411_rx_rp_error(struct msgb *msg, struct gsm_trans *trans, * to store this in our database and wati for a SMMA message */ /* FIXME */ dispatch_signal(SS_SMS, S_SMS_MEM_EXCEEDED, trans->subscr); - trans->lchan->ts->trx->bts->network->stats.sms.rp_err_mem++; + counter_inc(net->stats.sms.rp_err_mem); } else - trans->lchan->ts->trx->bts->network->stats.sms.rp_err_other++; + counter_inc(net->stats.sms.rp_err_other); sms_free(sms); trans->sms.sms = NULL; @@ -1073,7 +1074,7 @@ int gsm411_send_sms_lchan(struct gsm_lchan *lchan, struct gsm_sms *sms) DEBUGP(DSMS, "TX: SMS DELIVER\n"); - lchan->ts->trx->bts->network->stats.sms.delivered++; + counter_inc(lchan->ts->trx->bts->network->stats.sms.delivered); return gsm411_rp_sendmsg(msg, trans, GSM411_MT_RP_DATA_MT, msg_ref); /* FIXME: enter 'wait for RP-ACK' state, start TR1N */ |