aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2020-05-08 01:49:12 +0300
committerAlexander Chemeris <Alexander.Chemeris@gmail.com>2020-05-09 12:26:06 +0300
commitdb54283954aca280f9d02b7ad68689aa5d74366f (patch)
tree3757e211887ed07c2cf72999761dc63af2e54aad /src/osmo-bsc
parent5e89333b27d1d5d2a60f049fbadb114dd009a74b (diff)
stats: report a number of configured BTS to a stats gauge.
It's useful to know how many BTS are actually configured to compare it to a number of connected BTS's. Change-Id: I41cb60f9cb962003227e4a7b63db05acbcdb6f4c
Diffstat (limited to 'src/osmo-bsc')
-rw-r--r--src/osmo-bsc/bsc_init.c18
-rw-r--r--src/osmo-bsc/bsc_vty.c1
2 files changed, 19 insertions, 0 deletions
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.