aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmo-bts/gsm_data.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-06-27 11:25:35 +0200
committerHarald Welte <laforge@gnumonks.org>2011-06-27 11:25:35 +0200
commitc6b4c87e5d57b91b29894835e7ac8e42f6e67f32 (patch)
tree2dfca5a61c881e88e6f29d03c29bb26e1c643332 /include/osmo-bts/gsm_data.h
parent8e47fb89bfd0e2b54b714393ac2a80ca76df56a9 (diff)
re-work original osmo-bts with support for sysmocom femtobts
This code re-works osmo-bts to add support for the upcoming sysmocom BTS. It also tries to add some level of abstraction between the generic part of a BTS (A-bis, RSL, OML, data structures, paging scheduling, BCCH/AGCH scheduling, etc.) and the actual hardware-specific bits. The hardware-specific bits are currently only implemented for the sysmocom femtobts, but should be (re-)added for osmocom-bb, as well as a virtual BTS for simulation purpose later. The sysmocom bts specific parts require hardware-specific header files which are (at least currently) not publicly distributed.
Diffstat (limited to 'include/osmo-bts/gsm_data.h')
-rw-r--r--include/osmo-bts/gsm_data.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h
new file mode 100644
index 00000000..2498f7d0
--- /dev/null
+++ b/include/osmo-bts/gsm_data.h
@@ -0,0 +1,57 @@
+#ifndef _GSM_DATA_H
+#define _GSM_DATA_H
+
+#include <osmocom/core/timer.h>
+#include <osmocom/core/linuxlist.h>
+#include <osmocom/gsm/lapdm.h>
+
+#include <osmo-bts/paging.h>
+
+struct gsm_network {
+
+};
+
+/* data structure for BTS related data specific to the BTS role */
+struct gsm_bts_role_bts {
+ struct {
+ /* Interference Boundaries for OML */
+ int16_t boundary[6];
+ uint8_t intave;
+ } interference;
+ unsigned int t200_ms[7];
+ unsigned int t3105_ms;
+ struct {
+ uint8_t overload_period;
+ struct {
+ /* Input parameters from OML */
+ uint8_t load_ind_thresh; /* percent */
+ uint8_t load_ind_period; /* seconds */
+ /* Internal data */
+ struct osmo_timer_list timer;
+ unsigned int pch_total;
+ unsigned int pch_used;
+ } ccch;
+ struct {
+ /* Input parameters from OML */
+ int16_t busy_thresh; /* in dBm */
+ uint16_t averaging_slots;
+ } rach;
+ } load;
+ uint8_t ny1;
+ uint8_t max_ta;
+ struct llist_head agch_queue;
+ struct paging_state *paging_state;
+};
+
+#define bts_role_bts(x) ((struct gsm_bts_role_bts *)(x)->role)
+
+#include "../../openbsc/openbsc/include/openbsc/gsm_data_shared.h"
+
+struct femtol1_hdl;
+
+static inline struct femtol1_hdl *trx_femtol1_hdl(struct gsm_bts_trx *trx)
+{
+ return trx->role_bts.l1h;
+}
+
+#endif /* _GSM_DATA_H */