aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/bts.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/osmo-bsc/bts.c')
-rw-r--r--src/osmo-bsc/bts.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index 4318b7ef9..ff8526777 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -23,6 +23,7 @@
#include <osmocom/bsc/gsm_data.h>
#include <osmocom/bsc/bts.h>
#include <osmocom/bsc/debug.h>
+#include <osmocom/bsc/abis_rsl.h>
const struct value_string bts_attribute_names[] = {
OSMO_VALUE_STRING(BTS_TYPE_VARIANT),
@@ -31,6 +32,14 @@ const struct value_string bts_attribute_names[] = {
{ 0, NULL }
};
+/* timer call-back to poll CHAN RQD queue */
+static void chan_rqd_poll_cb(void *data)
+{
+ struct gsm_bts *bts = (struct gsm_bts *)data;
+ abis_rsl_chan_rqd_queue_poll(bts);
+ osmo_timer_schedule(&bts->chan_rqd_queue_timer, 0, 100000);
+}
+
enum bts_attribute str2btsattr(const char *s)
{
return get_string_value(bts_attribute_names, s);
@@ -319,6 +328,11 @@ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num)
INIT_LLIST_HEAD(&bts->loc_list);
INIT_LLIST_HEAD(&bts->local_neighbors);
INIT_LLIST_HEAD(&bts->oml_fail_rep);
+ INIT_LLIST_HEAD(&bts->chan_rqd_queue);
+
+ /* Start CHAN RQD queue */
+ osmo_timer_setup(&bts->chan_rqd_queue_timer, chan_rqd_poll_cb, bts);
+ osmo_timer_schedule(&bts->chan_rqd_queue_timer, 0, 0);
/* Enable all codecs by default. These get reset to a more fine grained selection IF a
* 'codec-support' config appears in the config file (see bsc_vty.c). */