pdch: tbf_by_tfi(): Allow returning TBFs in state RELEASING

During RELEASING state the TFI, USFs, etc. are still reserved and
assigned to the TBF, and hence the TBF may still use it.
If callers of this function rely on not taking TBFs under RELEASING
state, they should check that explicitly.

It still makes sense being to operate on RELEASING TBFs, since under
some circumstances the TBF may go under a previous state. See for
instance 3GPP TS 44.060 sec 8.1.1.3a.2:

"""
If N3101 reaches the value N3101max, the network shall stop sending
PACKET UPLINK ACK/NACK messages to the mobile station for that TBF
and shall start timer T3169 for the TBF. If an RLC/MAC block is received
from the TBF when timer T3169 is running, the network shall stop timer
T3169 and resume sending PACKET UPLINK ACK/NACK messages to the TBF.
When T3169 expires, the network may consider the TBF as released and
reuse the TFI value.
"""

Change-Id: Ibb471e727388512d42794d3faa26597e2545b852
changes/71/23871/1
Pau Espin 2 years ago
parent 434799720c
commit 710e0e9ad8
  1. 9
      src/pdch.cpp

@ -1044,14 +1044,7 @@ gprs_rlcmac_tbf *gprs_rlcmac_pdch::tbf_by_tfi(uint8_t tfi,
tbf = m_tbfs[dir][tfi];
if (!tbf)
return NULL;
if (tbf->state_is_not(GPRS_RLCMAC_RELEASING)) {
return tbf;
}
return NULL;
return tbf;
}
void gprs_rlcmac_pdch::attach_tbf(gprs_rlcmac_tbf *tbf)

Loading…
Cancel
Save