OsmocomBB MS-side GSM Protocol stack (L1, L2, L3) including firmware https://osmocom.org/projects/baseband
Go to file
Vadim Yanitskiy 6e1c82d298 trx_toolkit/transceiver.py: implement the transmit burst queue
In order to reflect the UL/DL delay caused by the premature burst
scheduling (a.k.a. 'fn-advance') in a virtual environment, the
Transceiver implementation now queues all to be transmitted bursts,
so they remain in the queue until the appropriate time of transmission.

The API user is supposed to call recv_data_msg() in order to obtain
a L12TRX message on the TRXD (data) inteface, so it gets queued by
this function.  Then, to ensure the timeous transmission, the user
of this implementation needs to call clck_tick() on each TDMA
frame.  Both functions are thread-safe (queue mutex).

In a multi-trx configuration, the use of queue additionally ensures
proper burst aggregation on multiple TRXD connections, so all L12TRX
messages are guaranteed to be sent in the right order, i.e. with
monolithically-increasing TDMA frame numbers.

Of course, this change increases the overall CPU usage, given that
each transceiver gets its own queue, and we need to serve them all
on every TDMA frame.  According to my measurements, when running
test cases from ttcn3-bts-test, the average load is ~50% higher
than what it used to be.  Still not significantly high, though.

Change-Id: Ie66ef9667dc8d156ad578ce324941a816c07c105
Related: OS#4658, OS#4546
2020-07-14 17:21:14 +07:00
contrib contrib/jenkins.sh: also run unit tests for TRX Toolkit 2019-12-31 17:03:12 +00:00
doc mobile: add audio config, with unused audio loopback setting 2020-05-05 12:02:31 +07:00
include l1ctl_proto.h: add extended RACH (11-bit) request message 2019-04-22 05:10:13 +07:00
src trx_toolkit/transceiver.py: implement the transmit burst queue 2020-07-14 17:21:14 +07:00
.gitignore doc/manuals: integrate into this repository 2018-12-04 12:14:59 +00:00
.gitreview Add 'git review' config file 2017-09-07 12:21:24 +02:00