osmocom-bb/src/host/trxcon
Vadim Yanitskiy 2060b5b7cc trxcon/scheduler: refactor Downlink measurement processing
So far we used to store the sums of ToA and RSSI measurements in the
logical channel state, and after decoding of a block, we did calculate
the average. This approach works fine for xCCH and PDTCH, but when it
comes to block-diagonal interleaving (which is used on TCH/F and TCH/H
channels), the results are incorrect. The problem is that a burst on
TCH may carry 57 bits of one encoded frame and 57 bits of another.

Instead of calculating the sum of measurements on the fly, let's push
them into a circular buffer (the measurement history), and keep them
there even after decoding of a block. This would allow us to calculate
the average of N last measurements depending on the interleaving type.

A single circular buffer can hold up to 8 unique measurements, so the
recent measurements would basically override the oldest ones.

Change-Id: I211ee3314f0a284112a4deddc0e93028f4a27cef
2020-03-08 22:50:54 +00:00
..
.gitignore host/trxcon/scheduler: add basic clock counter 2017-11-19 17:35:07 +07:00
Makefile.am trxcon/scheduler: add PDTCH channel support 2018-10-20 22:42:59 +02:00
configure.ac trxcon/configure.ac: add --enable-sanitize option 2018-03-11 14:14:51 +07:00
l1ctl.c trxcon/l1ctl.c: properly handle handover RACH request 2019-06-02 12:44:12 +00:00
l1ctl.h trxcon/l1ctl.c: pass band_arfcn to l1ctl_tx_rach_conf() 2019-05-09 22:01:28 +07:00
l1ctl_link.c trxcon/l1ctl_link.c: refactor l1ctl_link_init() 2019-01-17 11:12:00 +07:00
l1ctl_link.h trxcon: use bool for fbsb_conf_sent 2019-03-21 13:16:39 +01:00
l1ctl_proto.h host/trxcon: initial release of L1CTL handlers 2017-11-19 17:35:07 +07:00
logging.c trxcon/trxcon.c: do not expose tall_trx_ctx 2019-01-17 19:38:14 +07:00
logging.h trxcon/trxcon.c: do not expose tall_trx_ctx 2019-01-17 19:38:14 +07:00
sched_clck.c trxcon/scheduler: make TDMA_FN_INC(fn) behave like ++fn 2020-03-08 22:50:54 +00:00
sched_lchan_common.c trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
sched_lchan_desc.c trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
sched_lchan_pdtch.c trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
sched_lchan_rach.c host/trxcon: add optional GSMTAP frame logging support 2019-10-05 17:50:20 +07:00
sched_lchan_sch.c trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
sched_lchan_tchf.c trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
sched_lchan_tchh.c trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
sched_lchan_xcch.c trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
sched_mframe.c trxcon/sched_mframe.c: mark all stolen CBCH UL slots as TRXC_IDLE 2019-05-31 16:51:44 +00:00
sched_prim.c trxcon: Use current MS Power on dummy meas reports 2019-12-04 14:41:56 +01:00
sched_trx.c trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
sched_trx.h trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
scheduler.h trxcon/scheduler: make TDMA_FN_INC(fn) behave like ++fn 2020-03-08 22:50:54 +00:00
trx_if.c trxcon/scheduler: refactor Downlink measurement processing 2020-03-08 22:50:54 +00:00
trx_if.h trxcon: Suppress POWERON to TRX if we're already powered on. 2019-05-31 22:35:31 +07:00
trxcon.c Check for osmo_fsm_register() error return value 2019-12-01 13:46:06 +01:00
trxcon.h host/trxcon: add optional GSMTAP frame logging support 2019-10-05 17:50:20 +07:00