From 58046e45d13c2881e5f150973655240a23f6db04 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 29 Mar 2021 19:01:13 +0200 Subject: [PATCH] tbf: Get rid of attribute poll_fn That field is not needed anymore, and it works only under the assumption that only 1 poll request can be active at a time per TBF, which is not true. Change-Id: I63a34a702f028b871530fb7caeb13e8ea1cc78ac --- src/bts.cpp | 12 ++-- src/pdch_ul_controller.c | 2 +- src/tbf.cpp | 20 +++--- src/tbf.h | 5 +- src/tbf_dl.cpp | 4 +- tests/tbf/TbfTest.cpp | 23 +++++-- tests/tbf/TbfTest.err | 138 +++++++++++++++++++-------------------- 7 files changed, 104 insertions(+), 100 deletions(-) diff --git a/src/bts.cpp b/src/bts.cpp index 0443df6d..b61c6b4a 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -1086,10 +1086,8 @@ void update_tbf_ta(struct gprs_rlcmac_ul_tbf *tbf, int8_t ta_delta) /* limit target TA in range 0..63 bits */ ta_target = ta_limit(ta_adj); - LOGP(DL1IF, LOGL_INFO, "PH-DATA-IND is updating TLLI=0x%08x: TA %u -> %u on " - "TRX = %d, TS = %d, FN = %d\n", - tbf->tlli(), tbf->ta(), ta_target, - tbf->trx->trx_no , tbf->poll_ts, tbf->poll_fn); + LOGP(DL1IF, LOGL_INFO, "PH-DATA-IND is updating %s: TA %u -> %u on " + "TRX = %d\n", tbf_name(tbf), tbf->ta(), ta_target, tbf->trx->trx_no); tbf->set_ta(ta_target); } } @@ -1103,10 +1101,8 @@ void set_tbf_ta(struct gprs_rlcmac_ul_tbf *tbf, uint8_t ta) /* limit target TA in range 0..63 bits */ ta_target = ta_limit(ta); - LOGP(DL1IF, LOGL_INFO, "PH-RA-IND is updating TLLI=0x%08x: TA %u -> %u on " - "TRX = %d, TS = %d, FN = %d\n", - tbf->tlli(), tbf->ta(), ta_target, - tbf->trx->trx_no , tbf->poll_ts, tbf->poll_fn); + LOGP(DL1IF, LOGL_INFO, "PH-RA-IND is updating %s: TA %u -> %u on " + "TRX = %d\n", tbf_name(tbf), tbf->ta(), ta_target, tbf->trx->trx_no); tbf->set_ta(ta_target); } } diff --git a/src/pdch_ul_controller.c b/src/pdch_ul_controller.c index 8fb5582f..59110800 100644 --- a/src/pdch_ul_controller.c +++ b/src/pdch_ul_controller.c @@ -318,7 +318,7 @@ void pdch_ulc_expire_fn(struct pdch_ulc *ulc, uint32_t fn) LOGPDCH(ulc->pdch, DRLCMAC, LOGL_NOTICE, "Timeout for registered POLL (FN=%u): %s\n", item->fn, tbf_name(item->tbf_poll.poll_tbf)); - tbf_poll_timeout(item->tbf_poll.poll_tbf, item->tbf_poll.reason); + tbf_poll_timeout(item->tbf_poll.poll_tbf, item->fn, item->tbf_poll.reason); break; case PDCH_ULC_NODE_SBA: sba = item->sba.sba; diff --git a/src/tbf.cpp b/src/tbf.cpp index 0ea0ceb1..92dede57 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -125,7 +125,6 @@ gprs_rlcmac_tbf::gprs_rlcmac_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms, gprs_ first_ts(0), first_common_ts(0), control_ts(0xff), - poll_fn(0), poll_ts(0), fT(0), num_fT_exp(0), @@ -579,10 +578,9 @@ void gprs_rlcmac_tbf::set_polling(uint32_t new_poll_fn, uint8_t ts, enum pdch_ul /* schedule polling */ if (pdch_ulc_reserve_tbf_poll(trx->pdch[ts].ulc, new_poll_fn, this, reason) < 0) { LOGPTBFDL(this, LOGL_ERROR, "Failed scheduling poll on %s (FN=%d, TS=%d)\n", - chan, poll_fn, ts); + chan, new_poll_fn, ts); return; } - poll_fn = new_poll_fn; poll_ts = ts; switch (reason) { @@ -590,32 +588,32 @@ void gprs_rlcmac_tbf::set_polling(uint32_t new_poll_fn, uint8_t ts, enum pdch_ul ul_ass_state = GPRS_RLCMAC_UL_ASS_WAIT_ACK; LOGPTBFDL(this, LOGL_INFO, "Scheduled UL Assignment polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; case PDCH_ULC_POLL_DL_ASS: dl_ass_state = GPRS_RLCMAC_DL_ASS_WAIT_ACK; LOGPTBFDL(this, LOGL_INFO, "Scheduled DL Assignment polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; case PDCH_ULC_POLL_UL_ACK: ul_ack_state = GPRS_RLCMAC_UL_ACK_WAIT_ACK; LOGPTBFUL(this, LOGL_DEBUG, "Scheduled UL Acknowledgement polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; case PDCH_ULC_POLL_DL_ACK: LOGPTBFDL(this, LOGL_DEBUG, "Scheduled DL Acknowledgement polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; case PDCH_ULC_POLL_CELL_CHG_CONTINUE: LOGPTBFDL(this, LOGL_DEBUG, "Scheduled 'Packet Cell Change Continue' polling on %s (FN=%d, TS=%d)\n", - chan, poll_fn, poll_ts); + chan, new_poll_fn, poll_ts); break; } } -void gprs_rlcmac_tbf::poll_timeout(enum pdch_ulc_tbf_poll_reason reason) +void gprs_rlcmac_tbf::poll_timeout(uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) { uint16_t pgroup; gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(this); @@ -1211,7 +1209,7 @@ void tbf_set_polling(struct gprs_rlcmac_tbf *tbf, uint32_t new_poll_fn, uint8_t return tbf->set_polling(new_poll_fn, ts, t); } -void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, enum pdch_ulc_tbf_poll_reason reason) +void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) { - tbf->poll_timeout(reason); + tbf->poll_timeout(poll_fn, reason); } diff --git a/src/tbf.h b/src/tbf.h index cb5aac46..b0bec313 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -193,7 +193,7 @@ uint8_t tbf_tfi(const struct gprs_rlcmac_tbf *tbf); int tbf_assign_control_ts(struct gprs_rlcmac_tbf *tbf); int tbf_check_polling(const struct gprs_rlcmac_tbf *tbf, uint32_t fn, uint8_t ts, uint32_t *poll_fn, unsigned int *rrbp); void tbf_set_polling(struct gprs_rlcmac_tbf *tbf, uint32_t new_poll_fn, uint8_t ts, enum pdch_ulc_tbf_poll_reason t); -void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, enum pdch_ulc_tbf_poll_reason reason); +void tbf_poll_timeout(struct gprs_rlcmac_tbf *tbf, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason); #ifdef __cplusplus } #endif @@ -251,7 +251,7 @@ struct gprs_rlcmac_tbf { int check_polling(uint32_t fn, uint8_t ts, uint32_t *poll_fn, unsigned int *rrbp) const; void set_polling(uint32_t poll_fn, uint8_t ts, enum pdch_ulc_tbf_poll_reason reason); - void poll_timeout(enum pdch_ulc_tbf_poll_reason reason); + void poll_timeout(uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason); /** tlli handling */ uint32_t tlli() const; @@ -292,7 +292,6 @@ struct gprs_rlcmac_tbf { gprs_llc m_llc; - uint32_t poll_fn; /* frame number to poll */ uint8_t poll_ts; /* TS to poll */ gprs_rlc m_rlc; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 19415f17..c122bba8 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -990,11 +990,11 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block( rlc.rrbp = rrbp; rlc.es_p = 1; /* Polling */ - m_last_dl_poll_fn = poll_fn; + m_last_dl_poll_fn = new_poll_fn; LOGPTBFDL(this, LOGL_INFO, "Scheduled Ack/Nack polling on FN=%d, TS=%d\n", - poll_fn, poll_ts); + new_poll_fn, poll_ts); } } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 46667b43..8fbdde6b 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -651,11 +651,26 @@ static void send_ul_mac_block(struct gprs_rlcmac_bts *bts, unsigned trx_no, unsi send_ul_mac_block_buf(bts, pdch, fn, &buf[0], num_bytes); } + +static uint32_t get_poll_fn(struct gprs_rlcmac_tbf *tbf, uint8_t poll_ts) +{ + struct gprs_rlcmac_pdch *pdch = &tbf->trx->pdch[poll_ts]; + struct pdch_ulc *ulc = pdch->ulc; + struct rb_node *node; + struct pdch_ulc_node *item; + + for (node = rb_first(&ulc->tree_root); node; node = rb_next(node)) { + item = container_of(node, struct pdch_ulc_node, node); + if (item->type == PDCH_ULC_NODE_TBF_POLL && item->tbf_poll.poll_tbf == tbf) + return item->fn; + } + OSMO_ASSERT(0); +} + static void send_control_ack(gprs_rlcmac_tbf *tbf) { RlcMacUplink_t ulreq = {0}; - OSMO_ASSERT(tbf->poll_fn != 0); OSMO_ASSERT(tbf->is_control_ts(tbf->poll_ts)); ulreq.u.MESSAGE_TYPE = MT_PACKET_CONTROL_ACK; @@ -665,7 +680,7 @@ static void send_control_ack(gprs_rlcmac_tbf *tbf) ctrl_ack->PayloadType = GPRS_RLCMAC_CONTROL_BLOCK; ctrl_ack->TLLI = tbf->tlli(); send_ul_mac_block(tbf->bts, tbf->trx->trx_no, tbf->poll_ts, - &ulreq, tbf->poll_fn); + &ulreq, get_poll_fn(tbf, tbf->poll_ts)); } static void send_empty_block(gprs_rlcmac_tbf *tbf, unsigned ts_no, unsigned fn) @@ -1924,7 +1939,7 @@ static void test_tbf_ra_update_rach() dl_tbf = ms_dl_tbf(ms1); OSMO_ASSERT(dl_tbf); - fn = dl_tbf->poll_fn; + fn = get_poll_fn(dl_tbf, dl_tbf->poll_ts); send_empty_block(dl_tbf, dl_tbf->poll_ts, fn); fn = fn_add_blocks(fn, 1); @@ -2149,7 +2164,7 @@ static void test_tbf_dl_reuse() ack->DOWNLINK_TFI = dl_tbf1->tfi(); ack->Ack_Nack_Description.FINAL_ACK_INDICATION = 1; - send_ul_mac_block(bts, 0, dl_tbf1->poll_ts, &ulreq, dl_tbf1->poll_fn); + send_ul_mac_block(bts, 0, dl_tbf1->poll_ts, &ulreq, get_poll_fn(dl_tbf1, dl_tbf1->poll_ts)); OSMO_ASSERT(dl_tbf1->state_is(GPRS_RLCMAC_WAIT_RELEASE)); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 811cfaa2..b190c9ae 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -2797,9 +2797,9 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes -Detected FN jump! 2654288 -> 2654409 -PDCH(bts=0,trx=0,ts=7) FN=2654409 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ -PDCH(bts=0,trx=0,ts=7) FN=2654409 ------------------------- RX : Uplink Control Block ------------------------- +Detected FN jump! 2654288 -> 2654379 +PDCH(bts=0,trx=0,ts=7) FN=2654379 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=2654379 ------------------------- RX : Uplink Control Block ------------------------- TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received] TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR" @@ -2809,7 +2809,7 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) DL analysis, range=0:28, lost=0 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received. TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) changes state from FINISHED 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=2654409 +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) starting timer T3193 [release (DL-TBF)] with 0 sec. 100000 microsec, cur_fn=2654379 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 [DL] algo A (suggested TRX: 0): Alloc start @@ -2830,79 +2830,94 @@ TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Send dowlink assignment on PACCH, b TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes DL ASS state from GPRS_RLCMAC_DL_ASS_NONE to GPRS_RLCMAC_DL_ASS_SEND_ASS TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) set ass. type PACCH [prev CCCH:0, PACCH:0] -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=2654409 -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654283 is still reserved! +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) starting timer T0 [assignment (PACCH)] with 2 sec. 0 microsec, cur_fn=2654379 +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654283 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654283): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 1 => 2 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654288 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654288 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654288): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 2 => 3 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654292 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654292 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654292): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 3 => 4 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654296 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654296 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654296): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 4 => 5 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654301 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654301 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654301): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 5 => 6 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654305 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654305 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654305): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 6 => 7 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654309 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654309 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654309): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 7 => 8 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654314 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654314 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654314): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 8 => 9 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654318 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654318 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654318): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 exceeded MAX (10) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) changes state from FLOW to RELEASING -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654322 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654322 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654322): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 10 => 11 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654327 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654327 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654327): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 11 => 12 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654331 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654331 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654331): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 12 => 13 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654335 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654335 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654335): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 13 => 14 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654340 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654340 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654340): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 14 => 15 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654344 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654344 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654344): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 15 => 16 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654348 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654348 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654348): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 16 => 17 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654353 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654353 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654353): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 17 => 18 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654357 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654357 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654357): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 18 => 19 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654361 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654361 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654361): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 19 => 20 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654366 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654366 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654366): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 20 => 21 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654370 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654370 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654370): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 21 => 22 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654374 is still reserved! +PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654374 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654374): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 22 => 23 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654379 is still reserved! -PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654379): TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) poll timeout for FN=2654409, TS=7 (curr FN 2654409) -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|Downlink ACK was received| -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) N3105 0 => 1 (< MAX 8) +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Downlink Assignment ------------------------- +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7) +PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) +Detected FN jump! 2654379 -> 2654409 +PDCH(bts=0,trx=0,ts=7) FN=2654409 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=2654409 ------------------------- RX : Uplink Control Block ------------------------- +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) RX: [PCU <- BTS] Packet Control Ack +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) [UPLINK] DOWNLINK ASSIGNED +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes DL ASS state from GPRS_RLCMAC_DL_ASS_WAIT_ACK to GPRS_RLCMAC_DL_ASS_NONE +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes state from WAIT RELEASE to RELEASING +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) free +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) stopping timer T3193 [freeing TBF] +PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING), 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=RELEASING) +********** DL-TBF ends here ********** +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) changes state from ASSIGN to FLOW +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) stopping timer T0 [control acked (DL-TBF)] PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654383 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654383): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 23 => 24 (< MAX 10) @@ -2918,25 +2933,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 26 => 27 (< MAX 10) PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654400 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654400): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 27 => 28 (< MAX 10) -PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) -+++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ -------------------------- TX : Packet Downlink Assignment ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7) -PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) -PDCH(bts=0,trx=0,ts=7) FN=2654413 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ -PDCH(bts=0,trx=0,ts=7) FN=2654413 ------------------------- RX : Uplink Control Block ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) RX: [PCU <- BTS] Packet Control Ack -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) [UPLINK] DOWNLINK ASSIGNED -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes DL ASS state from GPRS_RLCMAC_DL_ASS_WAIT_ACK to GPRS_RLCMAC_DL_ASS_NONE -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT RELEASE) changes state from WAIT RELEASE to RELEASING -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) free -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) stopping timer T3193 [freeing TBF] -PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING), 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=RELEASING) -********** DL-TBF ends here ********** -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) changes state from ASSIGN to FLOW -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FLOW) stopping timer T0 [control acked (DL-TBF)] Received RTS on disabled PDCH: TRX=0 TS=0 Received RTS on disabled PDCH: TRX=0 TS=1 Received RTS on disabled PDCH: TRX=0 TS=2 @@ -3125,7 +3121,7 @@ TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Copying data unit 0 (BSN 10) TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654448 + 13 = 2654461 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled DL Acknowledgement polling on PACCH (FN=2654461, TS=7) -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654413 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654409 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on FN=2654461, TS=7 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 10, CS-1): 0f 03 14 4d 43 20 50 41 43 4b 45 54 20 30 39 20 28 54 42 46 20 32 29 === end test_tbf_dl_reuse === @@ -3814,17 +3810,17 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 24, MCS-1): 0f Detected FN jump! 8 -> 112 PDCH(bts=0,trx=0,ts=4) Expiring FN=112 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=121, TS=4 (curr FN 112) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 112) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=112 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=121, TS=4 (curr FN 112) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 112) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=112 but previous FN=104 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=104): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=121, TS=4 (curr FN 112) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=104, TS=4 (curr FN 112) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 2 => 3 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. @@ -4056,12 +4052,12 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 19, MCS-2): 0f Detected FN jump! 8 -> 91 PDCH(bts=0,trx=0,ts=4) Expiring FN=91 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=99, TS=4 (curr FN 91) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 91) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=91 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=99, TS=4 (curr FN 91) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 91) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4254,12 +4250,12 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 14, MCS-3): 0f Detected FN jump! 8 -> 69 PDCH(bts=0,trx=0,ts=4) Expiring FN=69 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=78, TS=4 (curr FN 69) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 69) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=69 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=78, TS=4 (curr FN 69) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 69) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4436,12 +4432,12 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 12, MCS-4): 0f Detected FN jump! 8 -> 60 PDCH(bts=0,trx=0,ts=4) Expiring FN=60 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=69, TS=4 (curr FN 60) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 60) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=60 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=69, TS=4 (curr FN 60) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 60) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4602,12 +4598,12 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-5): 0f Detected FN jump! 8 -> 52 PDCH(bts=0,trx=0,ts=4) Expiring FN=52 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=60, TS=4 (curr FN 52) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 52) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=52 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=60, TS=4 (curr FN 52) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 52) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4744,12 +4740,12 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 7, MCS-6): 0f Detected FN jump! 8 -> 39 PDCH(bts=0,trx=0,ts=4) Expiring FN=39 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=47, TS=4 (curr FN 39) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 39) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=39 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=47, TS=4 (curr FN 39) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 39) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -4895,12 +4891,12 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 10, MCS-5): 0f Detected FN jump! 8 -> 34 PDCH(bts=0,trx=0,ts=4) Expiring FN=34 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=43, TS=4 (curr FN 34) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 34) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=34 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=43, TS=4 (curr FN 34) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 34) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -5037,12 +5033,12 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 8, MCS-8): 0f Detected FN jump! 8 -> 30 PDCH(bts=0,trx=0,ts=4) Expiring FN=30 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=39, TS=4 (curr FN 30) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 30) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=30 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=39, TS=4 (curr FN 30) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 30) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge @@ -5168,12 +5164,12 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 6, MCS-9): 0f Detected FN jump! 8 -> 26 PDCH(bts=0,trx=0,ts=4) Expiring FN=26 but previous FN=13 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=13): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=34, TS=4 (curr FN 26) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=13, TS=4 (curr FN 26) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET CONTROL ACK for PACKET DOWNLINK ASSIGNMENT: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 0 => 1 (< MAX 8) PDCH(bts=0,trx=0,ts=4) Expiring FN=26 but previous FN=17 is still reserved! PDCH(bts=0,trx=0,ts=4) Timeout for registered POLL (FN=17): TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=34, TS=4 (curr FN 26) +TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) poll timeout for FN=17, TS=4 (curr FN 26) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Timeout for polling PACKET DOWNLINK ACK: |No downlink ACK received yet| TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) N3105 1 => 2 (< MAX 8) TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge