stats: Export connected OML/RSL links count per BTS.

Change-Id: I88c8025940a0eecb034b1c70f76ea17937fa0325
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 8173506..17da79d 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -1472,6 +1472,8 @@
 	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 a5e697b..f004c15 100644
--- a/src/osmo-bsc/bts_ipaccess_nanobts.c
+++ b/src/osmo-bsc/bts_ipaccess_nanobts.c
@@ -397,6 +397,7 @@
 	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 @@
 	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 @@
 					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 @@
 			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 d3c58f5..2847f38 100644
--- a/src/osmo-bsc/gsm_data.c
+++ b/src/osmo-bsc/gsm_data.c
@@ -390,6 +390,8 @@
 	{ "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 = {