uplink multi-slot allocations
we currently have multi-slot allocations only in downlink, which works for "web browsing" and related applications. Howver, particularly in M2M, quite often the applications are upload-centric, and thus single-slot allocations in uplink are insufficient. Let's extend the code base with support for uplink multi-slot allocations
For reference, we still don't support UL multi-slot allocation yet, we do only for DL.
Related bits to be found in alloc_algorithm_b(), there in UL TBF code branch a call to allocate_usf() forces the initially selected TS set down into a single TS.
I guess support for it requires improving that part.
commit 5f494b8415ff4e5c9bf323ea7bc8326ad423c7ae Author: Jacob Erlbeck <firstname.lastname@example.org> Date: Wed Jul 1 13:10:41 2015 +0200 alloc: Only reserve 1 UL slot with algorithm B Since currently the algorithm B will only allocate a single UL slot and will have to stick to it (first common TS), the other possible UL slots will not be allocated while the reservation is kept. This commit adds code to update the reserved set of UL slots to only reserve the single common TS when the UL TBF is allocated. Interestingly this leads to fewer allocated TBF in some cases due to USF exhaustion. This will be improved by the following commit "alloc: Skip common TS without free USF". Sponsored-by: On-Waves ehf
Also half related, a fix introduced in UL TBF recently:
https://gerrit.osmocom.org/c/osmo-pcu/+/20254 Fix crash accessing NULL tbf->pdch[first_ts]
For reference, DL multislot TBF allocation (not UL TBF, which this task talks about) is tested and working (with some constraints in some scenarios where 4 PDCHS are allocated instead of 8) here:
remote: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20947 pcu: Introduce test TC_dl_multislot_tbf_ms_class_from_sgsn
remote: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20967 pcu: Introduce test TC_dl_multislot_tbf_ms_class_from_2phase
Test triggering and validating multi-slot UL TBF allocation:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20983 pcu: Introduce test TC_ul_multislot_tbf_ms_class_from_2phase
MS class 18 should trigger allocation of 8 PDCHs but only 1 is allocated. It simply demonstrate what we already know: UL multislot TBF is not working (it is explicitly disabled so far in the code).
From "EGPRS – Design Details & System Engineering" slide number 30:
Note: Physically, it is not possible to allocate more than two timeslots to a mobile station in uplink direction when using dynamic allocation. This is a serious
performance limitation for GPRS and EGPRS, in particular for symmetric applications (e.g. e-mail transfer).