Bug #5309
openosmo-pcu: Support rejecting multiple TBFs upon tx of Packet Access Reject
0%
Description
According to TS 44.060 Table 11.2.1, Packet Access Reject can contain multiple "Reject struct".
Hence, we can reject several TBFs in a single Dl RLCMAC block, which may come really handy in the case where all resources are allocated and hence we are congested.
In order to do that, I'd probably do it in 2 steps:
1- Get rid of "dummy UL TBF" used to handle Packet Access Reject through tbf_ul_ass_fsm. It's a nightmare maintaining those specially allocated TBFs which end up behaving differently that usual TBFs. Let's rather introduce some some "struct reject_req", hence a differenatiated structure and add specific handling for it in gprs_rlcmacn_sched.cpp, similar to what we do with SBA.
2- Add some sort of reject_pool, where the new reject_req are stored when we nowadays create a dummy tbf, and make the scheduler use that to request whether it should schedule any. Then, inside reject_pool implementation, we can keep a list of pending requests and generate a message adding as many requests as possible each time. Probably the best is to have a reject_pool per pdch object, since the reject are expected at some specific "control" Ts.