Bug #2407

N3101 not implemented in OsmoPCU

Added by laforge over 1 year ago. Updated 9 months ago.

Target version:
Start date:
Due date:
% Done:


Spec Reference:


N3101 is a counter. It counts up for every time no uplink data is received for an assigned USF.

Every time uplik data for an assigned USF is received, the counter is reset to zero.

If the counter ever reaches N3101_MAX, then the USF is no longer placed on the downlink, T3169 started and runs to expiry. After T3169 expiration, the USF is released and can be used by other TBF/MS.

Related issues

Related to libosmocore - Bug #2586: fix timer duration calculationsStalled2017-10-20

Related to OsmoPCU - Feature #2709: use osmo_fsm for TBFNew2017-12-05


#1 Updated by laforge over 1 year ago

bts->n3101 is actually N3101_MAX, and it is provided via PCU socket from the BTS. So we already have a configurable N3101_MAX, but we have no actual per-USF/TBF counter and related mechanism.

#2 Updated by laforge about 1 year ago

  • Assignee deleted (laforge)
  • Priority changed from Normal to High

#3 Updated by laforge 12 months ago

  • Assignee set to msuraev
  • Priority changed from High to Immediate

#4 Updated by msuraev 12 months ago

  • Status changed from New to In Progress

The counter and timer are described in 3GPP TS 44.060 §13.2 and §13.4

#5 Updated by msuraev 12 months ago

  • Related to Bug #2586: fix timer duration calculations added

#6 Updated by msuraev 12 months ago

  • % Done changed from 0 to 10

This change is less trivial than initially anticipated: the problem is with TBF timeout handling in OsmoPCU - there's only single osmo_timer_list which is used for handling of all the timeouts. This in turn means that TBF cannot have 2 concurrent timers running at the same time - the moment we schedule new timer, we lose the information about any pending timer for this TBF. This is both counterintuitive and unnecessary fragile which makes it hard to test and modify.

Related gerrit 5109 has been merged, gerrit 5120 and 5158 are under review. Once it's merged we'll have generic infrastructure in place for handling TBF timers. Follow-up patches will convert remainig timers to use it (including T3169) which would allow use to properly integrate N3101 support.

#7 Updated by msuraev 12 months ago

#8 Updated by msuraev 11 months ago

  • % Done changed from 10 to 70

Tested successfully with sysmoBTS, under review in gerrit 5158, 5182.

#9 Updated by msuraev 11 months ago

  • Status changed from In Progress to Stalled

#10 Updated by msuraev 11 months ago

  • Status changed from Stalled to Resolved
  • % Done changed from 70 to 100

N3101 implementation has been merged, remaining patches to convert timer handling to the same infrastructure which is used for T3169 are under review.

#11 Updated by laforge 9 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)