aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmo-bts/bts_sm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/osmo-bts/bts_sm.h')
-rw-r--r--include/osmo-bts/bts_sm.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/include/osmo-bts/bts_sm.h b/include/osmo-bts/bts_sm.h
new file mode 100644
index 00000000..e6610a5e
--- /dev/null
+++ b/include/osmo-bts/bts_sm.h
@@ -0,0 +1,48 @@
+#pragma once
+
+#include <osmocom/core/linuxlist.h>
+#include <osmocom/core/socket.h>
+#include <osmocom/gsm/gsm23003.h>
+
+#include <osmo-bts/oml.h>
+
+struct pcu_sock_state;
+
+/* GPRS NSVC; ip.access specific NM Object */
+struct gsm_gprs_nse;
+struct gsm_gprs_nsvc {
+ struct gsm_abis_mo mo;
+ struct gsm_gprs_nse *nse;
+ /* data read via VTY config file, to configure the BTS
+ * via OML from BSC */
+ int id;
+ uint16_t nsvci;
+ struct osmo_sockaddr local; /* on the BTS */
+ struct osmo_sockaddr remote; /* on the SGSN */
+};
+
+/* GPRS NSE; ip.access specific NM Object */
+struct gsm_gprs_nse {
+ struct gsm_abis_mo mo;
+ uint16_t nsei;
+ uint8_t timer[7];
+ struct gsm_gprs_nsvc nsvc[2];
+};
+
+struct gsm_bts *gsm_gprs_nse_get_bts(const struct gsm_gprs_nse *nse);
+
+/* BTS Site Manager */
+struct gsm_bts_sm {
+ struct gsm_abis_mo mo;
+ struct llist_head bts_list;
+ unsigned int num_bts;
+ struct osmo_plmn_id plmn;
+ struct {
+ struct pcu_sock_state *pcu_state;
+ struct gsm_gprs_nse nse;
+ } gprs;
+};
+
+extern struct gsm_bts_sm *g_bts_sm;
+
+struct gsm_bts_sm *gsm_bts_sm_alloc(void *talloc_ctx);