osmocom-bb/src/host/trxcon
Vadim Yanitskiy 1bffe899d9 trxcon/scheduler: introduce TCH/H TDMA frame mapping helpres
Unlike xCCH, TCH/H channels are using block diagonal interleaving,
so every single burst carries 57 bits of one traffic frame, and 57
bits of another one. Moreover, unlike TCH/F where both traffic
and FACCH/F frames are interleaved over 8 bursts, a FACCH/H is
interleaved over 6 bursts, while a traffic frame is interleaved
over 4 bursts.

This is why a TCH/H burst transmission can't be initiated on
an arbitrary TDMA frame number. It shall be aligned as of
stated in GSM 05.02, clause 7, table 1.

This change introduces two basic functions:

  - sched_tchh_block_map_fn - checks if a TCH/H block transmission
    can be initiated / finished on a given frame number
    and a given channel type;

  - sched_tchh_block_dl_first_fn - calculates TDMA frame number of
    the first burst using given frame number of the last burst;

and some auxiliary wrappers to simplify the usage of
sched_tchh_block_map_fn().

Change-Id: Iaf4cb33f1b79df23f8a90c8b14ebe0cd9907fbb9
2018-09-16 02:12:09 +07:00
..
.gitignore host/trxcon/scheduler: add basic clock counter 2017-11-19 17:35:07 +07:00
Makefile.am trxcon/scheduler: introduce TCH/H TDMA frame mapping helpres 2018-09-16 02:12:09 +07:00
configure.ac trxcon/configure.ac: add --enable-sanitize option 2018-03-11 14:14:51 +07:00
l1ctl.c trxcon/scheduler.h: share FRAME_DURATION_uS definition 2018-09-14 18:12:20 +07:00
l1ctl.h trxcon: clean up DATA / TRAFFIC indication API 2018-03-11 17:38:29 +07:00
l1ctl_link.c trxcon/l1ctl_link.c: allocate msgb after its length is read 2018-03-11 10:05:48 +00:00
l1ctl_link.h trxcon: clarify L1CTL message length field 2018-03-11 10:05:48 +00:00
l1ctl_proto.h host/trxcon: initial release of L1CTL handlers 2017-11-19 17:35:07 +07:00
logging.c host/trxcon: use osmo_init_logging2() 2018-04-09 08:26:20 +00:00
logging.h host/trxcon/scheduler: separate logging of data messages 2017-11-19 17:35:07 +07:00
sched_clck.c trxcon/scheduler: introduce TDMA frame math helpers 2018-09-16 01:51:15 +07:00
sched_lchan_common.c trxcon/scheduler: fix: don't send BFI in GSM48_CMODE_SIGN mode 2018-09-15 07:51:52 +00:00
sched_lchan_desc.c trxcon/scheduler: share lchan link identifiers 2018-03-22 23:02:25 +07:00
sched_lchan_rach.c trxcon/scheduler: fix: check primitive len before encoding 2018-07-24 22:24:13 +07:00
sched_lchan_sch.c host/trxcon: use integer math for ToA (Timing of Arrival) 2018-03-02 21:24:57 +07:00
sched_lchan_tchf.c trxcon/scheduler: fix: don't send BFI in GSM48_CMODE_SIGN mode 2018-09-15 07:51:52 +00:00
sched_lchan_tchh.c trxcon/scheduler: introduce TCH/H TDMA frame mapping helpres 2018-09-16 02:12:09 +07:00
sched_lchan_xcch.c trxcon/scheduler: fix: check primitive len before encoding 2018-07-24 22:24:13 +07:00
sched_mframe.c host/trxcon/scheduler: use 'tn' instead of 'ts_num' 2017-11-19 17:35:07 +07:00
sched_prim.c trxcon/scheduler: introduce TCH/H TDMA frame mapping helpres 2018-09-16 02:12:09 +07:00
sched_trx.c trxcon/scheduler: introduce TDMA frame math helpers 2018-09-16 01:51:15 +07:00
sched_trx.h trxcon/scheduler: introduce TCH/H TDMA frame mapping helpres 2018-09-16 02:12:09 +07:00
scheduler.h trxcon/scheduler: introduce TCH/H TDMA frame mapping helpres 2018-09-16 02:12:09 +07:00
trx_if.c trxcon/l1ctl.c: refactor Timing Advance handling 2018-09-07 12:18:24 +00:00
trx_if.h trxcon/trx_if.c: drop unused SETPOWER and ADJPOWER 2018-09-07 03:38:38 +07:00
trxcon.c trxcon: make both Valgrind and trxcon happy 2018-07-28 02:22:29 +07:00
trxcon.h host/trxcon: get rid of useless TRX_EVENT_RESET_IND 2017-11-19 17:35:07 +07:00