diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-04-22 21:03:33 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-04-22 21:07:06 +0200 |
commit | 710e0e9ad8947c3edf9cdb9dbd26ab062f6a0488 (patch) | |
tree | e43e3caec6377dd5df727ce5db7914ba1e30e352 | |
parent | 434799720ca326083b16ef9da5d9fc6823d29bba (diff) |
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
-rw-r--r-- | src/pdch.cpp | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/pdch.cpp b/src/pdch.cpp index baac0f7f..76ca1d00 100644 --- a/src/pdch.cpp +++ b/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) |