From 1062f88f8349e2cf3fd82d140a775e0ff1fb3a5a Mon Sep 17 00:00:00 2001 From: Alexander Chemeris Date: Fri, 22 May 2020 21:26:32 +0300 Subject: stats: Add a BTS counter for paging requests responded elsewhere. If we have several BTS in a single LAC, only one of them will respond to the paging. Without this counter this situation will lead to "lost" paging requests, i.e. in disparity between attempted pagings and expired/responded/etc pagings. Now the sum of all paging response counters should actually match the attempted counter. Change-Id: I4b27a0559ef2762e62bc3ac30000f17b89b0ed48 --- include/osmocom/bsc/gsm_data.h | 2 ++ src/osmo-bsc/paging.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 1e7e88fe5..d2f6c0972 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1397,6 +1397,7 @@ enum bts_counter_id { BTS_CTR_PAGING_ATTEMPTED, BTS_CTR_PAGING_ALREADY, BTS_CTR_PAGING_RESPONDED, + BTS_CTR_PAGING_RESPONDED_ELSEWHERE, BTS_CTR_PAGING_EXPIRED, BTS_CTR_PAGING_NO_ACTIVE_PAGING, BTS_CTR_PAGING_MSC_FLUSH, @@ -1444,6 +1445,7 @@ static const struct rate_ctr_desc bts_ctr_description[] = { [BTS_CTR_PAGING_ATTEMPTED] = {"paging:attempted", "Paging attempts for a subscriber."}, [BTS_CTR_PAGING_ALREADY] = {"paging:already", "Paging attempts ignored as subscriber was already being paged."}, [BTS_CTR_PAGING_RESPONDED] = {"paging:responded", "Paging attempts with successful paging response."}, + [BTS_CTR_PAGING_RESPONDED_ELSEWHERE] = {"paging:responded_elsewhere", "Paging attempts with paging response received on another BTS with the same LAC."}, [BTS_CTR_PAGING_EXPIRED] = {"paging:expired", "Paging Request expired because of timeout T3113."}, [BTS_CTR_PAGING_NO_ACTIVE_PAGING] = {"paging:no_active_paging", "Paging response without an active paging request (arrived after paging expiration?)."}, [BTS_CTR_PAGING_MSC_FLUSH] = {"paging:msc_flush", "Paging flushed due to MSC Reset BSSMAP message."}, diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c index 7b89dad9b..34afcddbb 100644 --- a/src/osmo-bsc/paging.c +++ b/src/osmo-bsc/paging.c @@ -441,7 +441,9 @@ void paging_request_stop(struct llist_head *bts_list, /* Sort of an optimization. */ if (bts == _bts) continue; - _paging_request_stop(bts, bsub, NULL, NULL); + if (_paging_request_stop(bts, bsub, NULL, NULL) == 0) { + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_PAGING_RESPONDED_ELSEWHERE]); + } } log_set_context(LOG_CTX_BSC_SUBSCR, NULL); } -- cgit v1.2.3