aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmo-bts/bts_model.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/bts_model.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/bts_model.h')
-rw-r--r--include/osmo-bts/bts_model.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/include/osmo-bts/bts_model.h b/include/osmo-bts/bts_model.h
new file mode 100644
index 00000000..81b30e94
--- /dev/null
+++ b/include/osmo-bts/bts_model.h
@@ -0,0 +1,33 @@
+#ifndef BTS_MODEL_H
+#define BTS_MODEL_H
+
+#include <stdint.h>
+
+#include <osmocom/gsm/tlv.h>
+#include <osmocom/gsm/gsm_utils.h>
+
+#include <osmo-bts/gsm_data.h>
+
+/* BTS model specific functions needed by the common code */
+
+int bts_model_init(struct gsm_bts *bts);
+
+struct gsm_time *bts_model_get_time(struct gsm_bts *bts);
+
+int bts_model_check_oml(struct gsm_bts *bts, uint8_t msg_type,
+ struct tlv_parsed *old_attr, struct tlv_parsed *new_attr,
+ void *obj);
+
+int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg,
+ struct tlv_parsed *new_attr, void *obj);
+
+int bts_model_opstart(struct gsm_bts *bts, struct gsm_abis_mo *mo,
+ void *obj);
+
+int bts_model_chg_adm_state(struct gsm_bts *bts, struct gsm_abis_mo *mo,
+ void *obj, uint8_t adm_state);
+
+int bts_model_rsl_chan_act(struct gsm_lchan *lchan, struct tlv_parsed *tp);
+int bts_model_rsl_chan_rel(struct gsm_lchan *lchan);
+
+#endif