aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Chemeris <Alexander.Chemeris@gmail.com>2020-05-07 16:46:47 +0300
committerAlexander Chemeris <Alexander.Chemeris@gmail.com>2020-05-09 12:26:06 +0300
commit8b0f6879ed019bbf4cb02bfc7b0ed5334cfb052d (patch)
tree4d077cf68b39607c1c603401be2965bff16cb550
parente26b153bd80aa861fcf00c788a3c8a67a0497153 (diff)
stats: Export connected OML/RSL links count per BTS.
-rw-r--r--include/osmocom/bsc/gsm_data.h2
-rw-r--r--src/osmo-bsc/bts_ipaccess_nanobts.c4
-rw-r--r--src/osmo-bsc/gsm_data.c2
3 files changed, 8 insertions, 0 deletions
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 8173506c1..17da79d43 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -1472,6 +1472,8 @@ enum {
BTS_STAT_T3122,
BTS_STAT_RACH_BUSY,
BTS_STAT_RACH_ACCESS,
+ BTS_STAT_OML_CONNECTED,
+ BTS_STAT_RSL_CONNECTED,
};
enum {
diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c
index a5e697be1..f004c1598 100644
--- a/src/osmo-bsc/bts_ipaccess_nanobts.c
+++ b/src/osmo-bsc/bts_ipaccess_nanobts.c
@@ -397,6 +397,7 @@ 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_dec(trx->bts->bts_statg->items[BTS_STAT_RSL_CONNECTED], 1);
if (trx->bts->c0 == trx)
paging_flush_bts(trx->bts, NULL);
@@ -417,6 +418,7 @@ 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_dec(bts->bts_statg->items[BTS_STAT_OML_CONNECTED], 1);
/* we have issues reconnecting RSL, drop everything. */
llist_for_each_entry(trx, &bts->trx_list, list)
@@ -558,6 +560,7 @@ 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_inc(bts->bts_statg->items[BTS_STAT_OML_CONNECTED], 1);
break;
case E1INP_SIGN_RSL: {
struct e1inp_ts *ts;
@@ -585,6 +588,7 @@ ipaccess_sign_link_up(void *unit_data, struct e1inp_line *line,
sign_link->trx->bts->ip_access.flags |=
(RSL_UP << sign_link->trx->nr);
}
+ osmo_stat_item_inc(bts->bts_statg->items[BTS_STAT_RSL_CONNECTED], 1);
break;
}
default:
diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c
index d3c58f5cf..2847f388f 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 },
+ { "oml_connected", "Number of OML links connected", "", 16, 0 },
+ { "rsl_connected", "Number of RSL links connected", "", 16, 0 },
};
static const struct osmo_stat_item_group_desc bts_statg_desc = {