aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2020-05-07 02:18:06 +0300
committerAlexander Chemeris <Alexander.Chemeris@gmail.com>2020-05-07 02:19:50 +0300
commit8e198b0ebeedbc46c5b3cf726c88ac2ea84b3251 (patch)
treeb24499fa0bc60616ba07a39766eaa515e1d3b2d2
parentd8835234c5436c0ce781ddbc02b1094fd6dfc4a3 (diff)
stats: Export connected OML/RSL links count per BTS and BSC.
-rw-r--r--include/osmocom/bsc/gsm_data.h4
-rw-r--r--src/osmo-bsc/bsc_init.c2
-rw-r--r--src/osmo-bsc/bts_ipaccess_nanobts.c8
-rw-r--r--src/osmo-bsc/gsm_data.c2
4 files changed, 16 insertions, 0 deletions
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index e85796cdf..9a8e002ea 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -1464,6 +1464,8 @@ enum {
BTS_STAT_T3122,
BTS_STAT_RACH_BUSY,
BTS_STAT_RACH_ACCESS,
+ BTS_STAT_NUM_OML_CONNECTED,
+ BTS_STAT_NUM_RSL_CONNECTED,
};
enum {
@@ -1556,6 +1558,8 @@ static const struct rate_ctr_group_desc bsc_ctrg_desc = {
enum {
BSC_STAT_MSC_LINK,
+ BSC_STAT_NUM_BTS_CONNECTED,
+ BSC_STAT_NUM_TRX_CONNECTED,
};
struct gsm_tz {
diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c
index 9d0ee86f3..0d5829622 100644
--- a/src/osmo-bsc/bsc_init.c
+++ b/src/osmo-bsc/bsc_init.c
@@ -46,6 +46,8 @@
static const struct osmo_stat_item_desc bsc_stat_desc[] = {
{ "msc_link", "MSC link status.", "", 16, 0 },
+ { "num_bts_connected", "Number of currently connected BTS (OML links).", "", 16, 0 },
+ { "num_trx_connected", "Number of currently connected TRX (RSL links).", "", 16, 0 },
};
static const struct osmo_stat_item_group_desc bsc_statg_desc = {
diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c
index a5e697be1..8873ad4cb 100644
--- a/src/osmo-bsc/bts_ipaccess_nanobts.c
+++ b/src/osmo-bsc/bts_ipaccess_nanobts.c
@@ -397,6 +397,8 @@ void ipaccess_drop_rsl(struct gsm_bts_trx *trx, const char *reason)
LOG_TRX(trx, DLINP, LOGL_NOTICE, "Dropping RSL link: %s\n", reason);
e1inp_sign_link_destroy(trx->rsl_link);
trx->rsl_link = NULL;
+ osmo_stat_item_set(trx->bts->bts_statg->items[BTS_STAT_NUM_RSL_CONNECTED], 0);
+ osmo_stat_item_dec(trx->bts->network->bsc_statg->items[BSC_STAT_NUM_TRX_CONNECTED], 1);
if (trx->bts->c0 == trx)
paging_flush_bts(trx->bts, NULL);
@@ -417,6 +419,8 @@ void ipaccess_drop_oml(struct gsm_bts *bts, const char *reason)
e1inp_sign_link_destroy(bts->oml_link);
bts->oml_link = NULL;
bts->uptime = 0;
+ osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_NUM_OML_CONNECTED], 0);
+ osmo_stat_item_dec(bts->network->bsc_statg->items[BSC_STAT_NUM_BTS_CONNECTED], 1);
/* we have issues reconnecting RSL, drop everything. */
llist_for_each_entry(trx, &bts->trx_list, list)
@@ -558,6 +562,8 @@ ipaccess_sign_link_up(void *unit_data, struct e1inp_line *line,
sign_link->tei, sign_link->sapi);
sign_link->trx->bts->ip_access.flags |= OML_UP;
}
+ osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_NUM_OML_CONNECTED], 1);
+ osmo_stat_item_inc(bts->network->bsc_statg->items[BSC_STAT_NUM_BTS_CONNECTED], 1);
break;
case E1INP_SIGN_RSL: {
struct e1inp_ts *ts;
@@ -586,6 +592,8 @@ ipaccess_sign_link_up(void *unit_data, struct e1inp_line *line,
(RSL_UP << sign_link->trx->nr);
}
break;
+ osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_NUM_RSL_CONNECTED], 1);
+ osmo_stat_item_inc(bts->network->bsc_statg->items[BSC_STAT_NUM_TRX_CONNECTED], 1);
}
default:
break;
diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c
index f61335fc7..fd90e3a75 100644
--- a/src/osmo-bsc/gsm_data.c
+++ b/src/osmo-bsc/gsm_data.c
@@ -390,6 +390,8 @@ static const struct osmo_stat_item_desc bts_stat_desc[] = {
{ "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator.", "s", 16, GSM_T3122_DEFAULT },
{ "rach_busy", "RACH slots with signal above threshold", "%", 16, 0 },
{ "rach_access", "RACH slots with access bursts in them", "%", 16, 0 },
+ { "num_oml_connected", "Number of OML links connected", "", 16, 0 },
+ { "num_rsl_connected", "Number of RSL links connected", "", 16, 0 },
};
static const struct osmo_stat_item_group_desc bts_statg_desc = {