From cc9358f95aca618db451faf53971c45dfe0b505a Mon Sep 17 00:00:00 2001 From: Jacob Erlbeck Date: Tue, 30 Jun 2015 14:10:13 +0200 Subject: [PATCH] tbf: Keep a set of used TFI and USF per PDCH Currently is is rather expensive to get TFI and USF usage per PDCH, because the TBFs need to be scanned to get that information. This commit adds corresponding bit sets which get updated by the attach_tbf/detach_tbf methods of the gprs_rlcmac_pdch class. Sponsored-by: On-Waves ehf --- src/bts.cpp | 28 +++++++++-- src/bts.h | 15 ++++++ tests/tbf/TbfTest.err | 106 +++++++++++++++++++++--------------------- 3 files changed, 92 insertions(+), 57 deletions(-) diff --git a/src/bts.cpp b/src/bts.cpp index 87a22def..b96971db 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -1137,18 +1137,38 @@ gprs_rlcmac_dl_tbf *gprs_rlcmac_pdch::dl_tbf_by_tfi(uint8_t tfi) void gprs_rlcmac_pdch::attach_tbf(gprs_rlcmac_tbf *tbf) { + gprs_rlcmac_ul_tbf *ul_tbf; + m_num_tbfs[tbf->direction] += 1; - LOGP(DRLCMAC, LOGL_INFO, "PDCH(TS %d, TRX %d): Attaching %s, %d TBFs.\n", - ts_no, trx_no(), tbf->name(), m_num_tbfs[tbf->direction]); + if (tbf->direction == GPRS_RLCMAC_UL_TBF) { + ul_tbf = static_cast(tbf); + m_assigned_usf |= 1 << ul_tbf->m_usf[ts_no]; + } + m_assigned_tfi |= 1UL << tbf->tfi(); + + LOGP(DRLCMAC, LOGL_INFO, "PDCH(TS %d, TRX %d): Attaching %s, %d TBFs, " + "USFs = %02x, TFIs = %08x.\n", + ts_no, trx_no(), tbf->name(), m_num_tbfs[tbf->direction], + m_assigned_usf, m_assigned_tfi); } void gprs_rlcmac_pdch::detach_tbf(gprs_rlcmac_tbf *tbf) { + gprs_rlcmac_ul_tbf *ul_tbf; + OSMO_ASSERT(m_num_tbfs[tbf->direction] > 0); m_num_tbfs[tbf->direction] -= 1; - LOGP(DRLCMAC, LOGL_INFO, "PDCH(TS %d, TRX %d): Detaching %s, %d TBFs.\n", - ts_no, trx_no(), tbf->name(), m_num_tbfs[tbf->direction]); + if (tbf->direction == GPRS_RLCMAC_UL_TBF) { + ul_tbf = static_cast(tbf); + m_assigned_usf &= ~(1 << ul_tbf->m_usf[ts_no]); + } + m_assigned_tfi &= ~(1UL << tbf->tfi()); + + LOGP(DRLCMAC, LOGL_INFO, "PDCH(TS %d, TRX %d): Detaching %s, %d TBFs, " + "USFs = %02x, TFIs = %08x.\n", + ts_no, trx_no(), tbf->name(), m_num_tbfs[tbf->direction], + m_assigned_usf, m_assigned_tfi); } void gprs_rlcmac_pdch::reserve(enum gprs_rlcmac_tbf_direction dir) diff --git a/src/bts.h b/src/bts.h index 79640af0..b9909ce3 100644 --- a/src/bts.h +++ b/src/bts.h @@ -75,6 +75,9 @@ struct gprs_rlcmac_pdch { void reserve(enum gprs_rlcmac_tbf_direction dir); void unreserve(enum gprs_rlcmac_tbf_direction dir); unsigned num_reserved(enum gprs_rlcmac_tbf_direction dir) const; + + uint8_t assigned_usf() const; + uint32_t assigned_tfi() const; #endif uint8_t m_is_enabled; /* TS is enabled */ @@ -105,6 +108,8 @@ private: uint8_t m_num_tbfs[2]; uint8_t m_num_reserved[2]; + uint8_t m_assigned_usf; /* bit set */ + uint32_t m_assigned_tfi; /* bit set */ }; struct gprs_rlcmac_trx { @@ -333,6 +338,16 @@ inline unsigned gprs_rlcmac_pdch::num_reserved( return gprs_rlcmac_pdch::m_num_reserved[dir]; } +inline uint8_t gprs_rlcmac_pdch::assigned_usf() const +{ + return m_assigned_usf; +} + +inline uint32_t gprs_rlcmac_pdch::assigned_tfi() const +{ + return m_assigned_tfi; +} + inline struct rate_ctr_group *BTS::rate_counters() const { return m_ratectrs; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 5d14719b..3c7892e4 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -10,7 +10,7 @@ Slot Allocation (Algorithm A) for class 0 - Skipping TS 7, because not enabled - Skipping TS 3, because num TBFs 0 >= 0 - Assign downlink TS=2 -PDCH(TS 2, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs. +PDCH(TS 2, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 2 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0x00002342, partly confirmed @@ -26,7 +26,7 @@ Slot Allocation (Algorithm A) for class 0 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign uplink TS=2 USF=0 -PDCH(TS 2, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs. +PDCH(TS 2, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. - Setting Control TS 2 Attaching TBF to MS object, TLLI = 0x00002342, TBF = TBF(TFI=0 TLLI=0x00002342 DIR=UL STATE=NULL) Modifying MS object, TLLI: 0x00000000 -> 0x00002342, already confirmed partly @@ -48,7 +48,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW @@ -90,7 +90,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000003. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) @@ -100,11 +100,11 @@ TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) starting timer 0. DL packet loss of IMSI= / TLLI=0x00000000: 0% TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) free -PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE), 1 TBFs. +PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE), 1 TBFs, USFs = 00, TFIs = 00000002. ********** TBF ends here ********** TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) free TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) stopping timer 0. -PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN), 0 TBFs. +PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) ********** TBF ends here ********** Destroying MS object, TLLI = 0xffeeddcc @@ -123,7 +123,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW @@ -165,7 +165,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000003. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) @@ -175,12 +175,12 @@ TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) starting timer 0. TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) free TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) stopping timer 0. -PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN), 1 TBFs. +PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN), 1 TBFs, USFs = 00, TFIs = 00000001. Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) ********** TBF ends here ********** DL packet loss of IMSI= / TLLI=0x00000000: 0% TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) free -PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE), 0 TBFs. +PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE), 0 TBFs, USFs = 00, TFIs = 00000000. ********** TBF ends here ********** Destroying MS object, TLLI = 0xffeeddcc Searching for first unallocated TFI: TRX=0 first TS=4 @@ -198,7 +198,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW @@ -407,7 +407,7 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) starting timer 3193. DL packet loss of IMSI= / TLLI=0xffeeddcc: 0% TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) free TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) stopping timer 3193. -PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE), 0 TBFs. +PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** @@ -426,7 +426,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW @@ -445,7 +445,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000003. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW @@ -458,13 +458,13 @@ Modifying MS object, TLLI = 0xf1000001, IMSI '001001000000002' -> '' Modifying MS object, TLLI = 0xf1000002, IMSI '' -> '001001000000002' TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW) free TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW) Software error: Pending downlink assignment. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! -PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW), 1 TBFs. +PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW), 1 TBFs, USFs = 00, TFIs = 00000001. Detaching TBF from MS object, TLLI = 0xf1000002, TBF = TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW) Destroying MS object, TLLI = 0xf1000002 ********** TBF ends here ********** TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW) free TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW) Software error: Pending downlink assignment. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! -PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW), 0 TBFs. +PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xf1000001, TBF = TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW) Destroying MS object, TLLI = 0xf1000001 ********** TBF ends here ********** @@ -483,7 +483,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000000, partly confirmed @@ -509,7 +509,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000003. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000001, partly confirmed @@ -535,7 +535,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs, USFs = 00, TFIs = 00000007. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000002, partly confirmed @@ -561,7 +561,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL), 4 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL), 4 TBFs, USFs = 00, TFIs = 0000000f. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000003, partly confirmed @@ -587,7 +587,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL), 5 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL), 5 TBFs, USFs = 00, TFIs = 0000001f. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000004, partly confirmed @@ -613,7 +613,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL), 6 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL), 6 TBFs, USFs = 00, TFIs = 0000003f. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000005, partly confirmed @@ -639,7 +639,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL), 7 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL), 7 TBFs, USFs = 00, TFIs = 0000007f. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000006, partly confirmed @@ -665,7 +665,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL), 8 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL), 8 TBFs, USFs = 00, TFIs = 000000ff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000007, partly confirmed @@ -691,7 +691,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL), 9 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL), 9 TBFs, USFs = 00, TFIs = 000001ff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000008, partly confirmed @@ -717,7 +717,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=9 TLLI=0x00000000 DIR=DL STATE=NULL), 10 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=9 TLLI=0x00000000 DIR=DL STATE=NULL), 10 TBFs, USFs = 00, TFIs = 000003ff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=9 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000009, partly confirmed @@ -743,7 +743,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=10 TLLI=0x00000000 DIR=DL STATE=NULL), 11 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=10 TLLI=0x00000000 DIR=DL STATE=NULL), 11 TBFs, USFs = 00, TFIs = 000007ff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=10 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000000a, partly confirmed @@ -769,7 +769,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=11 TLLI=0x00000000 DIR=DL STATE=NULL), 12 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=11 TLLI=0x00000000 DIR=DL STATE=NULL), 12 TBFs, USFs = 00, TFIs = 00000fff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=11 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000000b, partly confirmed @@ -795,7 +795,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=12 TLLI=0x00000000 DIR=DL STATE=NULL), 13 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=12 TLLI=0x00000000 DIR=DL STATE=NULL), 13 TBFs, USFs = 00, TFIs = 00001fff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=12 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000000c, partly confirmed @@ -821,7 +821,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=13 TLLI=0x00000000 DIR=DL STATE=NULL), 14 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=13 TLLI=0x00000000 DIR=DL STATE=NULL), 14 TBFs, USFs = 00, TFIs = 00003fff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=13 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000000d, partly confirmed @@ -847,7 +847,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=14 TLLI=0x00000000 DIR=DL STATE=NULL), 15 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=14 TLLI=0x00000000 DIR=DL STATE=NULL), 15 TBFs, USFs = 00, TFIs = 00007fff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=14 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000000e, partly confirmed @@ -873,7 +873,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=15 TLLI=0x00000000 DIR=DL STATE=NULL), 16 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=15 TLLI=0x00000000 DIR=DL STATE=NULL), 16 TBFs, USFs = 00, TFIs = 0000ffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=15 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000000f, partly confirmed @@ -899,7 +899,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=16 TLLI=0x00000000 DIR=DL STATE=NULL), 17 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=16 TLLI=0x00000000 DIR=DL STATE=NULL), 17 TBFs, USFs = 00, TFIs = 0001ffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=16 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000010, partly confirmed @@ -925,7 +925,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=17 TLLI=0x00000000 DIR=DL STATE=NULL), 18 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=17 TLLI=0x00000000 DIR=DL STATE=NULL), 18 TBFs, USFs = 00, TFIs = 0003ffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=17 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000011, partly confirmed @@ -951,7 +951,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=18 TLLI=0x00000000 DIR=DL STATE=NULL), 19 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=18 TLLI=0x00000000 DIR=DL STATE=NULL), 19 TBFs, USFs = 00, TFIs = 0007ffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=18 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000012, partly confirmed @@ -977,7 +977,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=19 TLLI=0x00000000 DIR=DL STATE=NULL), 20 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=19 TLLI=0x00000000 DIR=DL STATE=NULL), 20 TBFs, USFs = 00, TFIs = 000fffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=19 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000013, partly confirmed @@ -1003,7 +1003,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=20 TLLI=0x00000000 DIR=DL STATE=NULL), 21 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=20 TLLI=0x00000000 DIR=DL STATE=NULL), 21 TBFs, USFs = 00, TFIs = 001fffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=20 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000014, partly confirmed @@ -1029,7 +1029,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=21 TLLI=0x00000000 DIR=DL STATE=NULL), 22 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=21 TLLI=0x00000000 DIR=DL STATE=NULL), 22 TBFs, USFs = 00, TFIs = 003fffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=21 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000015, partly confirmed @@ -1055,7 +1055,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=22 TLLI=0x00000000 DIR=DL STATE=NULL), 23 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=22 TLLI=0x00000000 DIR=DL STATE=NULL), 23 TBFs, USFs = 00, TFIs = 007fffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=22 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000016, partly confirmed @@ -1081,7 +1081,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=23 TLLI=0x00000000 DIR=DL STATE=NULL), 24 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=23 TLLI=0x00000000 DIR=DL STATE=NULL), 24 TBFs, USFs = 00, TFIs = 00ffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=23 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000017, partly confirmed @@ -1107,7 +1107,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=24 TLLI=0x00000000 DIR=DL STATE=NULL), 25 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=24 TLLI=0x00000000 DIR=DL STATE=NULL), 25 TBFs, USFs = 00, TFIs = 01ffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=24 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000018, partly confirmed @@ -1133,7 +1133,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=25 TLLI=0x00000000 DIR=DL STATE=NULL), 26 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=25 TLLI=0x00000000 DIR=DL STATE=NULL), 26 TBFs, USFs = 00, TFIs = 03ffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=25 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0000019, partly confirmed @@ -1159,7 +1159,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=26 TLLI=0x00000000 DIR=DL STATE=NULL), 27 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=26 TLLI=0x00000000 DIR=DL STATE=NULL), 27 TBFs, USFs = 00, TFIs = 07ffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=26 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000001a, partly confirmed @@ -1185,7 +1185,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=27 TLLI=0x00000000 DIR=DL STATE=NULL), 28 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=27 TLLI=0x00000000 DIR=DL STATE=NULL), 28 TBFs, USFs = 00, TFIs = 0fffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=27 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000001b, partly confirmed @@ -1211,7 +1211,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=28 TLLI=0x00000000 DIR=DL STATE=NULL), 29 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=28 TLLI=0x00000000 DIR=DL STATE=NULL), 29 TBFs, USFs = 00, TFIs = 1fffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=28 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000001c, partly confirmed @@ -1237,7 +1237,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=29 TLLI=0x00000000 DIR=DL STATE=NULL), 30 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=29 TLLI=0x00000000 DIR=DL STATE=NULL), 30 TBFs, USFs = 00, TFIs = 3fffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=29 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000001d, partly confirmed @@ -1263,7 +1263,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=30 TLLI=0x00000000 DIR=DL STATE=NULL), 31 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=30 TLLI=0x00000000 DIR=DL STATE=NULL), 31 TBFs, USFs = 00, TFIs = 7fffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=30 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000001e, partly confirmed @@ -1289,7 +1289,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=31 TLLI=0x00000000 DIR=DL STATE=NULL), 32 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=31 TLLI=0x00000000 DIR=DL STATE=NULL), 32 TBFs, USFs = 00, TFIs = ffffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=31 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc000001f, partly confirmed @@ -1318,7 +1318,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) The MS object cannot fully confirm an unexpected TLLI: 0xc0123456, partly confirmed @@ -1331,7 +1331,7 @@ Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=34 35 36 2d 06 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) append TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) append TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) free -PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN), 0 TBFs. +PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) ********** TBF ends here ********** Searching for first unallocated TFI: TRX=0 first TS=4 @@ -1347,7 +1347,7 @@ Slot Allocation (Algorithm A) for class 45 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Assign downlink TS=4 -PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs. +PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) [DOWNLINK] START @@ -1400,7 +1400,7 @@ Slot Allocation (Algorithm A) for class 0 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Assign uplink TS=7 USF=0 -PDCH(TS 7, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs. +PDCH(TS 7, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. - Setting Control TS 7 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) Modifying MS object, TLLI = 0x00000000, TA 0 -> 7 @@ -1457,7 +1457,7 @@ Slot Allocation (Algorithm A) for class 0 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Assign uplink TS=7 USF=0 -PDCH(TS 7, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs. +PDCH(TS 7, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. - Setting Control TS 7 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to ASSIGN