Losing ACKs due TLLI changes?

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/osmocom-net-gprs@lists.osmocom.org/.

Holger Hans Peter Freyther hfreyther at sysmocom.de
Wed Oct 30 11:17:31 UTC 2013


On Sun, Oct 27, 2013 at 01:33:13PM +0100, Holger Hans Peter Freyther wrote:

Hi,


> <0007> gprs_rlcmac_meas.cpp:103 UL RSSI of TLLI=0x88661bc6: -67 dBm
> <0002> bts.cpp:945 Got ACK, but UL TBF is gone TLLI=0xe512eba3
> <0007> gprs_rlcmac_meas.cpp:158 DL packet loss of IMSI=274080000004765 / TLLI=0xe512eba3: 0%
> <0002> tbf.cpp:668 TBF TFI=0 TLLI=0x88661bc6 T3169 timeout during transsmission
> <0002> tbf.cpp:690 - Assignment was on PACCH
> <0002> tbf.cpp:694 - No uplink data received yet

this is from a routing area update (with some printf debugging):


TBF(TFI=0 TLLI=0xb68154e6 DIR=DL) TLLLI changed...... 0xb68154e6->0xc782d1de
<0002> tbf.cpp:1626 TBF(TFI=0 TLLI=0xb68154e6 DIR=DL) changing tlli to TLLI=0xc782d1de
<0002> bts.cpp:941 Got ACK, but UL TBF is gone TLLI=0xc782d1de
<0007> gprs_rlcmac_meas.cpp:158 DL packet loss of IMSI=274080000004765 / TLLI=0xc782d1de: 0%
<0002> tbf.cpp:664 TBF(TFI=0 TLLI=0xb68154e6 DIR=UL) T3169 timeout during transsmission
<0002> tbf.cpp:686 - Assignment was on PACCH
<0002> tbf.cpp:690 - No uplink data received yet

So the DL TLLI has been changed and then we get an ACK for a UL tbf
with the new TLLI and can't find it. And run into a timeout.


I have applied this change:

diff --git a/src/tbf.cpp b/src/tbf.cpp
index fac5aaf..19bb83c 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -1618,6 +1618,17 @@ void gprs_rlcmac_tbf::update_tlli(uint32_t tlli)
        if (tlli == m_tlli)
                return;
 
+       printf("%s TLLLI changed...... 0x%08x->0x%08x\n",
+               tbf_name(this), m_tlli, tlli);
+
+       if (direction == GPRS_RLCMAC_DL_TBF) {
+               gprs_rlcmac_tbf *ul_tbf;
+               ul_tbf = bts->tbf_by_tlli(m_tlli, GPRS_RLCMAC_UL_TBF);
+
+               if (ul_tbf)
+                       ul_tbf->m_tlli = tlli;
+       }
+
 #warning "TODO.. find the DL/UL opposite and update the TLLI too"
        LOGP(DRLCMAC, LOGL_NOTICE, "%s changing tlli to TLLI=0x%08x\n",
                tbf_name(this), tlli);


and now the "Attach Complete" comes immediately after the Attach Accept.
I will push something like this but we really need a better way to link
the DL/UL TBFs together. 


holger


-- 
- Holger Freyther <hfreyther at sysmocom.de>       http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Schivelbeiner Str. 5
* 10439 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Directors: Holger Freyther, Harald Welte





More information about the osmocom-net-gprs mailing list