<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/24190">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Implement T3141<br><br>Related: OS#1940<br>Change-Id: I154984b835b2b436b1ebe4631a8afcebb7338c65<br>---<br>M src/gprs_pcu.c<br>M src/tbf.cpp<br>M src/tbf.h<br>M src/tbf_dl.cpp<br>M src/tbf_ul.cpp<br>M src/tbf_ul.h<br>M tests/tbf/TbfTest.err<br>7 files changed, 71 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/90/24190/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c</span><br><span>index df439ef..37563ec 100644</span><br><span>--- a/src/gprs_pcu.c</span><br><span>+++ b/src/gprs_pcu.c</span><br><span>@@ -31,6 +31,7 @@</span><br><span> </span><br><span> static struct osmo_tdef T_defs_pcu[] = {</span><br><span>      { .T=3190,  .default_val=5,   .unit=OSMO_TDEF_S,  .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0},</span><br><span style="color: hsl(120, 100%, 40%);">+       { .T=3141,  .default_val=10, .unit=OSMO_TDEF_S, .desc="Timeout for contention resolution procedure (s)", .val=0 },</span><br><span>         { .T=PCU_TDEF_NEIGH_RESOLVE_TO,    .default_val=1000,  .unit=OSMO_TDEF_MS,   .desc="[ARFCN+BSIC]->[RAC+CI] resolution timeout (ms)", .val=0 },</span><br><span>  { .T=PCU_TDEF_SI_RESOLVE_TO,       .default_val=1000,  .unit=OSMO_TDEF_MS,   .desc="RIM RAN-INFO response timeout (ms)",          .val=0 },</span><br><span>        { .T=PCU_TDEF_NEIGH_CACHE_ALIVE,   .default_val=5,  .unit=OSMO_TDEF_S,   .desc="[ARFCN+BSIC]->[RAC+CI] resolution cache entry storage timeout (s)", .val=0 },</span><br><span>diff --git a/src/tbf.cpp b/src/tbf.cpp</span><br><span>index 672146f..fddede6 100644</span><br><span>--- a/src/tbf.cpp</span><br><span>+++ b/src/tbf.cpp</span><br><span>@@ -92,6 +92,7 @@</span><br><span> </span><br><span> static const struct value_string tbf_timers_names[] = {</span><br><span>       OSMO_VALUE_STRING(T0),</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_VALUE_STRING(T3141),</span><br><span>    OSMO_VALUE_STRING(T3169),</span><br><span>    OSMO_VALUE_STRING(T3191),</span><br><span>    OSMO_VALUE_STRING(T3193),</span><br><span>@@ -436,7 +437,7 @@</span><br><span>              return osmo_timer_pending(&Tarr[t]);</span><br><span> </span><br><span>         /* we don't start with T0 because it's internal timer which requires special handling */</span><br><span style="color: hsl(0, 100%, 40%);">-        for (i = T3169; i < T_MAX; i++)</span><br><span style="color: hsl(120, 100%, 40%);">+    for (i = T3141; i < T_MAX; i++)</span><br><span>           if (osmo_timer_pending(&Tarr[i]))</span><br><span>                        return true;</span><br><span> </span><br><span>@@ -469,6 +470,11 @@</span><br><span> </span><br><span> #define T_CBACK(t, diag) static void cb_##t(void *_tbf) { tbf_timeout_free((struct gprs_rlcmac_tbf *)_tbf, t, diag); }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* 3GPP TS 44.018 sec 3.5.2.1.5: On the network side, if timer T3141 elapses</span><br><span style="color: hsl(120, 100%, 40%);">+ * before a successful contention resolution procedure is completed, the newly</span><br><span style="color: hsl(120, 100%, 40%);">+ * allocated temporary block flow is released as specified in 3GPP TS 44.060 and</span><br><span style="color: hsl(120, 100%, 40%);">+ * the packet access is forgotten.*/</span><br><span style="color: hsl(120, 100%, 40%);">+T_CBACK(T3141, true)</span><br><span> T_CBACK(T3169, true)</span><br><span> T_CBACK(T3191, true)</span><br><span> T_CBACK(T3193, false)</span><br><span>@@ -518,6 +524,9 @@</span><br><span>         case T0:</span><br><span>             Tarr[t].cb = tbf_timer_cb;</span><br><span>           break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case T3141:</span><br><span style="color: hsl(120, 100%, 40%);">+           Tarr[t].cb = cb_T3141;</span><br><span style="color: hsl(120, 100%, 40%);">+                break;</span><br><span>       case T3169:</span><br><span>          Tarr[t].cb = cb_T3169;</span><br><span>               break;</span><br><span>@@ -869,7 +878,7 @@</span><br><span>                 gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(this);</span><br><span> </span><br><span>            /* be sure to check first, if contention resolution is done,</span><br><span style="color: hsl(0, 100%, 40%);">-             * otherwise we cannot send the assignment yet */</span><br><span style="color: hsl(120, 100%, 40%);">+              * otherwise we cannot send the assignment yet (3GPP TS 44.060 sec 7.1.3.1) */</span><br><span>               if (!ul_tbf->m_contention_resolution_done) {</span><br><span>                      LOGPTBF(this, LOGL_DEBUG,</span><br><span>                            "Cannot assign DL TBF now, because contention resolution is not finished.\n");</span><br><span>diff --git a/src/tbf.h b/src/tbf.h</span><br><span>index ca6de0f..17f5b18 100644</span><br><span>--- a/src/tbf.h</span><br><span>+++ b/src/tbf.h</span><br><span>@@ -126,6 +126,9 @@</span><br><span>      /* internal assign/reject timer */</span><br><span>   T0,</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       /* Wait contention resolution success on UL TBFs assigned over CCCH */</span><br><span style="color: hsl(120, 100%, 40%);">+        T3141,</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     /* Wait for reuse of USF and TFI(s) after the MS uplink assignment for this TBF is invalid. */</span><br><span>       T3169,</span><br><span> </span><br><span>diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp</span><br><span>index fc53c84..27dc4cf 100644</span><br><span>--- a/src/tbf_dl.cpp</span><br><span>+++ b/src/tbf_dl.cpp</span><br><span>@@ -239,6 +239,10 @@</span><br><span> </span><br><span>   ul_tbf = ms_ul_tbf(ms);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 44.060 sec 7.1.3.1 Initiation of the Packet resource request procedure:</span><br><span style="color: hsl(120, 100%, 40%);">+    * "Furthermore, the mobile station shall not respond to PACKET DOWNLINK ASSIGNMENT</span><br><span style="color: hsl(120, 100%, 40%);">+       * or MULTIPLE TBF DOWNLINK ASSIGNMENT messages before contention resolution is</span><br><span style="color: hsl(120, 100%, 40%);">+        * completed on the mobile station side." */</span><br><span>     if (ul_tbf && ul_tbf->m_contention_resolution_done</span><br><span>         && !ul_tbf->m_final_ack_sent) {</span><br><span>          use_trx = ul_tbf->trx->trx_no;</span><br><span>diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp</span><br><span>index 686eea5..7486b47 100644</span><br><span>--- a/src/tbf_ul.cpp</span><br><span>+++ b/src/tbf_ul.cpp</span><br><span>@@ -173,6 +173,7 @@</span><br><span>      }</span><br><span>    TBF_SET_STATE(tbf, GPRS_RLCMAC_FLOW);</span><br><span>        TBF_ASS_TYPE_SET(tbf, GPRS_RLCMAC_FLAG_CCCH);</span><br><span style="color: hsl(120, 100%, 40%);">+ tbf->contention_resolution_start();</span><br><span>       OSMO_ASSERT(tbf->ms());</span><br><span> </span><br><span>       return tbf;</span><br><span>@@ -300,6 +301,37 @@</span><br><span>   return false;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void gprs_rlcmac_ul_tbf::contention_resolution_start()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     /* 3GPP TS 44.018 sec 11.1.2 Timers on the network side: "This timer is</span><br><span style="color: hsl(120, 100%, 40%);">+   * started when a temporary block flow is allocated with an IMMEDIATE</span><br><span style="color: hsl(120, 100%, 40%);">+  * ASSIGNMENT or an IMMEDIATE PACKET ASSIGNMENT or an EC IMMEDIATE</span><br><span style="color: hsl(120, 100%, 40%);">+     * ASSIGNMENT TYPE 1 message during a packet access procedure. It is</span><br><span style="color: hsl(120, 100%, 40%);">+   * stopped when the mobile station has correctly seized the temporary</span><br><span style="color: hsl(120, 100%, 40%);">+  * block flow."</span><br><span style="color: hsl(120, 100%, 40%);">+   * In our code base, it means we want to do contention resolution</span><br><span style="color: hsl(120, 100%, 40%);">+      * timeout only for one-phase packet access, since two-phase is handled</span><br><span style="color: hsl(120, 100%, 40%);">+        * through SBA structs, which are freed by the PDCH UL Controller if the</span><br><span style="color: hsl(120, 100%, 40%);">+       * single allocated block is lost. */</span><br><span style="color: hsl(120, 100%, 40%);">+ T_START(this, T3141, 3141, "Contention resolution (UL-TBF, CCCH)", true);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+void gprs_rlcmac_ul_tbf::contention_resolution_success()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   if (m_contention_resolution_done)</span><br><span style="color: hsl(120, 100%, 40%);">+             return;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* 3GPP TS 44.060 sec 7a.2.1 Contention Resolution */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* 3GPP TS 44.018 3.5.2.1.4 Packet access completion: The one phase</span><br><span style="color: hsl(120, 100%, 40%);">+      packet access procedure is completed at a successful contention</span><br><span style="color: hsl(120, 100%, 40%);">+       resolution. The mobile station has entered the packet transfer mode.</span><br><span style="color: hsl(120, 100%, 40%);">+          Timer T3141 is stopped on the network side */</span><br><span style="color: hsl(120, 100%, 40%);">+      t_stop(T3141, "Contention resolution success (UL-TBF, CCCH)");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* now we must set this flag, so we are allowed to assign downlink</span><br><span style="color: hsl(120, 100%, 40%);">+     * TBF on PACCH. it is only allowed when TLLI is acknowledged. */</span><br><span style="color: hsl(120, 100%, 40%);">+     m_contention_resolution_done = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct msgb *gprs_rlcmac_ul_tbf::create_ul_ack(uint32_t fn, uint8_t ts)</span><br><span> {</span><br><span>       int final = (state_is(GPRS_RLCMAC_FINISHED));</span><br><span>@@ -333,9 +365,15 @@</span><br><span>         bitvec_pack(ack_vec, msgb_put(msg, 23));</span><br><span>     bitvec_free(ack_vec);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       /* now we must set this flag, so we are allowed to assign downlink</span><br><span style="color: hsl(0, 100%, 40%);">-       * TBF on PACCH. it is only allowed when TLLI is acknowledged. */</span><br><span style="color: hsl(0, 100%, 40%);">-       m_contention_resolution_done = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     /* TS 44.060 7a.2.1.1: "The contention resolution is completed on</span><br><span style="color: hsl(120, 100%, 40%);">+         * the network side when the network receives an RLC data block that</span><br><span style="color: hsl(120, 100%, 40%);">+   * comprises the TLLI value that identifies the mobile station and the</span><br><span style="color: hsl(120, 100%, 40%);">+         * TFI value associated with the TBF."</span><br><span style="color: hsl(120, 100%, 40%);">+    * However, it's handier for us to mark contention resolution success</span><br><span style="color: hsl(120, 100%, 40%);">+      * here since according to spec upon rx UL ACK is the time at which MS</span><br><span style="color: hsl(120, 100%, 40%);">+         * realizes contention resolution succeeds. */</span><br><span style="color: hsl(120, 100%, 40%);">+        if (ms_tlli(ms()) != GSM_RESERVED_TMSI)</span><br><span style="color: hsl(120, 100%, 40%);">+               contention_resolution_success();</span><br><span> </span><br><span>         if (final) {</span><br><span>                 set_polling(new_poll_fn, ts, PDCH_ULC_POLL_UL_ACK);</span><br><span>diff --git a/src/tbf_ul.h b/src/tbf_ul.h</span><br><span>index 0b9be28..9396633 100644</span><br><span>--- a/src/tbf_ul.h</span><br><span>+++ b/src/tbf_ul.h</span><br><span>@@ -87,6 +87,8 @@</span><br><span>         void set_window_size();</span><br><span>      void update_coding_scheme_counter_ul(enum CodingScheme cs);</span><br><span>         void usf_timeout();</span><br><span style="color: hsl(120, 100%, 40%);">+    void contention_resolution_start();</span><br><span style="color: hsl(120, 100%, 40%);">+   void contention_resolution_success();</span><br><span> </span><br><span>    /* Please note that all variables here will be reset when changing</span><br><span>    * from WAIT RELEASE back to FLOW state (re-use of TBF).</span><br><span>diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err</span><br><span>index f1cab16..a205f39 100644</span><br><span>--- a/tests/tbf/TbfTest.err</span><br><span>+++ b/tests/tbf/TbfTest.err</span><br><span>@@ -1456,6 +1456,7 @@</span><br><span> MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL)</span><br><span> TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW</span><br><span> TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654167</span><br><span> Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0</span><br><span> PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184</span><br><span>@@ -2062,6 +2063,7 @@</span><br><span> MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL)</span><br><span> TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW</span><br><span> TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654275</span><br><span> Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0</span><br><span> PDCH(bts=0,trx=0,ts=7) Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184</span><br><span>@@ -6212,6 +6214,7 @@</span><br><span> MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL)</span><br><span> TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW</span><br><span> TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654167</span><br><span> Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0</span><br><span> MS requests Uplink resource on CCCH/RACH: ra=0x79 (8 bit) Fn=2654167 qta=31</span><br><span>@@ -6233,6 +6236,7 @@</span><br><span> MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL)</span><br><span> TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW</span><br><span> TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=1 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654167</span><br><span> Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=1 USF=1</span><br><span> MS requests Uplink resource on CCCH/RACH: ra=0x7a (8 bit) Fn=2654167 qta=31</span><br><span>@@ -6254,6 +6258,7 @@</span><br><span> MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL)</span><br><span> TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW</span><br><span> TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=2 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654167</span><br><span> Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=2 USF=2</span><br><span> MS requests Uplink resource on CCCH/RACH: ra=0x7b (8 bit) Fn=2654167 qta=31</span><br><span>@@ -6275,6 +6280,7 @@</span><br><span> MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL)</span><br><span> TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW</span><br><span> TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=3 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654167</span><br><span> Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=3 USF=3</span><br><span> MS requests Uplink resource on CCCH/RACH: ra=0x7c (8 bit) Fn=2654167 qta=31</span><br><span>@@ -6296,6 +6302,7 @@</span><br><span> MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL)</span><br><span> TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW</span><br><span> TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=4 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654167</span><br><span> Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=4 USF=4</span><br><span> MS requests Uplink resource on CCCH/RACH: ra=0x7d (8 bit) Fn=2654167 qta=31</span><br><span>@@ -6317,6 +6324,7 @@</span><br><span> MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL)</span><br><span> TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW</span><br><span> TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=5 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654167</span><br><span> Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=5 USF=5</span><br><span> MS requests Uplink resource on CCCH/RACH: ra=0x7e (8 bit) Fn=2654167 qta=31</span><br><span>@@ -6338,6 +6346,7 @@</span><br><span> MS(TLLI=0xffffffff, IMSI=, TA=220, 0/0,) Attaching UL TBF: TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL)</span><br><span> TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=NULL) changes state from NULL to FLOW</span><br><span> TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=6 TLLI=0xffffffff DIR=UL STATE=FLOW) starting timer T3141 [Contention resolution (UL-TBF, CCCH)] with 10 sec. 0 microsec, cur_fn=2654167</span><br><span> Modifying MS object, TLLI = 0xffffffff, TA 220 -> 7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=6 USF=6</span><br><span> MS requests Uplink resource on CCCH/RACH: ra=0x7f (8 bit) Fn=2654167 qta=31</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/24190">change 24190</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-pcu/+/24190"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I154984b835b2b436b1ebe4631a8afcebb7338c65 </div>
<div style="display:none"> Gerrit-Change-Number: 24190 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>