Project

General

Profile

Actions

Bug #5536

closed

BSC limits paging to one MS per 500ms per BTS

Added by laforge about 2 years ago. Updated about 2 years ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
-
Target version:
-
Start date:
04/21/2022
Due date:
% Done:

100%

Spec Reference:

Description

Before 2010, paging_handle_pending_requests() used to really send multiple requests every time it was executed.

Then, the following commit was introduced:

commit eb241aa1d5720a36cf97f29390c2890cf3aecba7
Author: Holger Hans Peter Freyther <holger@moiji-mobile.com>
Date:   Mon Sep 6 10:05:23 2010 +0800

    [paging] Continuisly send paging commands.

    Instead of throwing a huge pile of paging commands to the BTS
    we will submit one paging command every half second. This way
    we can have different messages between the paging commands.

    This is done to avoid crashes of the nanoBTS when too much
    paging messages are send.

unfortunately this applies to all BTS models, not just nanoBTS, hurting performance across the board.

We need, IMHO
  • TTCN3 tests that simulate various paging load on the AoIP side, and which reflect the BSC is filling the BTS-reported paging queue size as per RSL CCCH LOAD IND (RSL_IE_PAGING_LOAD)
  • handle multiple paging requests per timer execution
  • dynamically scale the timer based on the load.

Checklist

  • TTCN3 tests simulating various load scenarios
  • handling of multiple paging per timer
  • dynamic timer timeout scaling

Related issues

Related to OsmoBSC - Bug #5537: BSC makes wrong assumption about paging capacity of BTSResolvedpespin04/21/2022

Actions
Actions #1

Updated by laforge about 2 years ago

  • Related to Bug #5537: BSC makes wrong assumption about paging capacity of BTS added
Actions #2

Updated by pespin about 2 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 70

I added BSC_Tests.TC_paging_500req which checks that osmo-bsc schedules paging requests to the BTS quick enough if the BTS allows for it.
Other scenarios are in general already handled by other TC_paging_* tests.

In this patch I schedule several (up to 20) paging requests every 500ms:
https://gerrit.osmocom.org/c/osmo-bsc/+/27885
It was tested on the field and seems to be fixing SYS#5922.

Actions #3

Updated by pespin about 2 years ago

  • Checklist item TTCN3 tests simulating various load scenarios set to Done
  • Checklist item handling of multiple paging per timer set to Done
Actions #4

Updated by pespin about 2 years ago

  • Status changed from In Progress to Feedback
  • Assignee changed from pespin to laforge
  • % Done changed from 70 to 90

I have been thinking about implementing such a "dynamic timer timeout scaling", and I'm not sure we can improve this further "easily".
I don't thnk we can reliably set a T3113 based on load, since we have 2 levels of request buffering here, the one at the BTS and the one at the BSC. Furthermore, the current load doesn't really tell much information about the future state, only about the current state, which is not that useful to calculate the time required in the future.

As an example, the BSC queue is empty and we receive a burst with a lot of pagings from the MSC: At this point the BSC queue becomes loaded (lots of requests pending), but that doesn't necessarily mean the first requests will require a lot of time to be answered/timeout, because there may not be other requests already scheduled in the BTS beforehand.

I think current approach after all my recent patches (https://gerrit.osmocom.org/c/osmo-bsc/+/27946/ and prev) is actually kind of doing that:
Our T3113 actually just stores a buffer of time big enough to handle several retransmissions (taking into account network configuration). Since we allow retransmissions every 500ms, this means basically the BTS CCH LoadInd driven queue + BSC scheduling of 10 requests every 250 ms will already throttle effectively the amount of retransmissions submitted based on load.

So in summary, if PCH load at the BTS/BSC is lower, then the paging request will have more chances to be retransmitted quicker (hence more times) over the T3113 period of time. If there's more load, that paging request will have to fight against other requests in the queue to be scheduled for retransmission, hence autocontrolling the load of paging requests to be transmitted in the PCH.

Actions #5

Updated by pespin about 2 years ago

  • Assignee changed from laforge to pespin

While it's true it's difficult to account for the entire time the request will need, we can at least estimate the time according to current BSC queue, so I'm working on adding that now. This is useful if for instance a burs tof lots of requests arrive at a given point in time: The laters will take a lot more time to be scheduled, so we have to increment T3113 there, otherwise they will be dropped too quickly without even reaching the BTS.

Actions #6

Updated by pespin about 2 years ago

  • Checklist item dynamic timer timeout scaling set to Done

https://gerrit.osmocom.org/c/osmo-bsc/+/27965 paging: Increase T3113 based on paging group load in BSC queue

Actions #7

Updated by pespin about 2 years ago

  • Status changed from Feedback to Resolved
  • % Done changed from 90 to 100

Also related:
https://gerrit.osmocom.org/c/osmo-bsc/+/28002/

All patches have been merged. We can close the ticket.

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)