Feature #2282
closeduplink multi-slot allocations
100%
Description
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
Related issues
Updated by laforge almost 7 years ago
- Assignee changed from 4368 to msuraev
- Priority changed from Low to High
Updated by msuraev over 6 years ago
- Related to Bug #1775: LC15: No PDCH allocation across two TRX added
Updated by msuraev over 6 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
Prerequisite patch with code clenup/restructure/documentation has been sent for review in gerrit 3760, 3807.
Updated by msuraev over 6 years ago
- % Done changed from 10 to 20
Currently under review in gerrit: 3929, 3930, 3931, 3932, 3760, 3895, 3905, 3906, 3913, 3914, 3920.
The code requires serious refactoring and is unsufficiently covered by tests hence the size of patch series.
Updated by msuraev over 6 years ago
- Status changed from In Progress to Stalled
Needs to incorporate review feedback and re-submit.
Updated by msuraev over 6 years ago
Related patch series 4634-4636, 4072 is under review. Once it's merged, the previous patch set will be re-based on top of it and resubmitted.
Updated by msuraev over 6 years ago
Gerrit 4634 and 4635 were merged. Gerrit 4636 is waiting for review. Gerrit 4955, 4957, 4958, 4960 were sent for review based on current feedback; 4072 is rebased on top of 4958.
Updated by msuraev over 6 years ago
- Status changed from Stalled to In Progress
Patch series partially merged, the rest is rebased on top of it, more tests added.
Updated by msuraev about 6 years ago
- Status changed from In Progress to Stalled
Remaining patches under review gerrit 3895, 4086, 3929, 3932 are cosmetic only and can be dropped.
Updated by lynxis almost 5 years ago
- Status changed from Stalled to In Progress
Updated by laforge almost 4 years ago
- Status changed from In Progress to Stalled
what is the status here? It looks like msuraev got some infrastructure/generalization patches merged, but no work has been done on the actual multi-slot uplink allocation, right?
Updated by pespin over 3 years ago
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.
Updated by pespin over 3 years ago
Related:
commit 5f494b8415ff4e5c9bf323ea7bc8326ad423c7ae Author: Jacob Erlbeck <jerlbeck@sysmocom.de> 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]
Updated by pespin over 3 years ago
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
Updated by pespin over 3 years ago
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).
Updated by pespin over 3 years ago
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).
Updated by pespin about 3 years ago
pespin wrote:
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).
Explanation can be found here:
Let us take the example of a class 12 MS, which is defined by:
A maximum number of four receive time slots per TDMA frame;
A maximum number of four transmit time slots per TDMA frame;
A total number of transmit and receive time slots per TDMA frame less than or equal to five.
The network cannot allocate four uplink PDCHs to a MS multislot class 12 with the dynamic allocation. Indeed, the MS must decode the USF fields on the four associated downlink PDCHs. This means that the MS would have to receive on four time slots to be able to transmit on four time slots. That gives a total number of eight received and transmit time slots, which is not compliant with a multislot class 12 MS. In the case of extended dynamic allocation, the network can allocate four uplink PDCHs without exceeding a total number of five receive and transmit time slots.
Updated by pespin about 3 years ago
- Status changed from Stalled to Feedback
- % Done changed from 20 to 90
It should be implemented here:
https://gerrit.osmocom.org/c/osmo-pcu/+/23031
I looked at unit tests and tested it locally on my local setup and everything looks fine as far as I can see.
It also makes PCU_Tests.TC_ul_multislot_tbf_ms_class_from_2phase pass for first time.
See commit description regarding possible improvements on USF exhaustion.
Updated by pespin about 3 years ago
- Status changed from Feedback to Resolved
- % Done changed from 90 to 100
Patches have been merged.
I also submitted some more patches adding counters to detect TFI/USF exhaustion in order to track this change in behavior (UL multislot endig up more easily in USF exhaustion):
https://gerrit.osmocom.org/c/osmo-pcu/+/23110
If we see this is really a problem in setups in the field with lots of MS, we can add a VTY param to limit maximum amount of timeslots that can be assigned to a UL TBF. This way for instance using value "2" there, MS can allocate up to 2 TS (USF) to speed up uplink, but avoid high class MS gathering up to 8 TS on a single UL TBF.