aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/bts.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2019-05-21 02:38:43 +0200
committerHarald Welte <laforge@gnumonks.org>2019-05-23 19:16:11 +0000
commit590b23ce3c78d8cca5baa15f92019edf74a9323c (patch)
tree1315f0bc45d13541ab39551bb43b0c05b1bd2520 /src/common/bts.c
parentd7be09caf8d49ac65ed626bca9de2fb738a365b6 (diff)
cbch: Add counters; queue length limits and CBCH LOAD reporting
This adds the final missing part to full CBCH support: * keep a tab on the current queue length for basic + extended CBCH * keep rate counters about the number of sent / transmitted SMSCB * send CBCH LOAD information via RSL to the BSC Change-Id: I7068c7937a60a900c40439115bb84dc3ee0d061f
Diffstat (limited to 'src/common/bts.c')
-rw-r--r--src/common/bts.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/common/bts.c b/src/common/bts.c
index 4af219b1..5220406d 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -49,6 +49,7 @@
#include <osmo-bts/oml.h>
#include <osmo-bts/signal.h>
#include <osmo-bts/dtx_dl_amr_fsm.h>
+#include <osmo-bts/cbch.h>
#define MIN_QUAL_RACH 5.0f /* at least 5 dB C/I */
#define MIN_QUAL_NORM -0.5f /* at least -1 dB C/I */
@@ -105,6 +106,22 @@ static const struct rate_ctr_group_desc bts_ctrg_desc = {
bts_ctr_desc
};
+static const struct rate_ctr_desc cbch_ctr_desc[] = {
+ [CBCH_CTR_RCVD_QUEUED] = {"cbch:rcvd_queued", "Received + queued CBCH messages (Abis)" },
+ [CBCH_CTR_RCVD_DROPPED] = {"cbch:rcvd_dropped", "Received + dropped CBCH messages (Abis)" },
+
+ [CBCH_CTR_SENT_SINGLE] = {"cbch:sent_single", "Sent single CBCH messages (Um)" },
+ [CBCH_CTR_SENT_DEFAULT] = {"cbch:sent_default", "Sent default CBCH messages (Um)" },
+ [CBCH_CTR_SENT_NULL] = {"cbch:sent_null", "Sent NULL CBCH messages (Um)" },
+};
+static const struct rate_ctr_group_desc cbch_ctrg_desc = {
+ "cbch",
+ "cell broadcast channel",
+ OSMO_STATS_CLASS_GLOBAL,
+ ARRAY_SIZE(cbch_ctr_desc),
+ cbch_ctr_desc
+};
+
/* Initialize the BTS data structures, called before config
* file reading */
int bts_init(struct gsm_bts *bts)
@@ -191,7 +208,15 @@ int bts_init(struct gsm_bts *bts)
}
INIT_LLIST_HEAD(&bts->smscb_basic.queue);
+ bts->smscb_basic.ctrs = rate_ctr_group_alloc(bts, &cbch_ctrg_desc, 0);
+ OSMO_ASSERT(bts->smscb_basic.ctrs);
INIT_LLIST_HEAD(&bts->smscb_extended.queue);
+ bts->smscb_extended.ctrs = rate_ctr_group_alloc(bts, &cbch_ctrg_desc, 1);
+ OSMO_ASSERT(bts->smscb_extended.ctrs);
+ bts->smscb_queue_max_len = 15;
+ bts->smscb_queue_tgt_len = 2;
+ bts->smscb_queue_hyst = 2;
+
INIT_LLIST_HEAD(&bts->oml_queue);
/* register DTX DL FSM */