Project

General

Profile

Actions

Feature #2282

closed

uplink multi-slot allocations

Added by laforge almost 7 years ago. Updated about 3 years ago.

Status:
Resolved
Priority:
High
Assignee:
Target version:
-
Start date:
05/22/2017
Due date:
% Done:

100%

Spec Reference:

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

Related to OsmoPCU - Bug #1775: LC15: No PDCH allocation across two TRXResolvedpespin07/12/2016

Actions
Actions #1

Updated by laforge almost 7 years ago

  • Assignee changed from 4368 to msuraev
  • Priority changed from Low to High
Actions #2

Updated by laforge over 6 years ago

  • Tracker changed from Bug to Feature
Actions #3

Updated by msuraev over 6 years ago

  • Related to Bug #1775: LC15: No PDCH allocation across two TRX added
Actions #4

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.

Actions #5

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.

Actions #6

Updated by msuraev over 6 years ago

  • Status changed from In Progress to Stalled

Needs to incorporate review feedback and re-submit.

Actions #7

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.

Actions #8

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.

Actions #9

Updated by msuraev about 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.

Actions #10

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.

Actions #11

Updated by laforge about 6 years ago

  • Assignee changed from msuraev to 4368
Actions #12

Updated by laforge over 5 years ago

Actions #13

Updated by laforge over 5 years ago

Actions #14

Updated by laforge almost 5 years ago

  • Assignee changed from 4368 to lynxis
Actions #15

Updated by lynxis almost 5 years ago

  • Status changed from Stalled to In Progress
Actions #16

Updated by laforge over 4 years ago

  • Assignee changed from lynxis to 4368
Actions #17

Updated by laforge almost 4 years ago

  • Assignee changed from 4368 to pespin
Actions #18

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?

Actions #19

Updated by pespin almost 4 years ago

Right, I didn't do any work related on this yet.

Actions #20

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.

Actions #21

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]

Actions #22

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

Actions #23

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).

Actions #24

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).

Actions #25

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.

Actions #26

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.

Actions #27

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.

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)