|
|
|
@ -2,7 +2,7 @@
|
|
|
|
|
|
|
|
|
|
/* (C) 2013 by Andreas Eversberg <jolly@eversberg.eu>
|
|
|
|
|
* (C) 2015 by Alexander Chemeris <Alexander.Chemeris@fairwaves.co>
|
|
|
|
|
* (C) 2015-2017 by Harald Welte <laforge@gnumonks.org>
|
|
|
|
|
* (C) 2015-2018 by Harald Welte <laforge@gnumonks.org>
|
|
|
|
|
*
|
|
|
|
|
* All Rights Reserved
|
|
|
|
|
*
|
|
|
|
@ -170,6 +170,113 @@ static const struct trx_sched_frame frame_bcch_sdcch4[102] = {
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SDCCH4_2, 3 },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const struct trx_sched_frame frame_bcch_sdcch4_cbch[102] = {
|
|
|
|
|
/* dl_chan dl_bid ul_chan ul_bid */
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_SDCCH4_3, 0 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_SDCCH4_3, 1 },
|
|
|
|
|
{ TRXC_BCCH, 0, TRXC_SDCCH4_3, 2 },
|
|
|
|
|
{ TRXC_BCCH, 1, TRXC_SDCCH4_3, 3 },
|
|
|
|
|
{ TRXC_BCCH, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_BCCH, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 0, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_CCCH, 1, TRXC_IDLE, 1 },
|
|
|
|
|
{ TRXC_CCCH, 2, TRXC_IDLE, 2 },
|
|
|
|
|
{ TRXC_CCCH, 3, TRXC_IDLE, 3 },
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_SACCH4_3, 0 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_SACCH4_3, 1 },
|
|
|
|
|
{ TRXC_CCCH, 0, TRXC_SACCH4_3, 2 },
|
|
|
|
|
{ TRXC_CCCH, 1, TRXC_SACCH4_3, 3 },
|
|
|
|
|
{ TRXC_CCCH, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_0, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_0, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_0, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_0, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_1, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_1, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_1, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_1, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CBCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CBCH, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CBCH, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CBCH, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_3, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_3, 1, TRXC_SDCCH4_0, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_3, 2, TRXC_SDCCH4_0, 1 },
|
|
|
|
|
{ TRXC_SDCCH4_3, 3, TRXC_SDCCH4_0, 2 },
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_SDCCH4_0, 3 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_SDCCH4_1, 0 },
|
|
|
|
|
{ TRXC_SACCH4_0, 0, TRXC_SDCCH4_1, 1 },
|
|
|
|
|
{ TRXC_SACCH4_0, 1, TRXC_SDCCH4_1, 2 },
|
|
|
|
|
{ TRXC_SACCH4_0, 2, TRXC_SDCCH4_1, 3 },
|
|
|
|
|
{ TRXC_SACCH4_0, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SACCH4_1, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SACCH4_1, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SACCH4_1, 2, TRXC_RACH, 1 },
|
|
|
|
|
{ TRXC_SACCH4_1, 3, TRXC_RACH, 2 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_RACH, 3 },
|
|
|
|
|
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_SDCCH4_3, 0 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_SDCCH4_3, 1 },
|
|
|
|
|
{ TRXC_BCCH, 0, TRXC_SDCCH4_3, 2 },
|
|
|
|
|
{ TRXC_BCCH, 1, TRXC_SDCCH4_3, 3 },
|
|
|
|
|
{ TRXC_BCCH, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_BCCH, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 0, TRXC_SACCH4_0, 0 },
|
|
|
|
|
{ TRXC_CCCH, 1, TRXC_SACCH4_0, 1 },
|
|
|
|
|
{ TRXC_CCCH, 2, TRXC_SACCH4_0, 2 },
|
|
|
|
|
{ TRXC_CCCH, 3, TRXC_SACCH4_0, 3 },
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_SACCH4_1, 0 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_SACCH4_1, 1 },
|
|
|
|
|
{ TRXC_CCCH, 0, TRXC_SACCH4_1, 2 },
|
|
|
|
|
{ TRXC_CCCH, 1, TRXC_SACCH4_1, 3 },
|
|
|
|
|
{ TRXC_CCCH, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CCCH, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_0, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_0, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_0, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_0, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_1, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_1, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_1, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_1, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CBCH, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CBCH, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CBCH, 2, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_CBCH, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_3, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_3, 1, TRXC_SDCCH4_0, 0 },
|
|
|
|
|
{ TRXC_SDCCH4_3, 2, TRXC_SDCCH4_0, 1 },
|
|
|
|
|
{ TRXC_SDCCH4_3, 3, TRXC_SDCCH4_0, 2 },
|
|
|
|
|
{ TRXC_FCCH, 0, TRXC_SDCCH4_0, 3 },
|
|
|
|
|
{ TRXC_SCH, 0, TRXC_SDCCH4_1, 0 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SDCCH4_1, 1 },
|
|
|
|
|
{ TRXC_IDLE, 1, TRXC_SDCCH4_1, 2 },
|
|
|
|
|
{ TRXC_IDLE, 2, TRXC_SDCCH4_1, 3 },
|
|
|
|
|
{ TRXC_IDLE, 3, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SACCH4_3, 0, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SACCH4_3, 1, TRXC_RACH, 0 },
|
|
|
|
|
{ TRXC_SACCH4_3, 2, TRXC_RACH, 1 },
|
|
|
|
|
{ TRXC_SACCH4_3, 3, TRXC_RACH, 2 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SDCCH4_2, 3 },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const struct trx_sched_frame frame_sdcch8[102] = {
|
|
|
|
|
/* dl_chan dl_bid ul_chan ul_bid */
|
|
|
|
|
{ TRXC_SDCCH8_0, 0, TRXC_SACCH8_5, 0 },
|
|
|
|
@ -277,6 +384,113 @@ static const struct trx_sched_frame frame_sdcch8[102] = {
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SACCH8_4, 3 },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const struct trx_sched_frame frame_sdcch8_cbch[102] = {
|
|
|
|
|
/* dl_chan dl_bid ul_chan ul_bid */
|
|
|
|
|
{ TRXC_SDCCH8_0, 0, TRXC_SACCH8_5, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_0, 1, TRXC_SACCH8_5, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_0, 2, TRXC_SACCH8_5, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_0, 3, TRXC_SACCH8_5, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_1, 0, TRXC_SACCH8_6, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_1, 1, TRXC_SACCH8_6, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_1, 2, TRXC_SACCH8_6, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_1, 3, TRXC_SACCH8_6, 3 },
|
|
|
|
|
{ TRXC_CBCH, 0, TRXC_SACCH8_7, 0 },
|
|
|
|
|
{ TRXC_CBCH, 1, TRXC_SACCH8_7, 1 },
|
|
|
|
|
{ TRXC_CBCH, 2, TRXC_SACCH8_7, 2 },
|
|
|
|
|
{ TRXC_CBCH, 3, TRXC_SACCH8_7, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_3, 0, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_3, 1, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_3, 2, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_3, 3, TRXC_SDCCH8_0, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_4, 0, TRXC_SDCCH8_0, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_4, 1, TRXC_SDCCH8_0, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_4, 2, TRXC_SDCCH8_0, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_4, 3, TRXC_SDCCH8_1, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_5, 0, TRXC_SDCCH8_1, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_5, 1, TRXC_SDCCH8_1, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_5, 2, TRXC_SDCCH8_1, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_5, 3, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_6, 0, TRXC_IDLE, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_6, 1, TRXC_IDLE, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_6, 2, TRXC_IDLE, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_6, 3, TRXC_SDCCH8_3, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_7, 0, TRXC_SDCCH8_3, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_7, 1, TRXC_SDCCH8_3, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_7, 2, TRXC_SDCCH8_3, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_7, 3, TRXC_SDCCH8_4, 0 },
|
|
|
|
|
{ TRXC_SACCH8_0, 0, TRXC_SDCCH8_4, 1 },
|
|
|
|
|
{ TRXC_SACCH8_0, 1, TRXC_SDCCH8_4, 2 },
|
|
|
|
|
{ TRXC_SACCH8_0, 2, TRXC_SDCCH8_4, 3 },
|
|
|
|
|
{ TRXC_SACCH8_0, 3, TRXC_SDCCH8_5, 0 },
|
|
|
|
|
{ TRXC_SACCH8_1, 0, TRXC_SDCCH8_5, 1 },
|
|
|
|
|
{ TRXC_SACCH8_1, 1, TRXC_SDCCH8_5, 2 },
|
|
|
|
|
{ TRXC_SACCH8_1, 2, TRXC_SDCCH8_5, 3 },
|
|
|
|
|
{ TRXC_SACCH8_1, 3, TRXC_SDCCH8_6, 0 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SDCCH8_6, 1 },
|
|
|
|
|
{ TRXC_IDLE, 1, TRXC_SDCCH8_6, 2 },
|
|
|
|
|
{ TRXC_IDLE, 2, TRXC_SDCCH8_6, 3 },
|
|
|
|
|
{ TRXC_IDLE, 3, TRXC_SDCCH8_7, 0 },
|
|
|
|
|
{ TRXC_SACCH8_3, 0, TRXC_SDCCH8_7, 1 },
|
|
|
|
|
{ TRXC_SACCH8_3, 1, TRXC_SDCCH8_7, 2 },
|
|
|
|
|
{ TRXC_SACCH8_3, 2, TRXC_SDCCH8_7, 3 },
|
|
|
|
|
{ TRXC_SACCH8_3, 3, TRXC_SACCH8_0, 0 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SACCH8_0, 1 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SACCH8_0, 2 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SACCH8_0, 3 },
|
|
|
|
|
|
|
|
|
|
{ TRXC_SDCCH8_0, 0, TRXC_SACCH8_1, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_0, 1, TRXC_SACCH8_1, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_0, 2, TRXC_SACCH8_1, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_0, 3, TRXC_SACCH8_1, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_1, 0, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_1, 1, TRXC_IDLE, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_1, 2, TRXC_IDLE, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_1, 3, TRXC_IDLE, 3 },
|
|
|
|
|
{ TRXC_CBCH, 0, TRXC_SACCH8_3, 0 },
|
|
|
|
|
{ TRXC_CBCH, 1, TRXC_SACCH8_3, 1 },
|
|
|
|
|
{ TRXC_CBCH, 2, TRXC_SACCH8_3, 2 },
|
|
|
|
|
{ TRXC_CBCH, 3, TRXC_SACCH8_3, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_3, 0, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_3, 1, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_3, 2, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_3, 3, TRXC_SDCCH8_0, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_4, 0, TRXC_SDCCH8_0, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_4, 1, TRXC_SDCCH8_0, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_4, 2, TRXC_SDCCH8_0, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_4, 3, TRXC_SDCCH8_1, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_5, 0, TRXC_SDCCH8_1, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_5, 1, TRXC_SDCCH8_1, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_5, 2, TRXC_SDCCH8_1, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_5, 3, TRXC_IDLE, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_6, 0, TRXC_IDLE, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_6, 1, TRXC_IDLE, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_6, 2, TRXC_IDLE, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_6, 3, TRXC_SDCCH8_3, 0 },
|
|
|
|
|
{ TRXC_SDCCH8_7, 0, TRXC_SDCCH8_3, 1 },
|
|
|
|
|
{ TRXC_SDCCH8_7, 1, TRXC_SDCCH8_3, 2 },
|
|
|
|
|
{ TRXC_SDCCH8_7, 2, TRXC_SDCCH8_3, 3 },
|
|
|
|
|
{ TRXC_SDCCH8_7, 3, TRXC_SDCCH8_4, 0 },
|
|
|
|
|
{ TRXC_SACCH8_4, 0, TRXC_SDCCH8_4, 1 },
|
|
|
|
|
{ TRXC_SACCH8_4, 1, TRXC_SDCCH8_4, 2 },
|
|
|
|
|
{ TRXC_SACCH8_4, 2, TRXC_SDCCH8_4, 3 },
|
|
|
|
|
{ TRXC_SACCH8_4, 3, TRXC_SDCCH8_5, 0 },
|
|
|
|
|
{ TRXC_SACCH8_5, 0, TRXC_SDCCH8_5, 1 },
|
|
|
|
|
{ TRXC_SACCH8_5, 1, TRXC_SDCCH8_5, 2 },
|
|
|
|
|
{ TRXC_SACCH8_5, 2, TRXC_SDCCH8_5, 3 },
|
|
|
|
|
{ TRXC_SACCH8_5, 3, TRXC_SDCCH8_6, 0 },
|
|
|
|
|
{ TRXC_SACCH8_6, 0, TRXC_SDCCH8_6, 1 },
|
|
|
|
|
{ TRXC_SACCH8_6, 1, TRXC_SDCCH8_6, 2 },
|
|
|
|
|
{ TRXC_SACCH8_6, 2, TRXC_SDCCH8_6, 3 },
|
|
|
|
|
{ TRXC_SACCH8_6, 3, TRXC_SDCCH8_7, 0 },
|
|
|
|
|
{ TRXC_SACCH8_7, 0, TRXC_SDCCH8_7, 1 },
|
|
|
|
|
{ TRXC_SACCH8_7, 1, TRXC_SDCCH8_7, 2 },
|
|
|
|
|
{ TRXC_SACCH8_7, 2, TRXC_SDCCH8_7, 3 },
|
|
|
|
|
{ TRXC_SACCH8_7, 3, TRXC_SACCH8_4, 0 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SACCH8_4, 1 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SACCH8_4, 2 },
|
|
|
|
|
{ TRXC_IDLE, 0, TRXC_SACCH8_4, 3 },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const struct trx_sched_frame frame_tchf_ts0[104] = {
|
|
|
|
|
/* dl_chan dl_bid ul_chan ul_bid */
|
|
|
|
|
{ TRXC_TCHF, 0, TRXC_TCHF, 0 }, { TRXC_TCHF, 1, TRXC_TCHF, 1 }, { TRXC_TCHF, 2, TRXC_TCHF, 2 }, { TRXC_TCHF, 3, TRXC_TCHF, 3 },
|
|
|
|
@ -749,7 +963,9 @@ const struct trx_sched_multiframe trx_sched_multiframes[] = {
|
|
|
|
|
{ GSM_PCHAN_NONE, 0xff, 0, NULL, "NONE"},
|
|
|
|
|
{ GSM_PCHAN_CCCH, 0xff, 51, frame_bcch, "BCCH+CCCH" },
|
|
|
|
|
{ GSM_PCHAN_CCCH_SDCCH4, 0xff, 102, frame_bcch_sdcch4, "BCCH+CCCH+SDCCH/4+SACCH/4" },
|
|
|
|
|
{ GSM_PCHAN_CCCH_SDCCH4_CBCH, 0xff, 102, frame_bcch_sdcch4_cbch, "BCCH+CCCH+SDCCH/4+SACCH/4+CBCH" },
|
|
|
|
|
{ GSM_PCHAN_SDCCH8_SACCH8C, 0xff, 102, frame_sdcch8, "SDCCH/8+SACCH/8" },
|
|
|
|
|
{ GSM_PCHAN_SDCCH8_SACCH8C_CBCH,0xff, 102, frame_sdcch8_cbch, "SDCCH/8+SACCH/8+CBCH" },
|
|
|
|
|
{ GSM_PCHAN_TCH_F, 0x01, 104, frame_tchf_ts0, "TCH/F+SACCH" },
|
|
|
|
|
{ GSM_PCHAN_TCH_F, 0x02, 104, frame_tchf_ts1, "TCH/F+SACCH" },
|
|
|
|
|
{ GSM_PCHAN_TCH_F, 0x04, 104, frame_tchf_ts2, "TCH/F+SACCH" },
|
|
|
|
|