osmo-bts/src/osmo-bts-trx
Vadim Yanitskiy 11fb108221 osmo-bts-trx: check if scheduling of [dummy] FACCH/H is allowed
Currently (without this patch) if tch_dl_dequeue() yields nothing we're
scheduling dummy FACCH/H *regardless* if it's permitted to start at the
given TDMA FN or not.  This may result in misaligned FACCH transmission,
so the MS will not able to decode anything and will report BER>0.

With this patch applied we schedule FACCH/H if it's allowed to start
at the current TDMA FN;  otherwise send half-filled bursts with even
numbered bits contaning 232 encoded bits of the previous L2 frame
and 232 odd numbered bits all set to 0.

This patch does not guard against sporadic gaps in the Downlink TCH
queue.  However when tch_dl_dequeue() constantly yields nothing, e.g.
when we end up with a codec mismatch, then this additional check saves
us from starting misaligned FACCH/H transmission.  If we start at a wrong
TDMA offset, then all subsequent FACCH frames will be scheduled at wrong
offsets and thus none of them will be decoded by the MS.

Change-Id: I6f8af140a6ccf3d5fd7b98f6cb5c18e2c5e2f61b
Related: SYS#5919, OS#4823
2022-04-21 06:23:48 +00:00
..
Makefile.am osmo-bts-trx: rename 'loops.[ch]' to 'amr_loop.[ch]' 2022-04-11 20:06:51 +03:00
amr_loop.c osmo-bts-trx: amr_loop: do not miss C/I samples 2022-04-20 15:39:30 +03:00
amr_loop.h osmo-bts-trx: use C/I in the AMR link adaptation loop 2022-04-20 12:18:08 +00:00
l1_if.c struct amr_multirate_conf: remove ms_mode[], raname bts_mode[] 2022-04-17 13:14:59 +00:00
l1_if.h osmo-bts-trx: new rate counter 'trx_sched:dl_fh_cache_miss' 2022-03-09 07:22:27 +00:00
main.c osmo-bts-trx: new rate counter 'trx_sched:dl_fh_cache_miss' 2022-03-09 07:22:27 +00:00
probes.d initial support for static userspace probes via systemtap 2021-10-25 10:06:09 +00:00
sched_lchan_fcch_sch.c [VAMOS] common/scheduler: unify symbol names for training sequences 2021-06-01 02:46:43 +00:00
sched_lchan_pdtch.c osmo-bts-trx: use consistent naming for 'enum sched_meas_avg_mode' 2022-03-18 03:53:02 +03:00
sched_lchan_rach.c trx_sched_ul_burst(): get rid of the 'switch' statement 2022-03-22 18:28:15 +00:00
sched_lchan_tchf.c osmo-bts-trx: fix scheduling of dummy FACCH/H and FACCH/F 2022-04-20 19:51:25 +00:00
sched_lchan_tchh.c osmo-bts-trx: check if scheduling of [dummy] FACCH/H is allowed 2022-04-21 06:23:48 +00:00
sched_lchan_xcch.c osmo-bts-trx: use consistent naming for 'enum sched_meas_avg_mode' 2022-03-18 03:53:02 +03:00
sched_utils.h osmo-bts-trx: move AMR CMI lookup tables to the respective files 2022-04-08 18:37:08 +03:00
scheduler_trx.c osmo-bts-trx: bts_report_interf_meas(): remove unused fn param 2022-04-13 15:03:20 +00:00
trx_if.c osmo-bts-trx: make use of OSMO_UNLIKELY() when handling TRXD PDUs 2022-03-06 16:51:14 +03:00
trx_if.h [VAMOS] osmo-bts-trx: properly handle per-timeslot TSC values 2021-06-04 20:04:13 +00:00
trx_provision_fsm.c osmo-bts-trx: fix potential NULL pointer dereference 2021-10-23 01:18:27 +03:00
trx_provision_fsm.h [VAMOS] osmo-bts-trx: properly handle per-timeslot TSC values 2021-06-04 20:04:13 +00:00
trx_vty.c VTY: fix NULL-pointer dereference in 'show transceiver' 2022-04-21 00:23:05 +03:00