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