aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmo-bts
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2020-02-06 14:31:22 +0100
committerlaforge <laforge@osmocom.org>2020-04-25 14:03:06 +0000
commit58b9f1189843a91f53bce76b3afa9483f89440a0 (patch)
tree08b2c78e0749622636c82b7c42bd3b489bb77dc5 /include/osmo-bts
parent557ca0f468494f23171e4631734e931a7f5e7631 (diff)
dtx: add detection of AMR DTX frames for osmo-bts-trx
Currently we do not detect any of the DTX frames (SID_FIRST, SID_UPDATE etc.) Detecting and tagging those frames as is_sub is important for measurement processing. Also the RTP marker bit must be set on each ONSET frame. - Add detection of DTX frames - Tag DTX frames as is_sub and set frame type to AMR_SID - Set RTP marker bit when ONSET frames are received Change-Id: I5afe730fff2fa3199a5913b0de4f5c7b23a39f31 Depends: libosmocore I2bbdb39ea20461ca08b2e6f1a33532cb55cd5195 Related: OS#2978
Diffstat (limited to 'include/osmo-bts')
-rw-r--r--include/osmo-bts/scheduler.h1
-rw-r--r--include/osmo-bts/scheduler_backend.h3
2 files changed, 3 insertions, 1 deletions
diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h
index fed3f04e..c0264119 100644
--- a/include/osmo-bts/scheduler.h
+++ b/include/osmo-bts/scheduler.h
@@ -106,6 +106,7 @@ struct l1sched_chan_state {
uint8_t ul_cmr; /* current uplink CMR index */
uint8_t dl_cmr; /* current downlink CMR index */
uint8_t amr_loop; /* if AMR loop is enabled */
+ uint8_t amr_last_dtx; /* last received dtx frame type */
/* TCH/H */
uint8_t dl_ongoing_facch; /* FACCH/H on downlink */
diff --git a/include/osmo-bts/scheduler_backend.h b/include/osmo-bts/scheduler_backend.h
index 201b48c3..cfbe7f25 100644
--- a/include/osmo-bts/scheduler_backend.h
+++ b/include/osmo-bts/scheduler_backend.h
@@ -53,7 +53,8 @@ int _sched_compose_ph_data_ind(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn,
int _sched_compose_tch_ind(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn,
enum trx_chan_type chan, uint8_t *tch, uint8_t tch_len,
- int16_t ta_offs_256bits, uint16_t ber10k, float rssi);
+ int16_t ta_offs_256bits, uint16_t ber10k, float rssi,
+ uint8_t is_sub);
ubit_t *tx_idle_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn,
enum trx_chan_type chan, uint8_t bid, uint16_t *nbits);