Holger Hans Peter Freyther wrote:
select_first_ts (it exists after the refactoring). It initializes i and compares it but it will never increment it. This means that the code can look at PDCHs _outside_ of the tx_range.
first_common_ts handling. When assigning the DL tbf we pick a first_common_ts but when the actual UL assignment happens there might not be a free USF on the Uplink and at that point the phone might not listen on the TS we think.
Sum for Rx+Tx is not used. I see that in update_rx_win_max you modify the window to make some room.
select_ul_slots. "i" is not incremented in all cases which could potentially lead to using slots outside of the tx_range. For the MS Type == 1 handling you could introduce a different variable that counts how many slots were used?
dear holger,
i added serveral fixes that showed up with your test code. i have pushed them to the jolly/allocation-fixes branch. in also includes a fix for the missing incrementation of 'i' in select_first_ts() and select_ul_slots().
the Sum variable is not used, because the algorithm assigns only one uplink time slot. the supports RX slots plus 1 TX slot never exceeds the Sum.
i have no fix for the USF problem. if the first_common_ts on concurrent TBFs is different, we should reject the TBF by sending a Packet Access Reject, but this message is also not implemented.
regards,
andreas