summaryrefslogtreecommitdiffstats
path: root/src/host/trxcon/sched_trx.h
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-03-11 04:18:06 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2018-03-11 15:03:35 +0700
commit5eae19098ac6e0563d3e176818ca6a6a4fb8656a (patch)
tree36587959a3e121141f4a08fd4f49123cd8af7920 /src/host/trxcon/sched_trx.h
parent4cf722364bdafd90d12984531e4ec8c8548d6579 (diff)
trxcon/scheduler: transmit dummy frames on CBTX lchans
If at the moment of transmission there are no frames in TX buffer, then either a dummy LAPDm frame (0x01, 0x03, 0x01, 0x2b ...) or a silence frame (depending on a codec in use) shall be transmitted. This is required for proper measurements on the BTS side. Change-Id: Ie590990f2274ea476678f6b2079f90eeadab6501
Diffstat (limited to 'src/host/trxcon/sched_trx.h')
-rw-r--r--src/host/trxcon/sched_trx.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/host/trxcon/sched_trx.h b/src/host/trxcon/sched_trx.h
index 6a025436..d9e0c8ed 100644
--- a/src/host/trxcon/sched_trx.h
+++ b/src/host/trxcon/sched_trx.h
@@ -275,6 +275,17 @@ int sched_prim_init(struct trx_instance *trx, struct trx_ts_prim **prim,
int sched_prim_push(struct trx_instance *trx,
struct trx_ts_prim *prim, uint8_t chan_nr);
+#define TCH_MODE_IS_SPEECH(mode) \
+ (mode == GSM48_CMODE_SPEECH_V1 \
+ || mode == GSM48_CMODE_SPEECH_EFR \
+ || mode == GSM48_CMODE_SPEECH_AMR)
+
+#define TCH_MODE_IS_DATA(mode) \
+ (mode == GSM48_CMODE_DATA_14k5 \
+ || mode == GSM48_CMODE_DATA_12k0 \
+ || mode == GSM48_CMODE_DATA_6k0 \
+ || mode == GSM48_CMODE_DATA_3k6)
+
#define CHAN_IS_TCH(chan) \
(chan == TRXC_TCHF || chan == TRXC_TCHH_0 || chan == TRXC_TCHH_1)
@@ -286,6 +297,7 @@ int sched_prim_push(struct trx_instance *trx,
struct trx_ts_prim *sched_prim_dequeue(struct llist_head *queue,
enum trx_lchan_type lchan_type);
+int sched_prim_dummy(struct trx_lchan_state *lchan);
void sched_prim_drop(struct trx_lchan_state *lchan);
void sched_prim_flush_queue(struct llist_head *list);