From f48de627f4dacd867fabec8161f29e88894ee17e Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 30 Jul 2021 14:48:06 +0200 Subject: [PATCH] tbf: Move T3193 to tbf_state FSM Related: OS#2709 Change-Id: Icf8249651e34132eb7ba99188a23662dec6f8653 --- src/tbf.cpp | 5 --- src/tbf.h | 4 -- src/tbf_dl.cpp | 32 ++++----------- src/tbf_fsm.c | 42 +++++++++---------- src/tbf_fsm.h | 1 - tests/tbf/TbfTest.cpp | 2 +- tests/tbf/TbfTest.err | 96 +++++++++++-------------------------------- 7 files changed, 53 insertions(+), 129 deletions(-) diff --git a/src/tbf.cpp b/src/tbf.cpp index acd191be..4154d501 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -69,7 +69,6 @@ static const struct value_string tbf_counters_names[] = { static const struct value_string tbf_timers_names[] = { OSMO_VALUE_STRING(T3141), OSMO_VALUE_STRING(T3191), - OSMO_VALUE_STRING(T3193), { 0, NULL } }; @@ -446,7 +445,6 @@ static inline void tbf_timeout_free(struct gprs_rlcmac_tbf *tbf, enum tbf_timers * the packet access is forgotten.*/ T_CBACK(T3141, true) T_CBACK(T3191, true) -T_CBACK(T3193, false) void gprs_rlcmac_tbf::t_start(enum tbf_timers t, int T, const char *reason, bool force, const char *file, unsigned line) @@ -495,9 +493,6 @@ void gprs_rlcmac_tbf::t_start(enum tbf_timers t, int T, const char *reason, bool case T3191: Tarr[t].cb = cb_T3191; break; - case T3193: - Tarr[t].cb = cb_T3193; - break; default: LOGPSRC(DTBF, LOGL_ERROR, file, line, "%s attempting to set callback for unknown timer %s [%s], cur_fn=%d\n", tbf_name(this), get_value_string(tbf_timers_names, t), reason, current_fn); diff --git a/src/tbf.h b/src/tbf.h index ffd6cc20..09329333 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -99,10 +99,6 @@ enum tbf_timers { Wait for reuse of TFI(s) after sending the PACKET TBF RELEASE for an MBMS radio bearer. */ T3191, - /* Wait for reuse of TFI(s) after reception of the final PACKET DOWNLINK ACK/NACK from the - MS for this TBF. */ - T3193, - T_MAX }; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 65785f20..885f0d46 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -1141,8 +1141,16 @@ int gprs_rlcmac_dl_tbf::update_window(unsigned first_bsn, int gprs_rlcmac_dl_tbf::rcvd_dl_final_ack() { + uint16_t received; + osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_FINAL_ACK_RECVD, NULL); - release(); + + /* range V(A)..V(S)-1 */ + received = m_window.count_unacked(); + /* report all outstanding packets as received */ + gprs_rlcmac_received_lost(this, received, 0); + m_tx_counter = 0; + m_window.reset(); /* check for LLC PDU in the LLC Queue */ if (llc_queue_size(llc_queue()) > 0) @@ -1152,28 +1160,6 @@ int gprs_rlcmac_dl_tbf::rcvd_dl_final_ack() return 0; } -int gprs_rlcmac_dl_tbf::release() -{ - uint16_t received; - - /* range V(A)..V(S)-1 */ - received = m_window.count_unacked(); - - /* report all outstanding packets as received */ - gprs_rlcmac_received_lost(this, received, 0); - - /* start T3193 */ - T_START(this, T3193, 3193, "release (DL-TBF)", true); - - /* reset rlc states */ - m_tx_counter = 0; - m_window.reset(); - - osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_ASSIGN_DEL_CCCH, NULL); - - return 0; -} - int gprs_rlcmac_dl_tbf::rcvd_dl_ack(bool final_ack, unsigned first_bsn, struct bitvec *rbb) { diff --git a/src/tbf_fsm.c b/src/tbf_fsm.c index 42c5118e..1641f4dc 100644 --- a/src/tbf_fsm.c +++ b/src/tbf_fsm.c @@ -43,7 +43,6 @@ const struct osmo_tdef_state_timeout tbf_fsm_timeouts[32] = { const struct value_string tbf_fsm_event_names[] = { { TBF_EV_ASSIGN_ADD_CCCH, "ASSIGN_ADD_CCCH" }, { TBF_EV_ASSIGN_ADD_PACCH, "ASSIGN_ADD_PACCH" }, - { TBF_EV_ASSIGN_DEL_CCCH, "ASSIGN_DEL_CCCH" }, { TBF_EV_ASSIGN_ACK_PACCH, "ASSIGN_ACK_PACCH" }, { TBF_EV_ASSIGN_READY_CCCH, "ASSIGN_READY_CCCH" }, { TBF_EV_ASSIGN_PCUIF_CNF, "ASSIGN_PCUIF_CNF" }, @@ -267,6 +266,23 @@ static void st_finished(struct osmo_fsm_inst *fi, uint32_t event, void *data) } } +static void st_wait_release_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct tbf_fsm_ctx *ctx = (struct tbf_fsm_ctx *)fi->priv; + unsigned long val_s, val_ms, val_us; + OSMO_ASSERT(tbf_direction(ctx->tbf) == GPRS_RLCMAC_DL_TBF); + + fi->T = 3193; + val_ms = osmo_tdef_get(tbf_ms(ctx->tbf)->bts->T_defs_bts, fi->T, OSMO_TDEF_MS, -1); + val_s = val_ms / 1000; + val_us = (val_ms % 1000) * 1000; + LOGPTBF(ctx->tbf, LOGL_DEBUG, "starting timer T%u with %lu sec. %lu microsec\n", + fi->T, val_s, val_us); + osmo_timer_schedule(&fi->timer, val_s, val_us); + + mod_ass_type(ctx, GPRS_RLCMAC_FLAG_CCCH, false); +} + static void st_wait_release(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct tbf_fsm_ctx *ctx = (struct tbf_fsm_ctx *)fi->priv; @@ -307,13 +323,6 @@ static void st_releasing_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) osmo_timer_schedule(&fi->timer, val, 0); } -static void tbf_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) -{ - /* TODO: needed ? - * struct tbf_fsm_ctx *ctx = (struct tbf_fsm_ctx *)fi->priv; - */ -} - static void handle_timeout_X2002(struct tbf_fsm_ctx *ctx) { struct gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(ctx->tbf); @@ -354,6 +363,7 @@ static int tbf_fsm_timer_cb(struct osmo_fsm_inst *fi) LOGPTBF(ctx->tbf, LOGL_NOTICE, "releasing due to PACCH assignment timeout.\n"); /* fall-through */ case 3169: + case 3193: case 3195: tbf_free(ctx->tbf); break; @@ -427,6 +437,7 @@ static struct osmo_fsm_state tbf_fsm_states[] = { X(TBF_ST_RELEASING), .name = "WAIT_RELEASE", .action = st_wait_release, + .onenter = st_wait_release_on_enter, }, [TBF_ST_RELEASING] = { .in_event_mask = @@ -438,28 +449,13 @@ static struct osmo_fsm_state tbf_fsm_states[] = { }, }; -void tbf_fsm_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) -{ - struct tbf_fsm_ctx *ctx = (struct tbf_fsm_ctx *)fi->priv; - switch (event) { - case TBF_EV_ASSIGN_DEL_CCCH: - mod_ass_type(ctx, GPRS_RLCMAC_FLAG_CCCH, false); - break; - default: - OSMO_ASSERT(0); - } -} - struct osmo_fsm tbf_fsm = { .name = "TBF", .states = tbf_fsm_states, .num_states = ARRAY_SIZE(tbf_fsm_states), .timer_cb = tbf_fsm_timer_cb, - .cleanup = tbf_fsm_cleanup, .log_subsys = DTBF, .event_names = tbf_fsm_event_names, - .allstate_action = tbf_fsm_allstate_action, - .allstate_event_mask = X(TBF_EV_ASSIGN_DEL_CCCH), }; static __attribute__((constructor)) void tbf_fsm_init(void) diff --git a/src/tbf_fsm.h b/src/tbf_fsm.h index 2f63eef2..d6fe41f2 100644 --- a/src/tbf_fsm.h +++ b/src/tbf_fsm.h @@ -29,7 +29,6 @@ struct gprs_rlcmac_tbf; enum tbf_fsm_event { TBF_EV_ASSIGN_ADD_CCCH, /* An assignment is sent over CCCH and confirmation from MS is pending */ TBF_EV_ASSIGN_ADD_PACCH, /* An assignment is sent over PACCH and confirmation from MS is pending */ - TBF_EV_ASSIGN_DEL_CCCH, /* An assignment previously sent over CCCH has been confirmed by MS */ TBF_EV_ASSIGN_ACK_PACCH, /* We received a CTRL ACK confirming assignment started on PACCH */ TBF_EV_ASSIGN_READY_CCCH, /* TBF Start Time timer triggered */ TBF_EV_ASSIGN_PCUIF_CNF, /* Transmission of IMM.ASS for DL TBF to the MS confirmed by BTS over PCUIF */ diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 62a2582e..ae12f1e7 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -89,7 +89,7 @@ static void check_tbf(gprs_rlcmac_tbf *tbf) { OSMO_ASSERT(tbf); if (tbf->state_is(TBF_ST_WAIT_RELEASE)) - OSMO_ASSERT(tbf->timers_pending(T3191) || tbf->timers_pending(T3193)); + OSMO_ASSERT(tbf->timers_pending(T3191) || osmo_timer_pending(&tbf->state_fsm.fi->timer)); if (tbf->state_is(TBF_ST_RELEASING)) OSMO_ASSERT(tbf->timers_pending(T_MAX)); } diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index afc5a8f2..a211d220 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -116,8 +116,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) V(B): (V(A)=2)""(V(S)-1=1) A=Acked TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) ********** DL-TBF starts here ********** MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) Allocating DL TBF TBF{NULL}: Allocated @@ -145,7 +144,6 @@ TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) set ass. type PACCH [prev CCCH:0, P TBF(DL-TFI_1){NULL}: state_chg to ASSIGN TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) Starting timer X2001 [assignment (PACCH)] with 2 sec. 0 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) stopping timer T3193 [freeing TBF] PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 00, TFIs = 00000002. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) ********** DL-TBF ends here ********** @@ -231,8 +229,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) V(B): (V(A)=2)""(V(S)-1=1) A=Acked TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) ********** DL-TBF starts here ********** MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0, DL) Allocating DL TBF TBF{NULL}: Allocated @@ -267,7 +264,6 @@ TBF(DL-TFI_1){ASSIGN}: Deallocated UL_ASS_TBF(DL-TFI_1){NONE}: Deallocated DL_ASS_TBF(DL-TFI_1){NONE}: Deallocated TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) stopping timer T3193 [freeing TBF] PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE), 0 TBFs, USFs = 00, TFIs = 00000000. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) ********** DL-TBF ends here ********** @@ -534,10 +530,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) V(B): (V(A)=22)""(V(S)-1=21) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FINISHED) Final ACK received. TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654167 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) stopping timer T3193 [freeing TBF] PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE), 0 TBFs, USFs = 00, TFIs = 00000000. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 45/0,) Destroying MS object @@ -3233,8 +3227,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27) A TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received. TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654379 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here ********** MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF TBF{NULL}: Allocated @@ -3346,7 +3339,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) [UPLINK] DOWNLINK ASSIGNED DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: Received Event RX_ASS_CTRL_ACK DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: state_chg to NONE TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) free -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) stopping timer T3193 [freeing TBF] PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 01, TFIs = 00000002. MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) ********** DL-TBF ends here ********** @@ -4322,10 +4314,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=25)""(V(S)-1=24) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -4582,10 +4572,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=20)""(V(S)-1=19) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -4802,10 +4790,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=15)""(V(S)-1=14) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -5006,10 +4992,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=13)""(V(S)-1=12) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -5194,10 +5178,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=11)""(V(S)-1=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -5358,10 +5340,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=8)""(V(S)-1=7) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -5531,10 +5511,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=11)""(V(S)-1=10) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -5695,10 +5673,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=9)""(V(S)-1=8) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -5848,10 +5824,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=8)""(V(S)-1=7) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -5923,10 +5897,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1)""(V(S)-1=0) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -5995,10 +5967,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1)""(V(S)-1=0) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -6067,10 +6037,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1)""(V(S)-1=0) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -6163,10 +6131,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=2)""(V(S)-1=1) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -6258,10 +6224,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=2)""(V(S)-1=1) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -6353,10 +6317,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=2)""(V(S)-1=1) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -6448,10 +6410,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=2)""(V(S)-1=1) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -6529,10 +6489,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1)""(V(S)-1=0) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -6608,10 +6566,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1)""(V(S)-1=0) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -6687,10 +6643,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1)""(V(S)-1=0) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object @@ -6773,10 +6727,8 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1)""(V(S)-1=0) A TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. TBF(DL-TFI_0){FLOW}: Received Event FINAL_ACK_RECVD TBF(DL-TFI_0){FLOW}: state_chg to WAIT_RELEASE -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 -TBF(DL-TFI_0){WAIT_RELEASE}: Received Event ASSIGN_DEL_CCCH +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) starting timer T3193 with 0 sec. 100000 microsec TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) stopping timer T3193 [freeing TBF] 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. MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Detaching TBF: TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT_RELEASE EGPRS) MS(TLLI=0xffeeddcc, IMSI=, TA=0, 11/11,) Destroying MS object