diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2021-09-27 08:56:20 +0200 |
---|---|---|
committer | neels <nhofmeyr@sysmocom.de> | 2021-11-10 13:27:43 +0000 |
commit | aa09938d2c88c6810eb5c3634958824277bfacab (patch) | |
tree | 416d6d02b769a11cb5e27615424f97606901d885 /src/osmo-bsc | |
parent | 41f143827d4233963b3a1b5e6a98ea7efa0f0fe1 (diff) |
implement all_allocated:{static_sdcch,static_tch} rate counters
Same as all_allocated:{sdcch,tch}, but already trigger when all
non-dynamic timeslots are allocated.
Related: SYS#4878
Related: Ib3997a827c9cc43d1361bb0cf3bfab9f6d91bf82 (osmo-ttcn3-hacks)
Change-Id: I2fa14531f16d3f07085620f1c50eb839c420da6a
Diffstat (limited to 'src/osmo-bsc')
-rw-r--r-- | src/osmo-bsc/bsc_init.c | 22 | ||||
-rw-r--r-- | src/osmo-bsc/bsc_stats.c | 24 | ||||
-rw-r--r-- | src/osmo-bsc/bts.c | 28 |
3 files changed, 74 insertions, 0 deletions
diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index 11cda6983..93287072d 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -131,6 +131,17 @@ static struct gsm_network *bsc_network_init(void *ctx) .T_defs = net->T_defs, }, }; + net->all_allocated_static_sdcch = (struct time_cc){ + .cfg = { + .gran_usec = 1*1000000, + .forget_sum_usec = 60*1000000, + .rate_ctr = rate_ctr_group_get_ctr(net->bsc_ctrs, BSC_CTR_ALL_ALLOCATED_STATIC_SDCCH), + .T_gran = -16, + .T_round_threshold = -17, + .T_forget_sum = -18, + .T_defs = net->T_defs, + }, + }; net->all_allocated_tch = (struct time_cc){ .cfg = { .gran_usec = 1*1000000, @@ -142,6 +153,17 @@ static struct gsm_network *bsc_network_init(void *ctx) .T_defs = net->T_defs, }, }; + net->all_allocated_static_tch = (struct time_cc){ + .cfg = { + .gran_usec = 1*1000000, + .forget_sum_usec = 60*1000000, + .rate_ctr = rate_ctr_group_get_ctr(net->bsc_ctrs, BSC_CTR_ALL_ALLOCATED_STATIC_TCH), + .T_gran = -16, + .T_round_threshold = -17, + .T_forget_sum = -18, + .T_defs = net->T_defs, + }, + }; INIT_LLIST_HEAD(&net->bts_rejected); gsm_net_update_ctype(net); diff --git a/src/osmo-bsc/bsc_stats.c b/src/osmo-bsc/bsc_stats.c index 20ddd37b0..0da3a6cef 100644 --- a/src/osmo-bsc/bsc_stats.c +++ b/src/osmo-bsc/bsc_stats.c @@ -104,7 +104,11 @@ const struct rate_ctr_desc bsc_ctr_description[] = { [BSC_CTR_MSCPOOL_EMERG_LOST] = {"mscpool:emerg:lost", "Emergency call requests lost because no MSC was found available"}, [BSC_CTR_ALL_ALLOCATED_SDCCH] = {"all_allocated:sdcch", "Cumulative counter of seconds where all SDCCH channels were allocated"}, + [BSC_CTR_ALL_ALLOCATED_STATIC_SDCCH] = {"all_allocated:static_sdcch", + "Cumulative counter of seconds where all non-dynamic SDCCH channels were allocated"}, [BSC_CTR_ALL_ALLOCATED_TCH] = {"all_allocated:tch", "Cumulative counter of seconds where all TCH channels were allocated"}, + [BSC_CTR_ALL_ALLOCATED_STATIC_TCH] = {"all_allocated:static_tch", + "Cumulative counter of seconds where all non-dynamic TCH channels were allocated"}, }; const struct rate_ctr_group_desc bsc_ctrg_desc = { @@ -215,12 +219,22 @@ void bsc_update_time_cc_all_allocated(struct gsm_network *net) bts_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_SDCCH] && !bts_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_FREE][GSM_LCHAN_SDCCH]); + time_cc_set_flag(&bts->all_allocated_static_sdcch, + bts_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_SDCCH] + && !bts_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_FREE][GSM_LCHAN_SDCCH]); + time_cc_set_flag(&bts->all_allocated_tch, (bts_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_TCH_F] + bts_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_TCH_H]) && !(bts_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_FREE][GSM_LCHAN_TCH_F] + bts_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_FREE][GSM_LCHAN_TCH_H])); + time_cc_set_flag(&bts->all_allocated_static_tch, + (bts_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_TCH_F] + + bts_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_TCH_H]) + && !(bts_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_FREE][GSM_LCHAN_TCH_F] + + bts_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_FREE][GSM_LCHAN_TCH_H])); + chan_counts_add(&bsc_counts, &bts_counts); } @@ -228,9 +242,19 @@ void bsc_update_time_cc_all_allocated(struct gsm_network *net) bsc_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_SDCCH] && !bsc_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_FREE][GSM_LCHAN_SDCCH]); + time_cc_set_flag(&net->all_allocated_static_sdcch, + bsc_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_SDCCH] + && !bsc_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_FREE][GSM_LCHAN_SDCCH]); + time_cc_set_flag(&net->all_allocated_tch, (bsc_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_TCH_F] + bsc_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_TCH_H]) && !(bsc_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_FREE][GSM_LCHAN_TCH_F] + bsc_counts.val[CHAN_COUNTS1_ALL][CHAN_COUNTS2_FREE][GSM_LCHAN_TCH_H])); + + time_cc_set_flag(&net->all_allocated_static_tch, + (bsc_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_TCH_F] + + bsc_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_MAX_TOTAL][GSM_LCHAN_TCH_H]) + && !(bsc_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_FREE][GSM_LCHAN_TCH_F] + + bsc_counts.val[CHAN_COUNTS1_STATIC][CHAN_COUNTS2_FREE][GSM_LCHAN_TCH_H])); } diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 880cb22a6..4dd05a9e2 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -222,6 +222,17 @@ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, struct gsm_bts_sm *bts_sm .T_defs = net->T_defs, }, }; + bts->all_allocated_static_sdcch = (struct time_cc){ + .cfg = { + .gran_usec = 1*1000000, + .forget_sum_usec = 60*1000000, + .rate_ctr = rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_ALL_ALLOCATED_STATIC_SDCCH), + .T_gran = -16, + .T_round_threshold = -17, + .T_forget_sum = -18, + .T_defs = net->T_defs, + }, + }; bts->all_allocated_tch = (struct time_cc){ .cfg = { .gran_usec = 1*1000000, @@ -233,6 +244,17 @@ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, struct gsm_bts_sm *bts_sm .T_defs = net->T_defs, }, }; + bts->all_allocated_static_tch = (struct time_cc){ + .cfg = { + .gran_usec = 1*1000000, + .forget_sum_usec = 60*1000000, + .rate_ctr = rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_ALL_ALLOCATED_STATIC_TCH), + .T_gran = -16, + .T_round_threshold = -17, + .T_forget_sum = -18, + .T_defs = net->T_defs, + }, + }; /* create our primary TRX */ bts->c0 = gsm_bts_trx_alloc(bts); @@ -1262,9 +1284,15 @@ const struct rate_ctr_desc bts_ctr_description[] = { [BTS_CTR_ALL_ALLOCATED_SDCCH] = \ { "all_allocated:sdcch", "Cumulative counter of seconds where all SDCCH channels were allocated" }, + [BTS_CTR_ALL_ALLOCATED_STATIC_SDCCH] = \ + { "all_allocated:static_sdcch", + "Cumulative counter of seconds where all non-dynamic SDCCH channels were allocated" }, [BTS_CTR_ALL_ALLOCATED_TCH] = \ { "all_allocated:tch", "Cumulative counter of seconds where all TCH channels were allocated" }, + [BTS_CTR_ALL_ALLOCATED_STATIC_TCH] = \ + { "all_allocated:static_tch", + "Cumulative counter of seconds where all non-dynamic TCH channels were allocated" }, }; const struct rate_ctr_group_desc bts_ctrg_desc = { |