N3101 not implemented in OsmoPCU
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.
- % 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.