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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">tbf: Move T3193 to tbf_state FSM<br><br>Related: OS#2709<br>Change-Id: Icf8249651e34132eb7ba99188a23662dec6f8653<br>---<br>M src/tbf.cpp<br>M src/tbf.h<br>M src/tbf_dl.cpp<br>M src/tbf_fsm.c<br>M src/tbf_fsm.h<br>M tests/tbf/TbfTest.cpp<br>M tests/tbf/TbfTest.err<br>7 files changed, 53 insertions(+), 129 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/tbf.cpp b/src/tbf.cpp</span><br><span>index acd191b..4154d50 100644</span><br><span>--- a/src/tbf.cpp</span><br><span>+++ b/src/tbf.cpp</span><br><span>@@ -69,7 +69,6 @@</span><br><span> static const struct value_string tbf_timers_names[] = {</span><br><span>      OSMO_VALUE_STRING(T3141),</span><br><span>    OSMO_VALUE_STRING(T3191),</span><br><span style="color: hsl(0, 100%, 40%);">-       OSMO_VALUE_STRING(T3193),</span><br><span>    { 0, NULL }</span><br><span> };</span><br><span> </span><br><span>@@ -446,7 +445,6 @@</span><br><span>  * the packet access is forgotten.*/</span><br><span> T_CBACK(T3141, true)</span><br><span> T_CBACK(T3191, true)</span><br><span style="color: hsl(0, 100%, 40%);">-T_CBACK(T3193, false)</span><br><span> </span><br><span> void gprs_rlcmac_tbf::t_start(enum tbf_timers t, int T, const char *reason, bool force,</span><br><span>                            const char *file, unsigned line)</span><br><span>@@ -495,9 +493,6 @@</span><br><span>         case T3191:</span><br><span>          Tarr[t].cb = cb_T3191;</span><br><span>               break;</span><br><span style="color: hsl(0, 100%, 40%);">-  case T3193:</span><br><span style="color: hsl(0, 100%, 40%);">-             Tarr[t].cb = cb_T3193;</span><br><span style="color: hsl(0, 100%, 40%);">-          break;</span><br><span>       default:</span><br><span>             LOGPSRC(DTBF, LOGL_ERROR, file, line, "%s attempting to set callback for unknown timer %s [%s], cur_fn=%d\n",</span><br><span>                   tbf_name(this), get_value_string(tbf_timers_names, t), reason, current_fn);</span><br><span>diff --git a/src/tbf.h b/src/tbf.h</span><br><span>index ffd6cc2..0932933 100644</span><br><span>--- a/src/tbf.h</span><br><span>+++ b/src/tbf.h</span><br><span>@@ -99,10 +99,6 @@</span><br><span>          Wait for reuse of TFI(s) after sending the PACKET TBF RELEASE for an MBMS radio bearer. */</span><br><span>        T3191,</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      /* Wait for reuse of TFI(s) after reception of the final PACKET DOWNLINK ACK/NACK from the</span><br><span style="color: hsl(0, 100%, 40%);">-         MS for this TBF. */</span><br><span style="color: hsl(0, 100%, 40%);">-  T3193,</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>       T_MAX</span><br><span> };</span><br><span> </span><br><span>diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp</span><br><span>index 65785f2..885f0d4 100644</span><br><span>--- a/src/tbf_dl.cpp</span><br><span>+++ b/src/tbf_dl.cpp</span><br><span>@@ -1141,8 +1141,16 @@</span><br><span> </span><br><span> int gprs_rlcmac_dl_tbf::rcvd_dl_final_ack()</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint16_t received;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_FINAL_ACK_RECVD, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-    release();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* range V(A)..V(S)-1 */</span><br><span style="color: hsl(120, 100%, 40%);">+      received = m_window.count_unacked();</span><br><span style="color: hsl(120, 100%, 40%);">+  /* report all outstanding packets as received */</span><br><span style="color: hsl(120, 100%, 40%);">+      gprs_rlcmac_received_lost(this, received, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ m_tx_counter = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     m_window.reset();</span><br><span> </span><br><span>        /* check for LLC PDU in the LLC Queue */</span><br><span>     if (llc_queue_size(llc_queue()) > 0)</span><br><span>@@ -1152,28 +1160,6 @@</span><br><span>     return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gprs_rlcmac_dl_tbf::release()</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    uint16_t received;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      /* range V(A)..V(S)-1 */</span><br><span style="color: hsl(0, 100%, 40%);">-        received = m_window.count_unacked();</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    /* report all outstanding packets as received */</span><br><span style="color: hsl(0, 100%, 40%);">-        gprs_rlcmac_received_lost(this, received, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   /* start T3193 */</span><br><span style="color: hsl(0, 100%, 40%);">-       T_START(this, T3193, 3193, "release (DL-TBF)", true);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* reset rlc states */</span><br><span style="color: hsl(0, 100%, 40%);">-  m_tx_counter = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-       m_window.reset();</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_ASSIGN_DEL_CCCH, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> int gprs_rlcmac_dl_tbf::rcvd_dl_ack(bool final_ack, unsigned first_bsn,</span><br><span>        struct bitvec *rbb)</span><br><span> {</span><br><span>diff --git a/src/tbf_fsm.c b/src/tbf_fsm.c</span><br><span>index 42c5118..1641f4d 100644</span><br><span>--- a/src/tbf_fsm.c</span><br><span>+++ b/src/tbf_fsm.c</span><br><span>@@ -43,7 +43,6 @@</span><br><span> const struct value_string tbf_fsm_event_names[] = {</span><br><span>         { TBF_EV_ASSIGN_ADD_CCCH, "ASSIGN_ADD_CCCH" },</span><br><span>     { TBF_EV_ASSIGN_ADD_PACCH, "ASSIGN_ADD_PACCH" },</span><br><span style="color: hsl(0, 100%, 40%);">-      { TBF_EV_ASSIGN_DEL_CCCH, "ASSIGN_DEL_CCCH" },</span><br><span>     { TBF_EV_ASSIGN_ACK_PACCH, "ASSIGN_ACK_PACCH" },</span><br><span>   { TBF_EV_ASSIGN_READY_CCCH, "ASSIGN_READY_CCCH" },</span><br><span>         { TBF_EV_ASSIGN_PCUIF_CNF, "ASSIGN_PCUIF_CNF" },</span><br><span>@@ -267,6 +266,23 @@</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void st_wait_release_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    struct tbf_fsm_ctx *ctx = (struct tbf_fsm_ctx *)fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+  unsigned long val_s, val_ms, val_us;</span><br><span style="color: hsl(120, 100%, 40%);">+  OSMO_ASSERT(tbf_direction(ctx->tbf) == GPRS_RLCMAC_DL_TBF);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      fi->T = 3193;</span><br><span style="color: hsl(120, 100%, 40%);">+      val_ms = osmo_tdef_get(tbf_ms(ctx->tbf)->bts->T_defs_bts, fi->T, OSMO_TDEF_MS, -1);</span><br><span style="color: hsl(120, 100%, 40%);">+       val_s = val_ms / 1000;</span><br><span style="color: hsl(120, 100%, 40%);">+        val_us = (val_ms % 1000) * 1000;</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGPTBF(ctx->tbf, LOGL_DEBUG, "starting timer T%u with %lu sec. %lu microsec\n",</span><br><span style="color: hsl(120, 100%, 40%);">+         fi->T, val_s, val_us);</span><br><span style="color: hsl(120, 100%, 40%);">+     osmo_timer_schedule(&fi->timer, val_s, val_us);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      mod_ass_type(ctx, GPRS_RLCMAC_FLAG_CCCH, false);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void st_wait_release(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span>      struct tbf_fsm_ctx *ctx = (struct tbf_fsm_ctx *)fi->priv;</span><br><span>@@ -307,13 +323,6 @@</span><br><span>  osmo_timer_schedule(&fi->timer, val, 0);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void tbf_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  /* TODO: needed ?</span><br><span style="color: hsl(0, 100%, 40%);">-        * struct tbf_fsm_ctx *ctx = (struct tbf_fsm_ctx *)fi->priv;</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%);">-</span><br><span> static void handle_timeout_X2002(struct tbf_fsm_ctx *ctx)</span><br><span> {</span><br><span>       struct gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(ctx->tbf);</span><br><span>@@ -354,6 +363,7 @@</span><br><span>            LOGPTBF(ctx->tbf, LOGL_NOTICE, "releasing due to PACCH assignment timeout.\n");</span><br><span>                 /* fall-through */</span><br><span>   case 3169:</span><br><span style="color: hsl(120, 100%, 40%);">+    case 3193:</span><br><span>   case 3195:</span><br><span>           tbf_free(ctx->tbf);</span><br><span>               break;</span><br><span>@@ -427,6 +437,7 @@</span><br><span>                         X(TBF_ST_RELEASING),</span><br><span>                 .name = "WAIT_RELEASE",</span><br><span>            .action = st_wait_release,</span><br><span style="color: hsl(120, 100%, 40%);">+            .onenter = st_wait_release_on_enter,</span><br><span>         },</span><br><span>   [TBF_ST_RELEASING] = {</span><br><span>               .in_event_mask =</span><br><span>@@ -438,28 +449,13 @@</span><br><span>     },</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void tbf_fsm_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- struct tbf_fsm_ctx *ctx = (struct tbf_fsm_ctx *)fi->priv;</span><br><span style="color: hsl(0, 100%, 40%);">-    switch (event) {</span><br><span style="color: hsl(0, 100%, 40%);">-        case TBF_EV_ASSIGN_DEL_CCCH:</span><br><span style="color: hsl(0, 100%, 40%);">-            mod_ass_type(ctx, GPRS_RLCMAC_FLAG_CCCH, false);</span><br><span style="color: hsl(0, 100%, 40%);">-                break;</span><br><span style="color: hsl(0, 100%, 40%);">-  default:</span><br><span style="color: hsl(0, 100%, 40%);">-                OSMO_ASSERT(0);</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%);">-</span><br><span> struct osmo_fsm tbf_fsm = {</span><br><span>    .name = "TBF",</span><br><span>     .states = tbf_fsm_states,</span><br><span>    .num_states = ARRAY_SIZE(tbf_fsm_states),</span><br><span>    .timer_cb = tbf_fsm_timer_cb,</span><br><span style="color: hsl(0, 100%, 40%);">-   .cleanup = tbf_fsm_cleanup,</span><br><span>  .log_subsys = DTBF,</span><br><span>  .event_names = tbf_fsm_event_names,</span><br><span style="color: hsl(0, 100%, 40%);">-     .allstate_action = tbf_fsm_allstate_action,</span><br><span style="color: hsl(0, 100%, 40%);">-     .allstate_event_mask = X(TBF_EV_ASSIGN_DEL_CCCH),</span><br><span> };</span><br><span> </span><br><span> static __attribute__((constructor)) void tbf_fsm_init(void)</span><br><span>diff --git a/src/tbf_fsm.h b/src/tbf_fsm.h</span><br><span>index 2f63eef..d6fe41f 100644</span><br><span>--- a/src/tbf_fsm.h</span><br><span>+++ b/src/tbf_fsm.h</span><br><span>@@ -29,7 +29,6 @@</span><br><span> enum tbf_fsm_event {</span><br><span>      TBF_EV_ASSIGN_ADD_CCCH, /* An assignment is sent over CCCH and confirmation from MS is pending */</span><br><span>    TBF_EV_ASSIGN_ADD_PACCH, /* An assignment is sent over PACCH and confirmation from MS is pending */</span><br><span style="color: hsl(0, 100%, 40%);">-     TBF_EV_ASSIGN_DEL_CCCH, /* An assignment previously sent over CCCH has been confirmed by MS */</span><br><span>       TBF_EV_ASSIGN_ACK_PACCH, /*  We received a CTRL ACK confirming assignment started on PACCH */</span><br><span>        TBF_EV_ASSIGN_READY_CCCH, /* TBF Start Time timer triggered */</span><br><span>       TBF_EV_ASSIGN_PCUIF_CNF, /* Transmission of IMM.ASS for DL TBF to the MS confirmed by BTS over PCUIF */</span><br><span>diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp</span><br><span>index 62a2582..ae12f1e 100644</span><br><span>--- a/tests/tbf/TbfTest.cpp</span><br><span>+++ b/tests/tbf/TbfTest.cpp</span><br><span>@@ -89,7 +89,7 @@</span><br><span> {</span><br><span>    OSMO_ASSERT(tbf);</span><br><span>    if (tbf->state_is(TBF_ST_WAIT_RELEASE))</span><br><span style="color: hsl(0, 100%, 40%);">-              OSMO_ASSERT(tbf->timers_pending(T3191) || tbf->timers_pending(T3193));</span><br><span style="color: hsl(120, 100%, 40%);">+          OSMO_ASSERT(tbf->timers_pending(T3191) || osmo_timer_pending(&tbf->state_fsm.fi->timer));</span><br><span>       if (tbf->state_is(TBF_ST_RELEASING))</span><br><span>              OSMO_ASSERT(tbf->timers_pending(T_MAX));</span><br><span> }</span><br><span>diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err</span><br><span>index afc5a8f..a211d22 100644</span><br><span>--- a/tests/tbf/TbfTest.err</span><br><span>+++ b/tests/tbf/TbfTest.err</span><br><span>@@ -116,8 +116,7 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) ********** DL-TBF starts here **********</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) Allocating DL TBF</span><br><span> TBF{NULL}: Allocated</span><br><span>@@ -145,7 +144,6 @@</span><br><span> TBF(DL-TFI_1){NULL}: state_chg to ASSIGN</span><br><span> TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) Starting timer X2001 [assignment (PACCH)] with 2 sec. 0 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 00, TFIs = 00000002.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE)</span><br><span> ********** DL-TBF ends here **********</span><br><span>@@ -231,8 +229,7 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) ********** DL-TBF starts here **********</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) Allocating DL TBF</span><br><span> TBF{NULL}: Allocated</span><br><span>@@ -267,7 +264,6 @@</span><br><span> UL_ASS_TBF(DL-TFI_1){NONE}: Deallocated</span><br><span> DL_ASS_TBF(DL-TFI_1){NONE}: Deallocated</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE)</span><br><span> ********** DL-TBF ends here **********</span><br><span>@@ -534,10 +530,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Final ACK received.</span><br><span> TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0,) Destroying MS object</span><br><span>@@ -3233,8 +3227,7 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received.</span><br><span> TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654379</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here **********</span><br><span> MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF</span><br><span> TBF{NULL}: Allocated</span><br><span>@@ -3346,7 +3339,6 @@</span><br><span> DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: Received Event RX_ASS_CTRL_ACK</span><br><span> DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: state_chg to NONE</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 01, TFIs = 00000002.</span><br><span> MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE)</span><br><span> ********** DL-TBF ends here **********</span><br><span>@@ -4322,10 +4314,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=112</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -4582,10 +4572,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=91</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -4802,10 +4790,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=69</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -5006,10 +4992,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=60</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -5194,10 +5178,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=52</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -5358,10 +5340,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=39</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -5531,10 +5511,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=34</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -5695,10 +5673,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=30</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -5848,10 +5824,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=26</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -5923,10 +5897,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=58</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -5995,10 +5967,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=58</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -6067,10 +6037,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=58</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -6163,10 +6131,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=63</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -6258,10 +6224,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=63</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -6353,10 +6317,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=63</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -6448,10 +6410,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=63</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -6529,10 +6489,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -6608,10 +6566,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -6687,10 +6643,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span>@@ -6773,10 +6727,8 @@</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received.</span><br><span> TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD</span><br><span> TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec</span><br><span> TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF]</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS)</span><br><span> MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/25112">change 25112</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/+/25112"/><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: Icf8249651e34132eb7ba99188a23662dec6f8653 </div>
<div style="display:none"> Gerrit-Change-Number: 25112 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </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: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>