diff options
author | Daniel Willmann <dwillmann@sysmocom.de> | 2020-08-20 15:25:37 +0200 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2020-08-24 07:41:43 +0000 |
commit | bf2a4b69d86337ff56ec5cdf02a4fb12d5cd6217 (patch) | |
tree | 79c25d8db397bb792fb3b71e1cc0e080846893ce /include/osmocom/bsc/bts.h | |
parent | 02f0b30cda861ec31958f539cc18807546bd7bb2 (diff) |
Count intra-cell and intra-bsc handover separately
Currently the counters don't distinguish between intra-cell and
intra-bsc handover.
Add _CTR_INTRA_CELL_HO_ and _CTR_INTRA_BSC_HO_ counters to track
intra-cell/bsc handover separately.
Change-Id: I3a1195640b99813036c9f1426ee5f07548e26547
Related: SYS#4877
Diffstat (limited to 'include/osmocom/bsc/bts.h')
-rw-r--r-- | include/osmocom/bsc/bts.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 46a173d9b..dc51d1720 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -75,6 +75,20 @@ enum bts_counter_id { BTS_CTR_HANDOVER_TIMEOUT, BTS_CTR_HANDOVER_FAILED, BTS_CTR_HANDOVER_ERROR, + BTS_CTR_INTRA_CELL_HO_ATTEMPTED, + BTS_CTR_INTRA_CELL_HO_COMPLETED, + BTS_CTR_INTRA_CELL_HO_STOPPED, + BTS_CTR_INTRA_CELL_HO_NO_CHANNEL, + BTS_CTR_INTRA_CELL_HO_TIMEOUT, + BTS_CTR_INTRA_CELL_HO_FAILED, + BTS_CTR_INTRA_CELL_HO_ERROR, + BTS_CTR_INTRA_BSC_HO_ATTEMPTED, + BTS_CTR_INTRA_BSC_HO_COMPLETED, + BTS_CTR_INTRA_BSC_HO_STOPPED, + BTS_CTR_INTRA_BSC_HO_NO_CHANNEL, + BTS_CTR_INTRA_BSC_HO_TIMEOUT, + BTS_CTR_INTRA_BSC_HO_FAILED, + BTS_CTR_INTRA_BSC_HO_ERROR, BTS_CTR_INTER_BSC_HO_OUT_ATTEMPTED, BTS_CTR_INTER_BSC_HO_OUT_COMPLETED, BTS_CTR_INTER_BSC_HO_OUT_STOPPED, @@ -154,6 +168,22 @@ static const struct rate_ctr_desc bts_ctr_description[] = { [BTS_CTR_HANDOVER_FAILED] = {"handover:failed", "Received Handover Fail messages"}, [BTS_CTR_HANDOVER_ERROR] = {"handover:error", "Re-assignment failed for other reason"}, + [BTS_CTR_INTRA_CELL_HO_ATTEMPTED] = {"intra_cell_ho:attempted", "Intra-Cell handover attempts"}, + [BTS_CTR_INTRA_CELL_HO_COMPLETED] = {"intra_cell_ho:completed", "Intra-Cell handover completed"}, + [BTS_CTR_INTRA_CELL_HO_STOPPED] = {"intra_cell_ho:stopped", "Connection ended during HO"}, + [BTS_CTR_INTRA_CELL_HO_NO_CHANNEL] = {"intra_cell_ho:no_channel", "Failure to allocate lchan for HO"}, + [BTS_CTR_INTRA_CELL_HO_TIMEOUT] = {"intra_cell_ho:timeout", "Handover timed out"}, + [BTS_CTR_INTRA_CELL_HO_FAILED] = {"intra_cell_ho:failed", "Received Handover Fail messages"}, + [BTS_CTR_INTRA_CELL_HO_ERROR] = {"intra_cell_ho:error", "Re-assignment failed for other reason"}, + + [BTS_CTR_INTRA_BSC_HO_ATTEMPTED] = {"intra_bsc_ho:attempted", "Intra-BSC handover attempts"}, + [BTS_CTR_INTRA_BSC_HO_COMPLETED] = {"intra_bsc_ho:completed", "Intra-BSC handover completed"}, + [BTS_CTR_INTRA_BSC_HO_STOPPED] = {"intra_bsc_ho:stopped", "Connection ended during HO"}, + [BTS_CTR_INTRA_BSC_HO_NO_CHANNEL] = {"intra_bsc_ho:no_channel", "Failure to allocate lchan for HO"}, + [BTS_CTR_INTRA_BSC_HO_TIMEOUT] = {"intra_bsc_ho:timeout", "Handover timed out"}, + [BTS_CTR_INTRA_BSC_HO_FAILED] = {"intra_bsc_ho:failed", "Received Handover Fail messages"}, + [BTS_CTR_INTRA_BSC_HO_ERROR] = {"intra_bsc_ho:error", "Re-assignment failed for other reason"}, + [BTS_CTR_INTER_BSC_HO_OUT_ATTEMPTED] = {"interbsc_ho_out:attempted", "Attempts to handover to remote BSS"}, [BTS_CTR_INTER_BSC_HO_OUT_COMPLETED] = {"interbsc_ho_out:completed", @@ -211,6 +241,62 @@ enum { BTS_STAT_TS_BORKEN, }; +static const struct osmo_stat_item_desc bts_stat_desc[] = { + [BTS_STAT_CHAN_LOAD_AVERAGE] = { "chanloadavg", "Channel load average", "%", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_USED] = { "chan_ccch_sdcch4:used", + "Number of CCCH+SDCCH4 channels used", "", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL] = { "chan_ccch_sdcch4:total", + "Number of CCCH+SDCCH4 channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_USED] = { "chan_tch_f:used", + "Number of TCH/F channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_TOTAL] = { "chan_tch_f:total", + "Number of TCH/F channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_H_USED] = { "chan_tch_h:used", + "Number of TCH/H channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_H_TOTAL] = { "chan_tch_h:total", + "Number of TCH/H channels total", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_USED] = { "chan_sdcch8:used", + "Number of SDCCH8 channels used", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_TOTAL] = { "chan_sdcch8:total", + "Number of SDCCH8 channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_PDCH_USED] = { "chan_tch_f_pdch:used", + "Number of TCH/F_PDCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_PDCH_TOTAL] = { "chan_tch_f_pdch:total", + "Number of TCH/F_PDCH channels total", "", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_USED] = { "chan_ccch_sdcch4_cbch:used", + "Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_TOTAL] = { "chan_ccch_sdcch4_cbch:total", + "Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_CBCH_USED] = { "chan_sdcch8_cbch:used", + "Number of SDCCH8+CBCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_CBCH_TOTAL] = { "chan_sdcch8_cbch:total", + "Number of SDCCH8+CBCH channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_USED] = { "chan_tch_f_tch_h_pdch:used", + "Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_TOTAL] = { "chan_tch_f_tch_h_pdch:total", + "Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 }, + [BTS_STAT_T3122] = { "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator", + "s", 16, GSM_T3122_DEFAULT }, + [BTS_STAT_RACH_BUSY] = { "rach_busy", + "RACH slots with signal above threshold", "%", 16, 0 }, + [BTS_STAT_RACH_ACCESS] = { "rach_access", + "RACH slots with access bursts in them", "%", 16, 0 }, + [BTS_STAT_OML_CONNECTED] = { "oml_connected", "Number of OML links connected", "", 16, 0 }, + [BTS_STAT_RSL_CONNECTED] = { "rsl_connected", "Number of RSL links connected", "", 16, 0 }, + [BTS_STAT_LCHAN_BORKEN] = { "lchan_borken", + "Number of lchans in the BORKEN state", "", 16, 0 }, + [BTS_STAT_TS_BORKEN] = { "ts_borken", + "Number of timeslots in the BORKEN state", "", 16, 0 }, +}; + +static const struct osmo_stat_item_group_desc bts_statg_desc = { + .group_name_prefix = "bts", + .group_description = "base transceiver station", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_items = ARRAY_SIZE(bts_stat_desc), + .item_desc = bts_stat_desc, +}; + enum gsm_bts_type { GSM_BTS_TYPE_UNKNOWN, GSM_BTS_TYPE_BS11, |