diff options
-rw-r--r-- | include/osmocom/bsc/gsm_data.h | 7 | ||||
-rw-r--r-- | src/osmo-bsc/bsc_init.c | 18 | ||||
-rw-r--r-- | src/osmo-bsc/bsc_vty.c | 1 |
3 files changed, 26 insertions, 0 deletions
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 545019bdc..8173506c1 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1562,6 +1562,11 @@ static const struct rate_ctr_group_desc bsc_ctrg_desc = { bsc_ctr_description, }; +/* Constants for the BSC stats */ +enum { + BSC_STAT_NUM_BTS_TOTAL, +}; + struct gsm_tz { int override; /* if 0, use system's time zone instead. */ int hr; /* hour */ @@ -1588,7 +1593,9 @@ struct gsm_network { struct osmo_timer_list congestion_check_timer; } hodec2; + /* structures for keeping rate counters and gauge stats */ struct rate_ctr_group *bsc_ctrs; + struct osmo_stat_item_group *bsc_statg; unsigned int num_bts; struct llist_head bts_list; diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index 18776f33d..d08e9c861 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -44,6 +44,18 @@ #include <limits.h> #include <stdbool.h> +static const struct osmo_stat_item_desc bsc_stat_desc[] = { + { "num_bts:total", "Number of configured BTS for this BSC", "", 16, 0 }, +}; + +static const struct osmo_stat_item_group_desc bsc_statg_desc = { + .group_name_prefix = "bsc", + .group_description = "base station controller", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_items = ARRAY_SIZE(bsc_stat_desc), + .item_desc = bsc_stat_desc, +}; + int bsc_shutdown_net(struct gsm_network *net) { struct gsm_bts *bts; @@ -268,6 +280,12 @@ static struct gsm_network *bsc_network_init(void *ctx) talloc_free(net); return NULL; } + net->bsc_statg = osmo_stat_item_group_alloc(net, &bsc_statg_desc, 0); + if (!net->bsc_statg) { + rate_ctr_group_free(net->bsc_ctrs); + talloc_free(net); + return NULL; + } INIT_LLIST_HEAD(&net->bts_rejected); gsm_net_update_ctype(net); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index f8bcee9a7..0fd462f33 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2077,6 +2077,7 @@ DEFUN(cfg_bts, /* allocate a new one */ bts = bsc_bts_alloc_register(gsmnet, GSM_BTS_TYPE_UNKNOWN, HARDCODED_BSIC); + osmo_stat_item_inc(gsmnet->bsc_statg->items[BSC_STAT_NUM_BTS_TOTAL], 1); /* * Initialize bts->acc_ramp here. Else we could segfault while * processing a configuration file with ACC ramping settings. |