summaryrefslogtreecommitdiffstats
path: root/src/host
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-03-11 03:19:33 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2018-03-11 14:59:43 +0700
commit4cf722364bdafd90d12984531e4ec8c8548d6579 (patch)
tree1a4dc1d8e714cf7b0149e4b80cf450f659b6c26a /src/host
parentc00985bf99cd38cab7f50855866524a4a60d47dd (diff)
trxcon/scheduler: introduce a new CBTX lchan flag
This new flag is intended to indicate that continuous burst transmission is assumed on particular logical channel. In other words, if a logical channel has this flag, but there is nothing to transmit in a TX buffer, then either a dummy LAPDm frame or a silence frame shall be sent. Change-Id: I25fcf9eeb787ffe5378d92532439e67d7d42fa65
Diffstat (limited to 'src/host')
-rw-r--r--src/host/trxcon/sched_lchan_desc.c60
-rw-r--r--src/host/trxcon/sched_trx.h2
2 files changed, 32 insertions, 30 deletions
diff --git a/src/host/trxcon/sched_lchan_desc.c b/src/host/trxcon/sched_lchan_desc.c
index e0617a54..e94a2083 100644
--- a/src/host/trxcon/sched_lchan_desc.c
+++ b/src/host/trxcon/sched_lchan_desc.c
@@ -109,181 +109,181 @@ const struct trx_lchan_desc trx_lchan_desc[_TRX_CHAN_MAX] = {
{
TRXC_TCHF, "TCH/F",
0x08, LID_DEDIC,
- 8 * GSM_BURST_PL_LEN, 0x00,
+ 8 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_tchf_fn, tx_tchf_fn,
},
{
TRXC_TCHH_0, "TCH/H(0)",
0x10, LID_DEDIC,
- 6 * GSM_BURST_PL_LEN, 0x00,
+ 6 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_tchh_fn, tx_tchh_fn,
},
{
TRXC_TCHH_1, "TCH/H(1)",
0x18, LID_DEDIC,
- 6 * GSM_BURST_PL_LEN, 0x00,
+ 6 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_tchh_fn, tx_tchh_fn,
},
{
TRXC_SDCCH4_0, "SDCCH/4(0)",
0x20, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH4_1, "SDCCH/4(1)",
0x28, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH4_2, "SDCCH/4(2)",
0x30, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH4_3, "SDCCH/4(3)",
0x38, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_0, "SDCCH/8(0)",
0x40, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_1, "SDCCH/8(1)",
0x48, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_2, "SDCCH/8(2)",
0x50, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_3, "SDCCH/8(3)",
0x58, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_4, "SDCCH/8(4)",
0x60, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_5, "SDCCH/8(5)",
0x68, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_6, "SDCCH/8(6)",
0x70, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SDCCH8_7, "SDCCH/8(7)",
0x78, LID_DEDIC,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCHTF, "SACCH/TF",
0x08, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCHTH_0, "SACCH/TH(0)",
0x10, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCHTH_1, "SACCH/TH(1)",
0x18, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH4_0, "SACCH/4(0)",
0x20, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH4_1, "SACCH/4(1)",
0x28, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH4_2, "SACCH/4(2)",
0x30, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH4_3, "SACCH/4(3)",
0x38, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH8_0, "SACCH/8(0)",
0x40, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH8_1, "SACCH/8(1)",
0x48, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH8_2, "SACCH/8(2)",
0x50, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH8_3, "SACCH/8(3)",
0x58, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH8_4, "SACCH/8(4)",
0x60, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH8_5, "SACCH/8(5)",
0x68, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH8_6, "SACCH/8(6)",
0x70, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
TRXC_SACCH8_7, "SACCH/8(7)",
0x78, LID_SACCH,
- 4 * GSM_BURST_PL_LEN, 0x00,
+ 4 * GSM_BURST_PL_LEN, TRX_CH_FLAG_CBTX,
rx_data_fn, tx_data_fn,
},
{
diff --git a/src/host/trxcon/sched_trx.h b/src/host/trxcon/sched_trx.h
index 78f458df..6a025436 100644
--- a/src/host/trxcon/sched_trx.h
+++ b/src/host/trxcon/sched_trx.h
@@ -21,6 +21,8 @@
#define TRX_CH_FLAG_PDCH (1 << 0)
/* Should a channel be activated automatically */
#define TRX_CH_FLAG_AUTO (1 << 1)
+/* Is continuous burst transmission assumed */
+#define TRX_CH_FLAG_CBTX (1 << 2)
#define MAX_A5_KEY_LEN (128 / 8)
#define TRX_TS_COUNT 8