<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/20919">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">alloc_algo_b: Select TRX with least assigned TFIs during TBF alloc<br><br>Before this patch, it would always allocate all TBFs on the first TRX<br>until all TFIs were filled, then second, and so on. But it would<br>actually fail around 8th MS requesting an UL TBF because despite a TFI<br>was successfuly assigned, because all USFs were already exhausted for<br>that PDCH.<br><br>Related: OS#1775<br>Change-Id: Iccfc8acfbfdc258ed16cc5af01f12b376fe73b72<br>---<br>M src/bts.cpp<br>M tests/tbf/TbfTest.cpp<br>M tests/tbf/TbfTest.err<br>3 files changed, 100 insertions(+), 132 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/bts.cpp b/src/bts.cpp</span><br><span>index da62b30..be957fa 100644</span><br><span>--- a/src/bts.cpp</span><br><span>+++ b/src/bts.cpp</span><br><span>@@ -536,18 +536,51 @@</span><br><span>     return m_bts.trx[trx].pdch[ts].ul_tbf_by_tfi(tfi);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static unsigned int trx_count_free_tfi(const struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t *first_free_tfi)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        const struct gprs_rlcmac_pdch *pdch;</span><br><span style="color: hsl(120, 100%, 40%);">+  uint8_t ts;</span><br><span style="color: hsl(120, 100%, 40%);">+   unsigned int i;</span><br><span style="color: hsl(120, 100%, 40%);">+       unsigned int free_tfi_cnt = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+        bool has_pdch = false;</span><br><span style="color: hsl(120, 100%, 40%);">+        uint32_t mask = NO_FREE_TFI;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                pdch = &trx->pdch[ts];</span><br><span style="color: hsl(120, 100%, 40%);">+         if (!pdch->is_enabled())</span><br><span style="color: hsl(120, 100%, 40%);">+                   continue;</span><br><span style="color: hsl(120, 100%, 40%);">+             has_pdch = true;</span><br><span style="color: hsl(120, 100%, 40%);">+              mask &= ~pdch->assigned_tfi(dir);</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (!has_pdch || !mask) {</span><br><span style="color: hsl(120, 100%, 40%);">+             *first_free_tfi = (uint8_t)-1;</span><br><span style="color: hsl(120, 100%, 40%);">+                return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Count free tfis and return */</span><br><span style="color: hsl(120, 100%, 40%);">+      for (i = 0; i < sizeof(mask) * 8 ; i++) {</span><br><span style="color: hsl(120, 100%, 40%);">+          if (mask & 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   if (free_tfi_cnt == 0)</span><br><span style="color: hsl(120, 100%, 40%);">+                                *first_free_tfi = i;</span><br><span style="color: hsl(120, 100%, 40%);">+                  free_tfi_cnt++;</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+             mask >>= 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     return free_tfi_cnt;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*</span><br><span style="color: hsl(0, 100%, 40%);">- * Search for free TFI and return TFI, TRX.</span><br><span style="color: hsl(0, 100%, 40%);">- * This method returns the first TFI that is currently not used in any PDCH of</span><br><span style="color: hsl(0, 100%, 40%);">- * a TRX. The first TRX that contains such an TFI is returned. Negative values</span><br><span style="color: hsl(0, 100%, 40%);">- * indicate errors.</span><br><span style="color: hsl(120, 100%, 40%);">+ * Search for free TFI and return TFI, TRX. This method returns the first TFI</span><br><span style="color: hsl(120, 100%, 40%);">+ * that is currently not used in any PDCH of a the TRX with least TFIs currently</span><br><span style="color: hsl(120, 100%, 40%);">+ * assigned. Negative values indicate errors.</span><br><span>  */</span><br><span> int BTS::tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx) const</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        const struct gprs_rlcmac_pdch *pdch;</span><br><span style="color: hsl(0, 100%, 40%);">-    uint32_t free_tfis;</span><br><span style="color: hsl(0, 100%, 40%);">-     bool has_pdch = false;</span><br><span style="color: hsl(0, 100%, 40%);">-  uint8_t trx_from, trx_to, trx, ts, tfi;</span><br><span style="color: hsl(120, 100%, 40%);">+       uint8_t trx_from, trx_to, trx;</span><br><span style="color: hsl(120, 100%, 40%);">+        uint8_t best_trx_nr = 0xff;</span><br><span style="color: hsl(120, 100%, 40%);">+   unsigned int best_cnt = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+    uint8_t best_first_tfi = 0;</span><br><span> </span><br><span>      if (use_trx >= 0 && use_trx < 8)</span><br><span>               trx_from = trx_to = use_trx;</span><br><span>@@ -558,48 +591,27 @@</span><br><span> </span><br><span>     /* find a TFI that is unused on all PDCH */</span><br><span>  for (trx = trx_from; trx <= trx_to; trx++) {</span><br><span style="color: hsl(0, 100%, 40%);">-         bool trx_has_pdch = false;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-              free_tfis = NO_FREE_TFI;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                for (ts = 0; ts < 8; ts++) {</span><br><span style="color: hsl(0, 100%, 40%);">-                 pdch = &m_bts.trx[trx].pdch[ts];</span><br><span style="color: hsl(0, 100%, 40%);">-                    if (!pdch->is_enabled())</span><br><span style="color: hsl(0, 100%, 40%);">-                             continue;</span><br><span style="color: hsl(0, 100%, 40%);">-                       free_tfis &= ~pdch->assigned_tfi(dir);</span><br><span style="color: hsl(0, 100%, 40%);">-                   trx_has_pdch = true;</span><br><span style="color: hsl(0, 100%, 40%);">-                    has_pdch = true;</span><br><span style="color: hsl(120, 100%, 40%);">+              uint8_t tmp_first_tfi;</span><br><span style="color: hsl(120, 100%, 40%);">+                unsigned int tmp_cnt;</span><br><span style="color: hsl(120, 100%, 40%);">+         tmp_cnt = trx_count_free_tfi(&m_bts.trx[trx], dir, &tmp_first_tfi);</span><br><span style="color: hsl(120, 100%, 40%);">+           if (tmp_cnt > best_cnt) {</span><br><span style="color: hsl(120, 100%, 40%);">+                  best_cnt = tmp_cnt;</span><br><span style="color: hsl(120, 100%, 40%);">+                   best_first_tfi = tmp_first_tfi;</span><br><span style="color: hsl(120, 100%, 40%);">+                       best_trx_nr = trx;</span><br><span>           }</span><br><span style="color: hsl(0, 100%, 40%);">-               if (trx_has_pdch && free_tfis)</span><br><span style="color: hsl(0, 100%, 40%);">-                  break;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-          free_tfis = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-       if (!has_pdch) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH available.\n");</span><br><span style="color: hsl(0, 100%, 40%);">-           return -EINVAL;</span><br><span>      }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   if (!free_tfis) {</span><br><span style="color: hsl(120, 100%, 40%);">+     if (best_trx_nr == 0xff || best_cnt == 0) {</span><br><span>          LOGP(DRLCMAC, LOGL_NOTICE, "No TFI available (suggested TRX: %d).\n", use_trx);</span><br><span>            return -EBUSY;</span><br><span>       }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(best_first_tfi < 32);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        LOGP(DRLCMAC, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">-               "Searching for first unallocated TFI: TRX=%d\n", trx);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        /* find the first */</span><br><span style="color: hsl(0, 100%, 40%);">-    for (tfi = 0; tfi < 32; tfi++) {</span><br><span style="color: hsl(0, 100%, 40%);">-             if (free_tfis & 1 << tfi)</span><br><span style="color: hsl(0, 100%, 40%);">-                     break;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       OSMO_ASSERT(tfi < 32);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       LOGP(DRLCMAC, LOGL_DEBUG, " Found TFI=%d.\n", tfi);</span><br><span style="color: hsl(0, 100%, 40%);">-   *_trx = trx;</span><br><span style="color: hsl(0, 100%, 40%);">-    return tfi;</span><br><span style="color: hsl(120, 100%, 40%);">+   LOGP(DRLCMAC, LOGL_DEBUG, "Found first unallocated TRX=%d TFI=%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             best_trx_nr, best_first_tfi);</span><br><span style="color: hsl(120, 100%, 40%);">+    *_trx = best_trx_nr;</span><br><span style="color: hsl(120, 100%, 40%);">+  return best_first_tfi;</span><br><span> }</span><br><span> </span><br><span> int BTS::rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn)</span><br><span>diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp</span><br><span>index d1fdfba..d4a5618 100644</span><br><span>--- a/tests/tbf/TbfTest.cpp</span><br><span>+++ b/tests/tbf/TbfTest.cpp</span><br><span>@@ -197,6 +197,7 @@</span><br><span>         tfi = the_bts->tfi_find_free(GPRS_RLCMAC_DL_TBF, &trx_no, -1);</span><br><span>        OSMO_ASSERT(tfi >= 0);</span><br><span>    dl_tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, true);</span><br><span style="color: hsl(120, 100%, 40%);">+     OSMO_ASSERT(dl_tbf);</span><br><span>         dl_tbf->set_ta(0);</span><br><span>        check_tbf(dl_tbf);</span><br><span> </span><br><span>diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err</span><br><span>index 1432e9c..8691e4c 100644</span><br><span>--- a/tests/tbf/TbfTest.err</span><br><span>+++ b/tests/tbf/TbfTest.err</span><br><span>@@ -42,8 +42,7 @@</span><br><span> === start test_tbf_final_ack ===</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=45/0</span><br><span> [DL] algo A <single> (suggested TRX: 0): Alloc start</span><br><span>@@ -132,8 +131,7 @@</span><br><span> === start test_tbf_final_ack ===</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=45/0</span><br><span> [DL] algo A <single> (suggested TRX: 0): Alloc start</span><br><span>@@ -222,8 +220,7 @@</span><br><span> === start test_tbf_delayed_release ===</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=45/0</span><br><span> [DL] algo A <single> (suggested TRX: 0): Alloc start</span><br><span>@@ -477,8 +474,7 @@</span><br><span> === start test_tbf_imsi ===</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=45/0</span><br><span> [DL] algo A <single> (suggested TRX: 0): Alloc start</span><br><span>@@ -499,8 +495,7 @@</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=1.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=1</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=45/0</span><br><span> [DL] algo A <single> (suggested TRX: 0): Alloc start</span><br><span>@@ -1443,8 +1438,7 @@</span><br><span> MSG = 07 01 04 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 </span><br><span> === end test_tbf_dl_llc_loss ===</span><br><span> === start test_tbf_single_phase ===</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> MS requests Uplink resource on CCCH/RACH: ra=0x03 (8 bit) Fn=2654167 qta=31</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> ********** UL-TBF starts here **********</span><br><span>@@ -1518,8 +1512,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -1599,8 +1592,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -1724,8 +1716,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654335 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=1.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=1</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654292, TS=7 (curr FN 2654335)</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet|</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span>@@ -1791,8 +1782,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -1880,8 +1870,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654327 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> MS requests UL TBF in packet resource request of single block, so we provide one:</span><br><span>@@ -1933,8 +1922,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -2018,8 +2006,7 @@</span><br><span> PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> Detaching TBF from MS object, TLLI = 0xf1223344, TBF = TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW)</span><br><span> ********** UL-TBF ends here **********</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> MS requests Uplink resource on CCCH/RACH: ra=0x03 (8 bit) Fn=2654275 qta=31</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> ********** UL-TBF starts here **********</span><br><span>@@ -2078,8 +2065,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -3023,8 +3009,7 @@</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=12/0</span><br><span> [DL] algo B <multi> (suggested TRX: 0): Alloc start</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> Slot Allocation (Algorithm B) for class 12</span><br><span> - Skipping TS 0, because not enabled</span><br><span> - Skipping TS 1, because not enabled</span><br><span>@@ -3063,8 +3048,7 @@</span><br><span> Allocating DL TBF: MS_CLASS=12/12</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span> [DL] algo B <multi> (suggested TRX: 0): Alloc start</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> Slot Allocation (Algorithm B) for class 12</span><br><span> - Skipping TS 0, because not enabled</span><br><span> - Skipping TS 1, because not enabled</span><br><span>@@ -3104,8 +3088,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -3194,8 +3177,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -3414,8 +3396,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -3721,8 +3702,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -3978,8 +3958,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -4197,8 +4176,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -4384,8 +4362,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -4551,8 +4528,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -4700,8 +4676,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -4844,8 +4819,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -4977,8 +4951,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5112,8 +5085,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5168,8 +5140,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5224,8 +5195,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5280,8 +5250,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5352,8 +5321,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5424,8 +5392,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5496,8 +5463,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5570,8 +5536,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5633,8 +5598,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5696,8 +5660,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5759,8 +5722,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -5831,8 +5793,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -5943,8 +5904,7 @@</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span> [DL] algo B <single> (suggested TRX: 0): Alloc start</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> Slot Allocation (Algorithm B) for class 11</span><br><span> - Skipping TS 0, because not enabled</span><br><span> - Skipping TS 1, because not enabled</span><br><span>@@ -5966,8 +5926,7 @@</span><br><span> ********** DL-TBF update **********</span><br><span> PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> [DL] algo B <multi> (suggested TRX: -1): Alloc start</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> - Selected DL slots: (TS=0)"..DDDD.."(TS=7), multi</span><br><span> [DL] algo B <multi> (suggested TRX: -1): using 4 slots</span><br><span> - Assigning DL TS 2</span><br><span>@@ -5996,8 +5955,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -6098,8 +6056,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS</span><br><span>@@ -6320,8 +6277,7 @@</span><br><span> MS requests single block allocation</span><br><span> Allocated a single block at SBFn=2654270 TRX=0 TS=7</span><br><span> Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> ------------------------- RX : Uplink Control Block -------------------------</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span>@@ -7723,8 +7679,7 @@</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11</span><br><span> Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11</span><br><span style="color: hsl(0, 100%, 40%);">-Searching for first unallocated TFI: TRX=0</span><br><span style="color: hsl(0, 100%, 40%);">- Found TFI=0.</span><br><span style="color: hsl(120, 100%, 40%);">+Found first unallocated TRX=0 TFI=0</span><br><span> ********** DL-TBF starts here **********</span><br><span> Allocating DL TBF: MS_CLASS=11/11</span><br><span> [DL] algo A <single> (suggested TRX: 0): Alloc start</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/20919">change 20919</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/+/20919"/><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: Iccfc8acfbfdc258ed16cc5af01f12b376fe73b72 </div>
<div style="display:none"> Gerrit-Change-Number: 20919 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>