aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-trx/scheduler.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/osmo-bts-trx/scheduler.c')
-rw-r--r--src/osmo-bts-trx/scheduler.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/osmo-bts-trx/scheduler.c b/src/osmo-bts-trx/scheduler.c
index 8d0c8343..5bd540cd 100644
--- a/src/osmo-bts-trx/scheduler.c
+++ b/src/osmo-bts-trx/scheduler.c
@@ -109,6 +109,7 @@ static int rx_tchh_fn(struct trx_l1h *l1h, uint8_t tn, uint32_t fn,
enum trx_chan_type chan, uint8_t bid, sbit_t *bits, int8_t rssi,
float toa);
+/*! \brief Dummy Burst (TS 05.02 Chapter 5.2.6) */
static ubit_t dummy_burst[148] = {
0,0,0,
1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,1,1,0,
@@ -119,6 +120,7 @@ static ubit_t dummy_burst[148] = {
0,0,0,
};
+/*! \brief FCCH Burst (TS 05.02 Chapter 5.2.4) */
static ubit_t fcch_burst[148] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -127,6 +129,7 @@ static ubit_t fcch_burst[148] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
};
+/*! \brief Training Sequences (TS 05.02 Chapter 5.2.3) */
static const ubit_t tsc[8][26] = {
{ 0,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1, },
{ 0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,0,1,1,1, },
@@ -138,6 +141,7 @@ static const ubit_t tsc[8][26] = {
{ 1,1,1,0,1,1,1,1,0,0,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0, },
};
+/*! \brief SCH trainign sequence (TS 05.02 Chapter 5.2.5) */
static const ubit_t sch_train[64] = {
1,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,
0,0,1,0,1,1,0,1,0,1,0,0,0,1,0,1,0,1,1,1,0,1,1,0,0,0,0,1,1,0,1,1,
@@ -148,14 +152,23 @@ static const ubit_t sch_train[64] = {
*/
struct trx_chan_desc {
+ /*! \brief Is this on a PDCH (PS) ? */
int pdch;
+ /*! \brief TRX Channel Type */
enum trx_chan_type chan;
+ /*! \brief Channel Number (like in RSL) */
uint8_t chan_nr;
+ /*! \brief Link ID (like in RSL) */
uint8_t link_id;
+ /*! \brief Human-readable name */
const char *name;
+ /*! \brief function to call when we want to generate RTS.req to L2 */
trx_sched_rts_func *rts_fn;
+ /*! \brief function to call when DATA.req received from L2 */
trx_sched_dl_func *dl_fn;
+ /*! \brief function to call when burst received from PHY */
trx_sched_ul_func *ul_fn;
+ /*! \breif is this channel automatically active at start? */
int auto_active;
};
struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = {
@@ -1714,9 +1727,13 @@ bfi:
/* frame structures */
struct trx_sched_frame {
+ /*! \brief downlink TRX channel type */
enum trx_chan_type dl_chan;
+ /*! \brief downlink block ID */
uint8_t dl_bid;
+ /*! \breff uplink TRX channel type */
enum trx_chan_type ul_chan;
+ /*! \brief uplink block ID */
uint8_t ul_bid;
};
@@ -2429,10 +2446,15 @@ static struct trx_sched_frame frame_pdch[104] = {
/* multiframe structure */
struct trx_sched_multiframe {
+ /*! \brief physical channel config (channel combination) */
enum gsm_phys_chan_config pchan;
+ /*! \brief applies to which timeslots? */
uint8_t slotmask;
+ /*! \brief repeats how many frames */
uint8_t period;
+ /*! \brief pointer to scheduling structure */
struct trx_sched_frame *frames;
+ /*! \brife human-readable name */
const char *name;
};