Assign same TFI number in downlink/uplink
// 12-22-2011: It looked like the Blackberry abandoned an uplink TBF when // a downlink TBF was established using the same TFI. This seems like a horrible // bug in the MS, but to work around it, I added the gFixTFIBug which uses // a single TFI space for both uplink and downlink. This eliminated // a bunch of msStop calls with cause T3101, so I think this is a genuine // problem with MSs and we need this fix in permanently. // Update: The TFI is reserved during the time after a downlink ends, so the MS // may have been justifiably upset about seeing it reissued for an uplink too soon.
The above is from the OpenBTS code and we should assume this to be a valid issue. In general Jolly's code can also end-up in the situation where DL/UL think they have a common control_ts but in fact they are different. One way to resolve this would be to create a "MS" structure that holds IMSI, TLLI, TFI a pointer to the UL TBF and one to the DL (we don't support multiple TBF anyway). This way we could make sure the reservation is done in the right way.
#1 Updated by zecke about 2 years ago
This might have been related to the old/new TBF handling in those days. Today the MS object keeps track of all active TBF (there can be more than 2 at a time sometimes) and the TFI of all of them are blocked until a timeout expires or a TBF is replaced by another of the same direction.
Thus an too early reuse of a TFI shouldn't happen.
Downlink and uplink TFI are managed independently and is is possible that both directions get the same value. But I haven't observed any problems of this kind with the E71 and the iphone.