diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2018-03-11 04:18:06 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2018-03-11 15:03:35 +0700 |
commit | 5eae19098ac6e0563d3e176818ca6a6a4fb8656a (patch) | |
tree | 36587959a3e121141f4a08fd4f49123cd8af7920 /src/host/trxcon/sched_trx.h | |
parent | 4cf722364bdafd90d12984531e4ec8c8548d6579 (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.h | 12 |
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); |