diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2021-11-01 19:08:16 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2021-11-05 12:01:27 +0100 |
commit | 96887554f9328ebce8bf1448eacd12620ed5c97b (patch) | |
tree | 6ea9ddee9ad7bb06840df8a5a10a62880eb6f58c /src/osmo-bsc/abis_rsl.c | |
parent | 5dbed8160f2b79bdac7b3a2ccae9d60110c2a332 (diff) |
add chreq:successful_<reason> rate counters
Related: SYS#4878
Change-Id: I32c2c197a6199617a82986480b686c515fa40d62
Diffstat (limited to 'src/osmo-bsc/abis_rsl.c')
-rw-r--r-- | src/osmo-bsc/abis_rsl.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index c3825f6a8..cdd57c257 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -2097,6 +2097,7 @@ void abis_rsl_chan_rqd_queue_poll(struct gsm_bts *bts) gsm_chreq_name(rqd->reason), rqd->ref.ra, rqd->ta); info = (struct lchan_activate_info){ .activ_for = ACTIVATE_FOR_MS_CHANNEL_REQUEST, + .chreq_reason = rqd->reason, .ch_mode_rate = { .chan_mode = GSM48_CMODE_SIGN, .chan_rate = CH_RATE_SDCCH, @@ -2112,6 +2113,35 @@ void abis_rsl_chan_rqd_queue_poll(struct gsm_bts *bts) return; } +static void imm_ass_rate_ctr(struct gsm_lchan *lchan) +{ + struct gsm_bts *bts = lchan->ts->trx->bts; + rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_SUCCESSFUL)); + switch (lchan->activate.info.chreq_reason) { + case GSM_CHREQ_REASON_EMERG: + rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_EMERG)); + break; + case GSM_CHREQ_REASON_CALL: + rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_CALL)); + break; + case GSM_CHREQ_REASON_LOCATION_UPD: + rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD)); + break; + case GSM_CHREQ_REASON_PAG: + rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_PAG)); + break; + case GSM_CHREQ_REASON_PDCH: + rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_PDCH)); + break; + case GSM_CHREQ_REASON_OTHER: + rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_OTHER)); + break; + default: + rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN)); + break; + } +} + int rsl_tx_imm_assignment(struct gsm_lchan *lchan) { int rc; @@ -2156,7 +2186,7 @@ int rsl_tx_imm_assignment(struct gsm_lchan *lchan) rc = rsl_imm_assign_cmd(bts, sizeof(*ia)+ia->mob_alloc_len, (uint8_t *) ia); if (!rc) - rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_CHREQ_SUCCESSFUL)); + imm_ass_rate_ctr(lchan); return rc; } |