aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-12-14 13:47:02 +0100
committerHarald Welte <laforge@gnumonks.org>2017-12-14 15:03:43 +0100
commit4f59892ce6b05eb4d8ee914a9a2bda8601f39910 (patch)
treee47003f3346ccee762d255556c03cd9d16d609d8
parent6e59ced0319255c0815785115f433623985c2595 (diff)
Add per-BTS rate_ctr for total + failed number of RSL CHAN_ACT
-rw-r--r--include/osmocom/bsc/gsm_data.h4
-rw-r--r--src/libbsc/abis_rsl.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 776fcfebc..44fba861c 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -201,6 +201,8 @@ enum {
BTS_CTR_PAGING_ALREADY,
BTS_CTR_PAGING_RESPONDED,
BTS_CTR_PAGING_EXPIRED,
+ BTS_CTR_CHAN_ACT_TOTAL,
+ BTS_CTR_CHAN_ACT_NACK,
};
static const struct rate_ctr_desc bts_ctr_description[] = {
@@ -220,6 +222,8 @@ static const struct rate_ctr_desc bts_ctr_description[] = {
[BTS_CTR_PAGING_ALREADY] = {"paging:already", "Paging attempts ignored as subsciber was already being paged."},
[BTS_CTR_PAGING_RESPONDED] = {"paging:responded", "Paging attempts with successful paging response."},
[BTS_CTR_PAGING_EXPIRED] = {"paging:expired", "Paging Request expired because of timeout T3113."},
+ [BTS_CTR_CHAN_ACT_TOTAL] = {"chan_act:total", "Total number of Channel Activations."},
+ [BTS_CTR_CHAN_ACT_NACK] = {"chan_act:nack", "Number of Channel Activations that the BTS NACKed"},
};
static const struct rate_ctr_group_desc bts_ctrg_desc = {
diff --git a/src/libbsc/abis_rsl.c b/src/libbsc/abis_rsl.c
index fbaaf099f..0f5361e54 100644
--- a/src/libbsc/abis_rsl.c
+++ b/src/libbsc/abis_rsl.c
@@ -691,6 +691,8 @@ int rsl_chan_activate_lchan(struct gsm_lchan *lchan, uint8_t act_type,
msg->dst = lchan->ts->trx->rsl_link;
+ rate_ctr_inc(&lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_TOTAL]);
+
return abis_rsl_sendmsg(msg);
}
@@ -1314,6 +1316,8 @@ static int rsl_rx_chan_act_nack(struct msgb *msg)
osmo_timer_del(&msg->lchan->act_timer);
+ rate_ctr_inc(&msg->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_NACK]);
+
if (msg->lchan->state == LCHAN_S_BROKEN) {
LOGP(DRSL, LOGL_ERROR,
"%s CHANNEL ACTIVATE NACK for broken channel.\n",