diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-06-27 11:25:35 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-06-27 11:25:35 +0200 |
commit | c6b4c87e5d57b91b29894835e7ac8e42f6e67f32 (patch) | |
tree | 2dfca5a61c881e88e6f29d03c29bb26e1c643332 /include/osmo-bts/gsm_data.h | |
parent | 8e47fb89bfd0e2b54b714393ac2a80ca76df56a9 (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.h | 57 |
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 */ |