Attention is currently required from: neels, laforge.
Hello Jenkins Builder, neels, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-gprs/+/33095
to look at the new patch set (#5).
Change subject: rlcmac: Implement UL TBF Countdown procedure ......................................................................
rlcmac: Implement UL TBF Countdown procedure
The Countdown procedure (decreasing CV field in UL RLCMAC data blocks) is defined in TS 44.060 9.3.1.
It is implemented by means of counting/calculating the amount of RLC/MAC blocks to be transmitted based on the LLC frames in the several LLC queues, without actually generating the RLC/MAC blocks. The blocks cannot be generated ahead of time because that wouldn't allow recreating them in case Tx UL CS changes, or if a higher priority LLC frames arrives. The functions calculating the required amount of RLC/MAC blocks are coded so that they early return to avoid spending more time than necessary counting blocks (< BS_CV_MAX). An extra heuristic optimization to be used when LLC queues are long is left documented as a TODO, in order to test further the general non-optimized path for now. Once the counting is proved to work reliably, that and other heuristic optimizations ca be implemented, like keeping and decreasing CV cached counter while no Tx CS change occurs or no new LLC frames are enqueued.
Change-Id: If043c86a0c2b89d0ac0b8174de39fbcb22bed8cb --- M include/osmocom/gprs/rlcmac/llc_queue.h M include/osmocom/gprs/rlcmac/rlcmac_enc.h M include/osmocom/gprs/rlcmac/tbf_ul.h M src/rlcmac/llc_queue.c M src/rlcmac/rlcmac_enc.c M src/rlcmac/tbf_ul.c M tests/rlcmac/rlcmac_prim_test.c M tests/rlcmac/rlcmac_prim_test.err M tests/rlcmac/rlcmac_prim_test.ok 9 files changed, 518 insertions(+), 66 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/95/33095/5