diff options
-rw-r--r-- | src/gprs_rlcmac_ts_alloc.cpp | 115 | ||||
-rw-r--r-- | tests/alloc/AllocTest.cpp | 49 | ||||
-rw-r--r-- | tests/alloc/AllocTest.err | 22 | ||||
-rw-r--r-- | tests/alloc/AllocTest.ok | 480 | ||||
-rw-r--r-- | tests/tbf/TbfTest.err | 184 |
5 files changed, 549 insertions, 301 deletions
diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index 3381436..55c3ea6 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -131,6 +131,25 @@ static inline int8_t find_free_usf(struct gprs_rlcmac_pdch *pdch) return -1; } +static inline int8_t find_free_tfi(struct gprs_rlcmac_pdch *pdch, + enum gprs_rlcmac_tbf_direction dir) +{ + uint32_t tfi_map = 0; + int8_t tfi; + + tfi_map = pdch->assigned_tfi(dir); + if (tfi_map == 0xffffffffUL) + return -1; + + /* look for USF, don't use USF=7 */ + for (tfi = 0; tfi < 32; tfi++) { + if (!(tfi_map & (1 << tfi))) + return tfi; + } + + return -1; +} + static int find_possible_pdchs(struct gprs_rlcmac_trx *trx, size_t max_slots, uint8_t mask, const char *mask_reason = NULL) @@ -196,17 +215,19 @@ static int find_least_busy_pdch(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t mask, int (*fn)(struct gprs_rlcmac_pdch *, enum gprs_rlcmac_tbf_direction dir), - int *free_usf = 0) + int *free_tfi = 0, int *free_usf = 0) { unsigned ts; int min_used = INT_MAX; int min_ts = -1; + int min_tfi = -1; int min_usf = -1; for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) { struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts]; int num_tbfs; int usf = -1; /* must be signed */ + int tfi = -1; if (((1 << ts) & mask) == 0) continue; @@ -215,6 +236,16 @@ static int find_least_busy_pdch(struct gprs_rlcmac_trx *trx, if (num_tbfs < min_used) { /* We have found a candidate */ + /* Make sure that a TFI is available */ + if (free_tfi) { + tfi = find_free_tfi(pdch, dir); + if (tfi < 0) { + LOGP(DRLCMAC, LOGL_DEBUG, + "- Skipping TS %d, because " + "no TFI available\n", ts); + continue; + } + } /* Make sure that an USF is available */ if (dir == GPRS_RLCMAC_UL_TBF) { usf = find_free_usf(pdch); @@ -232,6 +263,7 @@ static int find_least_busy_pdch(struct gprs_rlcmac_trx *trx, min_ts, min_used, num_tbfs); min_used = num_tbfs; min_ts = ts; + min_tfi = tfi; min_usf = usf; } else { LOGP(DRLCMAC, LOGL_DEBUG, @@ -244,6 +276,8 @@ static int find_least_busy_pdch(struct gprs_rlcmac_trx *trx, if (min_ts < 0) return -1; + if (free_tfi) + *free_tfi = min_tfi; if (free_usf) *free_usf = min_usf; @@ -262,8 +296,10 @@ static void attach_tbf_to_pdch(struct gprs_rlcmac_pdch *pdch, static void assign_uplink_tbf_usf( struct gprs_rlcmac_pdch *pdch, - struct gprs_rlcmac_ul_tbf *tbf, int8_t usf) + struct gprs_rlcmac_ul_tbf *tbf, + int tfi, int8_t usf) { + tbf->m_tfi = tfi; tbf->trx->ul_tbf[tbf->tfi()] = tbf; tbf->m_usf[pdch->ts_no] = usf; attach_tbf_to_pdch(pdch, tbf); @@ -271,12 +307,48 @@ static void assign_uplink_tbf_usf( static void assign_dlink_tbf( struct gprs_rlcmac_pdch *pdch, - struct gprs_rlcmac_dl_tbf *tbf) + struct gprs_rlcmac_dl_tbf *tbf, + int tfi) { + tbf->m_tfi = tfi; tbf->trx->dl_tbf[tbf->tfi()] = tbf; attach_tbf_to_pdch(pdch, tbf); } +static int find_trx(BTS *bts, GprsMs *ms, int use_trx) +{ + unsigned trx_no; + unsigned ts; + struct gprs_rlcmac_bts *bts_data = bts->bts_data(); + + /* We must use the TRX currently actively used by an MS */ + if (ms && ms->current_trx()) + return ms->current_trx()->trx_no; + + if (use_trx >= 0 && use_trx < 8) + return use_trx; + + /* Find the first TRX that has a PDCH with a free UL and DL TFI */ + for (trx_no = 0; trx_no < ARRAY_SIZE(bts_data->trx); trx_no += 1) { + struct gprs_rlcmac_trx *trx = &bts_data->trx[trx_no]; + for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) { + struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts]; + if (!pdch->is_enabled()) + continue; + + if (pdch->assigned_tfi(GPRS_RLCMAC_UL_TBF) == 0xffffffff) + continue; + + if (pdch->assigned_tfi(GPRS_RLCMAC_DL_TBF) == 0xffffffff) + continue; + + return trx_no; + } + } + + return -EBUSY; +} + static int tfi_find_free(BTS *bts, GprsMs *ms, enum gprs_rlcmac_tbf_direction dir, int use_trx, int *trx_no_) { @@ -309,7 +381,7 @@ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, int ts = -1; uint8_t ul_slots, dl_slots; int trx_no; - int rc; + int tfi = -1; int usf = -1; int mask = 0xff; const char *mask_reason = NULL; @@ -317,12 +389,12 @@ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, LOGP(DRLCMAC, LOGL_DEBUG, "Slot Allocation (Algorithm A) for class " "%d\n", tbf->ms_class()); - rc = tfi_find_free(bts->bts, ms, tbf->direction, use_trx, &trx_no); - if (rc < 0) { - LOGP(DRLCMAC, LOGL_NOTICE, "- Failed to allocate a TFI\n"); - return rc; + trx_no = find_trx(bts->bts, ms, use_trx); + if (trx_no < 0) { + LOGP(DRLCMAC, LOGL_NOTICE, + "- Failed to find a usable TRX (TFI exhausted)\n"); + return trx_no; } - tbf->m_tfi = rc; tbf->trx = &bts->trx[trx_no]; dl_slots = ms->reserved_dl_slots(); @@ -343,11 +415,12 @@ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, return -EINVAL; ts = find_least_busy_pdch(tbf->trx, tbf->direction, mask, - compute_usage_by_reservation, &usf); + compute_usage_by_reservation, + &tfi, &usf); if (ts < 0) { LOGP(DRLCMAC, LOGL_NOTICE, "- Failed " - "to allocate a TS, no USF available\n"); + "to allocate a TS, no TFI or USF available\n"); return -EBUSY; } @@ -364,13 +437,14 @@ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, return -EBUSY; } - LOGP(DRLCMAC, LOGL_DEBUG, "- Assign uplink TS=%d USF=%d\n", - ts, usf); - assign_uplink_tbf_usf(pdch, ul_tbf, usf); + LOGP(DRLCMAC, LOGL_DEBUG, "- Assign uplink TS=%d TFI=%d USF=%d\n", + ts, tfi, usf); + assign_uplink_tbf_usf(pdch, ul_tbf, tfi, usf); } else { struct gprs_rlcmac_dl_tbf *dl_tbf = static_cast<gprs_rlcmac_dl_tbf *>(tbf); - LOGP(DRLCMAC, LOGL_DEBUG, "- Assign downlink TS=%d\n", ts); - assign_dlink_tbf(pdch, dl_tbf); + LOGP(DRLCMAC, LOGL_DEBUG, "- Assign downlink TS=%d TFI=%d\n", + ts, tfi); + assign_dlink_tbf(pdch, dl_tbf, tfi); } /* the only one TS is the common TS */ tbf->first_ts = tbf->first_common_ts = ts; @@ -751,7 +825,7 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, if (ts < 0) ts = find_least_busy_pdch(tbf->trx, tbf->direction, dl_slots & ul_slots, compute_usage_by_num_tbfs, - NULL); + NULL, NULL); if (ts < 0) ul_slots = dl_slots = lsb(dl_slots & ul_slots); else @@ -807,7 +881,7 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, LOGP(DRLCMAC, LOGL_DEBUG, "- Assigning DL TS " "%d\n", ts); - assign_dlink_tbf(&tbf->trx->pdch[ts], dl_tbf); + assign_dlink_tbf(&tbf->trx->pdch[ts], dl_tbf, tbf->tfi()); slotcount++; if (slotcount == 1) dl_tbf->first_ts = ts; @@ -825,7 +899,7 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, ts = find_least_busy_pdch(tbf->trx, GPRS_RLCMAC_UL_TBF, ul_slots, compute_usage_by_num_tbfs, - &free_usf); + NULL, &free_usf); if (free_usf < 0) { LOGP(DRLCMAC, LOGL_NOTICE, "No USF available\n"); @@ -840,7 +914,8 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, ul_slots, 'U'), single ? ", single" : ""); - assign_uplink_tbf_usf(&tbf->trx->pdch[ts], ul_tbf, free_usf); + assign_uplink_tbf_usf(&tbf->trx->pdch[ts], ul_tbf, + tbf->tfi(), free_usf); slotcount++; ul_tbf->first_ts = ts; diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index b6f263f..e419cd2 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -84,17 +84,21 @@ static void check_tfi_usage(BTS *the_bts) tbf->tfi()) == tbf); /* This assertion cannot hold with the * current API and shared TFI */ +#if 0 OSMO_ASSERT(the_bts->dl_tbf_by_tfi( tbf->tfi(), tbf->trx->trx_no) == tbf); +#endif } else { OSMO_ASSERT(pdch->ul_tbf_by_tfi( tbf->tfi()) == tbf); /* This assertion cannot hold with the * current API and shared TFI */ +#if 0 OSMO_ASSERT(the_bts->ul_tbf_by_tfi( tbf->tfi(), tbf->trx->trx_no) == tbf); +#endif } *tbf_var = tbf; OSMO_ASSERT(pdch->assigned_tfi(tbf->direction) & @@ -112,7 +116,7 @@ static void test_alloc_a(gprs_rlcmac_tbf_direction dir, uint8_t used_trx, tmp_trx; BTS the_bts; struct gprs_rlcmac_bts *bts; - struct gprs_rlcmac_tbf *tbfs[33] = { 0, }; + struct gprs_rlcmac_tbf *tbfs[32*8+1] = { 0, }; printf("Testing alloc_a direction(%d)\n", dir); @@ -132,26 +136,21 @@ static void test_alloc_a(gprs_rlcmac_tbf_direction dir, * we are out of tfi's. Observe this and make sure that at * least this part is working okay. */ - for (int i = 0; i < count; ++i) { + for (i = 0; i < (int)ARRAY_SIZE(tbfs); ++i) { tbfs[i] = tbf_alloc(bts, NULL, dir, -1, 0, 0); - OSMO_ASSERT(tbfs[i] != NULL); + if (tbfs[i] == NULL) + break; + + used_trx = tbfs[i]->trx->trx_no; tfi = the_bts.tfi_find_free(dir, &tmp_trx, used_trx); OSMO_ASSERT(tbfs[i]->tfi() != tfi); } - /* Now check that there are still some TFIs */ - tfi = the_bts.tfi_find_free(dir, &used_trx, 0); - switch (dir) { - case GPRS_RLCMAC_UL_TBF: - OSMO_ASSERT(tfi >= 0); - break; - case GPRS_RLCMAC_DL_TBF: - OSMO_ASSERT(tfi < 0); - break; - } - OSMO_ASSERT(!tbf_alloc(bts, NULL, dir, -1, 0, 0)); + check_tfi_usage(&the_bts); + + OSMO_ASSERT(i == count); - for (size_t i = 0; i < ARRAY_SIZE(tbfs); ++i) + for (i = 0; i < count; ++i) if (tbfs[i]) tbf_free(tbfs[i]); @@ -163,11 +162,11 @@ static void test_alloc_a(gprs_rlcmac_tbf_direction dir, static void test_alloc_a() { /* slots 2 - 3 */ - test_alloc_a(GPRS_RLCMAC_DL_TBF, 0x0c, 32); + test_alloc_a(GPRS_RLCMAC_DL_TBF, 0x0c, 32*2); test_alloc_a(GPRS_RLCMAC_UL_TBF, 0x0c, 14); /* slots 1 - 5 */ - test_alloc_a(GPRS_RLCMAC_DL_TBF, 0x1e, 32); + test_alloc_a(GPRS_RLCMAC_DL_TBF, 0x1e, 32*4); test_alloc_a(GPRS_RLCMAC_UL_TBF, 0x1e, 28); } @@ -626,16 +625,16 @@ static void test_successive_allocation(algo_t algo, unsigned min_class, ms_class = min_class; } - check_tfi_usage(&the_bts); - printf(" Successfully allocated %d UL TBFs\n", counter); OSMO_ASSERT(counter == expect_num); + + check_tfi_usage(&the_bts); } static void test_successive_allocation() { test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_UL_AND_DL, - 32, "algorithm A (UL and DL)"); + 35, "algorithm A (UL and DL)"); test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_UL_AND_DL, 32, "algorithm B class 10 (UL and DL)"); test_successive_allocation(alloc_algorithm_b, 12, 12, TEST_MODE_UL_AND_DL, @@ -646,27 +645,27 @@ static void test_successive_allocation() 32, "algorithm B class 1-29 (UL and DL)"); test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_DL_AND_UL, - 32, "algorithm A (DL and UL)"); + 35, "algorithm A (DL and UL)"); test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_DL_AND_UL, 32, "algorithm B class 10 (DL and UL)"); test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_DL_AFTER_UL, - 32, "algorithm A (DL after UL)"); + 160, "algorithm A (DL after UL)"); test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_DL_AFTER_UL, 32, "algorithm B class 10 (DL after UL)"); test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_UL_AFTER_DL, - 32, "algorithm A (UL after DL)"); + 35, "algorithm A (UL after DL)"); test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_UL_AFTER_DL, 32, "algorithm B class 10 (UL after DL)"); test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_UL_ONLY, - 32, "algorithm A (UL only)"); + 35, "algorithm A (UL only)"); test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_UL_ONLY, 32, "algorithm B class 10 (UL only)"); test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_DL_ONLY, - 32, "algorithm A (DL ONLY)"); + 160, "algorithm A (DL ONLY)"); test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_DL_ONLY, 32, "algorithm B class 10 (DL ONLY)"); } diff --git a/tests/alloc/AllocTest.err b/tests/alloc/AllocTest.err index d848aff..33925dc 100644 --- a/tests/alloc/AllocTest.err +++ b/tests/alloc/AllocTest.err @@ -1,13 +1,14 @@ No TFI available. No TFI available. +- Failed to find a usable TRX (TFI exhausted) +- Failed to allocate a TS, no TFI or USF available No TFI available. -- Failed to allocate a TFI -- Failed to allocate a TS, no USF available No TFI available. No TFI available. No TFI available. -- Failed to allocate a TFI -- Failed to allocate a TS, no USF available +- Failed to find a usable TRX (TFI exhausted) +- Failed to allocate a TS, no TFI or USF available +- Failed to allocate a TS, no TFI or USF available No TFI available. No TFI available. - Failed to allocate a TFI @@ -20,36 +21,33 @@ No TFI available. No TFI available. No TFI available. - Failed to allocate a TFI +- Failed to allocate a TS, no TFI or USF available No TFI available. No TFI available. - Failed to allocate a TFI No TFI available. No TFI available. -- Failed to allocate a TFI No TFI available. No TFI available. -- Failed to allocate a TFI -No TFI available. No TFI available. -- Failed to allocate a TFI +- Failed to find a usable TRX (TFI exhausted) No TFI available. No TFI available. - Failed to allocate a TFI +- Failed to allocate a TS, no TFI or USF available No TFI available. No TFI available. - Failed to allocate a TFI +- Failed to allocate a TS, no TFI or USF available No TFI available. No TFI available. - Failed to allocate a TFI No TFI available. No TFI available. -- Failed to allocate a TFI No TFI available. No TFI available. -- Failed to allocate a TFI No TFI available. -No TFI available. -- Failed to allocate a TFI +- Failed to find a usable TRX (TFI exhausted) No TFI available. No TFI available. - Failed to allocate a TFI diff --git a/tests/alloc/AllocTest.ok b/tests/alloc/AllocTest.ok index 823595a..fc96cb9 100644 --- a/tests/alloc/AllocTest.ok +++ b/tests/alloc/AllocTest.ok @@ -8590,38 +8590,41 @@ Mass test: TS0(OOOOOOOO)TS7 MS_Class=28 Mass test: TS0(OOOOOOOO)TS7 MS_Class=29 Going to test assignment with many TBF, algorithm A (UL and DL) TBF[0] class 1 reserves ...C.... + TBF[0] class 1 reserves ....C... + TBF[0] class 1 reserves .....C.. + TBF[0] class 1 reserves ......C. + TBF[0] class 1 reserves .......C + TBF[1] class 1 reserves ...C.... TBF[1] class 1 reserves ....C... + TBF[1] class 1 reserves .....C.. + TBF[1] class 1 reserves ......C. + TBF[1] class 1 reserves .......C + TBF[2] class 1 reserves ...C.... + TBF[2] class 1 reserves ....C... TBF[2] class 1 reserves .....C.. + TBF[2] class 1 reserves ......C. + TBF[2] class 1 reserves .......C + TBF[3] class 1 reserves ...C.... + TBF[3] class 1 reserves ....C... + TBF[3] class 1 reserves .....C.. TBF[3] class 1 reserves ......C. + TBF[3] class 1 reserves .......C + TBF[4] class 1 reserves ...C.... + TBF[4] class 1 reserves ....C... + TBF[4] class 1 reserves .....C.. + TBF[4] class 1 reserves ......C. TBF[4] class 1 reserves .......C TBF[5] class 1 reserves ...C.... + TBF[5] class 1 reserves ....C... + TBF[5] class 1 reserves .....C.. + TBF[5] class 1 reserves ......C. + TBF[5] class 1 reserves .......C + TBF[6] class 1 reserves ...C.... TBF[6] class 1 reserves ....C... - TBF[7] class 1 reserves .....C.. - TBF[8] class 1 reserves ......C. - TBF[9] class 1 reserves .......C - TBF[10] class 1 reserves ...C.... - TBF[11] class 1 reserves ....C... - TBF[12] class 1 reserves .....C.. - TBF[13] class 1 reserves ......C. - TBF[14] class 1 reserves .......C - TBF[15] class 1 reserves ...C.... - TBF[16] class 1 reserves ....C... - TBF[17] class 1 reserves .....C.. - TBF[18] class 1 reserves ......C. - TBF[19] class 1 reserves .......C - TBF[20] class 1 reserves ...C.... - TBF[21] class 1 reserves ....C... - TBF[22] class 1 reserves .....C.. - TBF[23] class 1 reserves ......C. - TBF[24] class 1 reserves .......C - TBF[25] class 1 reserves ...C.... - TBF[26] class 1 reserves ....C... - TBF[27] class 1 reserves .....C.. - TBF[28] class 1 reserves ......C. - TBF[29] class 1 reserves .......C - TBF[30] class 1 reserves ...C.... - TBF[31] class 1 reserves ....C... - Successfully allocated 32 UL TBFs + TBF[6] class 1 reserves .....C.. + TBF[6] class 1 reserves ......C. + TBF[6] class 1 reserves .......C + Successfully allocated 35 UL TBFs Going to test assignment with many TBF, algorithm B class 10 (UL and DL) TBF[0] class 10 reserves ...DDCD. TBF[1] class 10 reserves .....DCD @@ -8760,38 +8763,41 @@ Going to test assignment with many TBF, algorithm B class 1-29 (UL and DL) Successfully allocated 32 UL TBFs Going to test assignment with many TBF, algorithm A (DL and UL) TBF[0] class 1 reserves ...C.... + TBF[0] class 1 reserves ....C... + TBF[0] class 1 reserves .....C.. + TBF[0] class 1 reserves ......C. + TBF[0] class 1 reserves .......C + TBF[1] class 1 reserves ...C.... TBF[1] class 1 reserves ....C... + TBF[1] class 1 reserves .....C.. + TBF[1] class 1 reserves ......C. + TBF[1] class 1 reserves .......C + TBF[2] class 1 reserves ...C.... + TBF[2] class 1 reserves ....C... TBF[2] class 1 reserves .....C.. + TBF[2] class 1 reserves ......C. + TBF[2] class 1 reserves .......C + TBF[3] class 1 reserves ...C.... + TBF[3] class 1 reserves ....C... + TBF[3] class 1 reserves .....C.. TBF[3] class 1 reserves ......C. + TBF[3] class 1 reserves .......C + TBF[4] class 1 reserves ...C.... + TBF[4] class 1 reserves ....C... + TBF[4] class 1 reserves .....C.. + TBF[4] class 1 reserves ......C. TBF[4] class 1 reserves .......C TBF[5] class 1 reserves ...C.... + TBF[5] class 1 reserves ....C... + TBF[5] class 1 reserves .....C.. + TBF[5] class 1 reserves ......C. + TBF[5] class 1 reserves .......C + TBF[6] class 1 reserves ...C.... TBF[6] class 1 reserves ....C... - TBF[7] class 1 reserves .....C.. - TBF[8] class 1 reserves ......C. - TBF[9] class 1 reserves .......C - TBF[10] class 1 reserves ...C.... - TBF[11] class 1 reserves ....C... - TBF[12] class 1 reserves .....C.. - TBF[13] class 1 reserves ......C. - TBF[14] class 1 reserves .......C - TBF[15] class 1 reserves ...C.... - TBF[16] class 1 reserves ....C... - TBF[17] class 1 reserves .....C.. - TBF[18] class 1 reserves ......C. - TBF[19] class 1 reserves .......C - TBF[20] class 1 reserves ...C.... - TBF[21] class 1 reserves ....C... - TBF[22] class 1 reserves .....C.. - TBF[23] class 1 reserves ......C. - TBF[24] class 1 reserves .......C - TBF[25] class 1 reserves ...C.... - TBF[26] class 1 reserves ....C... - TBF[27] class 1 reserves .....C.. - TBF[28] class 1 reserves ......C. - TBF[29] class 1 reserves .......C - TBF[30] class 1 reserves ...C.... - TBF[31] class 1 reserves ....C... - Successfully allocated 32 UL TBFs + TBF[6] class 1 reserves .....C.. + TBF[6] class 1 reserves ......C. + TBF[6] class 1 reserves .......C + Successfully allocated 35 UL TBFs Going to test assignment with many TBF, algorithm B class 10 (DL and UL) TBF[0] class 10 reserves ...DDCD. TBF[1] class 10 reserves .....DCD @@ -8828,38 +8834,166 @@ Going to test assignment with many TBF, algorithm B class 10 (DL and UL) Successfully allocated 32 UL TBFs Going to test assignment with many TBF, algorithm A (DL after UL) TBF[0] class 1 reserves ...C.... + TBF[0] class 1 reserves ....C... + TBF[0] class 1 reserves .....C.. + TBF[0] class 1 reserves ......C. + TBF[0] class 1 reserves .......C + TBF[1] class 1 reserves ...C.... TBF[1] class 1 reserves ....C... + TBF[1] class 1 reserves .....C.. + TBF[1] class 1 reserves ......C. + TBF[1] class 1 reserves .......C + TBF[2] class 1 reserves ...C.... + TBF[2] class 1 reserves ....C... TBF[2] class 1 reserves .....C.. + TBF[2] class 1 reserves ......C. + TBF[2] class 1 reserves .......C + TBF[3] class 1 reserves ...C.... + TBF[3] class 1 reserves ....C... + TBF[3] class 1 reserves .....C.. TBF[3] class 1 reserves ......C. + TBF[3] class 1 reserves .......C + TBF[4] class 1 reserves ...C.... + TBF[4] class 1 reserves ....C... + TBF[4] class 1 reserves .....C.. + TBF[4] class 1 reserves ......C. TBF[4] class 1 reserves .......C TBF[5] class 1 reserves ...C.... + TBF[5] class 1 reserves ....C... + TBF[5] class 1 reserves .....C.. + TBF[5] class 1 reserves ......C. + TBF[5] class 1 reserves .......C + TBF[6] class 1 reserves ...C.... TBF[6] class 1 reserves ....C... + TBF[6] class 1 reserves .....C.. + TBF[6] class 1 reserves ......C. + TBF[6] class 1 reserves .......C + TBF[7] class 1 reserves ...C.... + TBF[7] class 1 reserves ....C... TBF[7] class 1 reserves .....C.. + TBF[7] class 1 reserves ......C. + TBF[7] class 1 reserves .......C + TBF[8] class 1 reserves ...C.... + TBF[8] class 1 reserves ....C... + TBF[8] class 1 reserves .....C.. TBF[8] class 1 reserves ......C. + TBF[8] class 1 reserves .......C + TBF[9] class 1 reserves ...C.... + TBF[9] class 1 reserves ....C... + TBF[9] class 1 reserves .....C.. + TBF[9] class 1 reserves ......C. TBF[9] class 1 reserves .......C TBF[10] class 1 reserves ...C.... + TBF[10] class 1 reserves ....C... + TBF[10] class 1 reserves .....C.. + TBF[10] class 1 reserves ......C. + TBF[10] class 1 reserves .......C + TBF[11] class 1 reserves ...C.... TBF[11] class 1 reserves ....C... + TBF[11] class 1 reserves .....C.. + TBF[11] class 1 reserves ......C. + TBF[11] class 1 reserves .......C + TBF[12] class 1 reserves ...C.... + TBF[12] class 1 reserves ....C... TBF[12] class 1 reserves .....C.. + TBF[12] class 1 reserves ......C. + TBF[12] class 1 reserves .......C + TBF[13] class 1 reserves ...C.... + TBF[13] class 1 reserves ....C... + TBF[13] class 1 reserves .....C.. TBF[13] class 1 reserves ......C. + TBF[13] class 1 reserves .......C + TBF[14] class 1 reserves ...C.... + TBF[14] class 1 reserves ....C... + TBF[14] class 1 reserves .....C.. + TBF[14] class 1 reserves ......C. TBF[14] class 1 reserves .......C TBF[15] class 1 reserves ...C.... + TBF[15] class 1 reserves ....C... + TBF[15] class 1 reserves .....C.. + TBF[15] class 1 reserves ......C. + TBF[15] class 1 reserves .......C + TBF[16] class 1 reserves ...C.... TBF[16] class 1 reserves ....C... + TBF[16] class 1 reserves .....C.. + TBF[16] class 1 reserves ......C. + TBF[16] class 1 reserves .......C + TBF[17] class 1 reserves ...C.... + TBF[17] class 1 reserves ....C... TBF[17] class 1 reserves .....C.. + TBF[17] class 1 reserves ......C. + TBF[17] class 1 reserves .......C + TBF[18] class 1 reserves ...C.... + TBF[18] class 1 reserves ....C... + TBF[18] class 1 reserves .....C.. TBF[18] class 1 reserves ......C. + TBF[18] class 1 reserves .......C + TBF[19] class 1 reserves ...C.... + TBF[19] class 1 reserves ....C... + TBF[19] class 1 reserves .....C.. + TBF[19] class 1 reserves ......C. TBF[19] class 1 reserves .......C TBF[20] class 1 reserves ...C.... + TBF[20] class 1 reserves ....C... + TBF[20] class 1 reserves .....C.. + TBF[20] class 1 reserves ......C. + TBF[20] class 1 reserves .......C + TBF[21] class 1 reserves ...C.... TBF[21] class 1 reserves ....C... + TBF[21] class 1 reserves .....C.. + TBF[21] class 1 reserves ......C. + TBF[21] class 1 reserves .......C + TBF[22] class 1 reserves ...C.... + TBF[22] class 1 reserves ....C... TBF[22] class 1 reserves .....C.. + TBF[22] class 1 reserves ......C. + TBF[22] class 1 reserves .......C + TBF[23] class 1 reserves ...C.... + TBF[23] class 1 reserves ....C... + TBF[23] class 1 reserves .....C.. TBF[23] class 1 reserves ......C. + TBF[23] class 1 reserves .......C + TBF[24] class 1 reserves ...C.... + TBF[24] class 1 reserves ....C... + TBF[24] class 1 reserves .....C.. + TBF[24] class 1 reserves ......C. TBF[24] class 1 reserves .......C TBF[25] class 1 reserves ...C.... + TBF[25] class 1 reserves ....C... + TBF[25] class 1 reserves .....C.. + TBF[25] class 1 reserves ......C. + TBF[25] class 1 reserves .......C + TBF[26] class 1 reserves ...C.... TBF[26] class 1 reserves ....C... + TBF[26] class 1 reserves .....C.. + TBF[26] class 1 reserves ......C. + TBF[26] class 1 reserves .......C + TBF[27] class 1 reserves ...C.... + TBF[27] class 1 reserves ....C... TBF[27] class 1 reserves .....C.. + TBF[27] class 1 reserves ......C. + TBF[27] class 1 reserves .......C + TBF[28] class 1 reserves ...C.... + TBF[28] class 1 reserves ....C... + TBF[28] class 1 reserves .....C.. TBF[28] class 1 reserves ......C. + TBF[28] class 1 reserves .......C + TBF[29] class 1 reserves ...C.... + TBF[29] class 1 reserves ....C... + TBF[29] class 1 reserves .....C.. + TBF[29] class 1 reserves ......C. TBF[29] class 1 reserves .......C TBF[30] class 1 reserves ...C.... + TBF[30] class 1 reserves ....C... + TBF[30] class 1 reserves .....C.. + TBF[30] class 1 reserves ......C. + TBF[30] class 1 reserves .......C + TBF[31] class 1 reserves ...C.... TBF[31] class 1 reserves ....C... - Successfully allocated 32 UL TBFs + TBF[31] class 1 reserves .....C.. + TBF[31] class 1 reserves ......C. + TBF[31] class 1 reserves .......C + Successfully allocated 160 UL TBFs Going to test assignment with many TBF, algorithm B class 10 (DL after UL) TBF[0] class 10 reserves ...DDCD. TBF[1] class 10 reserves .....DCD @@ -8896,38 +9030,41 @@ Going to test assignment with many TBF, algorithm B class 10 (DL after UL) Successfully allocated 32 UL TBFs Going to test assignment with many TBF, algorithm A (UL after DL) TBF[0] class 1 reserves ...U.... + TBF[0] class 1 reserves ....U... + TBF[0] class 1 reserves .....U.. + TBF[0] class 1 reserves ......U. + TBF[0] class 1 reserves .......U + TBF[1] class 1 reserves ...U.... TBF[1] class 1 reserves ....U... + TBF[1] class 1 reserves .....U.. + TBF[1] class 1 reserves ......U. + TBF[1] class 1 reserves .......U + TBF[2] class 1 reserves ...U.... + TBF[2] class 1 reserves ....U... TBF[2] class 1 reserves .....U.. + TBF[2] class 1 reserves ......U. + TBF[2] class 1 reserves .......U + TBF[3] class 1 reserves ...U.... + TBF[3] class 1 reserves ....U... + TBF[3] class 1 reserves .....U.. TBF[3] class 1 reserves ......U. + TBF[3] class 1 reserves .......U + TBF[4] class 1 reserves ...U.... + TBF[4] class 1 reserves ....U... + TBF[4] class 1 reserves .....U.. + TBF[4] class 1 reserves ......U. TBF[4] class 1 reserves .......U TBF[5] class 1 reserves ...U.... + TBF[5] class 1 reserves ....U... + TBF[5] class 1 reserves .....U.. + TBF[5] class 1 reserves ......U. + TBF[5] class 1 reserves .......U + TBF[6] class 1 reserves ...U.... TBF[6] class 1 reserves ....U... - TBF[7] class 1 reserves .....U.. - TBF[8] class 1 reserves ......U. - TBF[9] class 1 reserves .......U - TBF[10] class 1 reserves ...U.... - TBF[11] class 1 reserves ....U... - TBF[12] class 1 reserves .....U.. - TBF[13] class 1 reserves ......U. - TBF[14] class 1 reserves .......U - TBF[15] class 1 reserves ...U.... - TBF[16] class 1 reserves ....U... - TBF[17] class 1 reserves .....U.. - TBF[18] class 1 reserves ......U. - TBF[19] class 1 reserves .......U - TBF[20] class 1 reserves ...U.... - TBF[21] class 1 reserves ....U... - TBF[22] class 1 reserves .....U.. - TBF[23] class 1 reserves ......U. - TBF[24] class 1 reserves .......U - TBF[25] class 1 reserves ...U.... - TBF[26] class 1 reserves ....U... - TBF[27] class 1 reserves .....U.. - TBF[28] class 1 reserves ......U. - TBF[29] class 1 reserves .......U - TBF[30] class 1 reserves ...U.... - TBF[31] class 1 reserves ....U... - Successfully allocated 32 UL TBFs + TBF[6] class 1 reserves .....U.. + TBF[6] class 1 reserves ......U. + TBF[6] class 1 reserves .......U + Successfully allocated 35 UL TBFs Going to test assignment with many TBF, algorithm B class 10 (UL after DL) TBF[0] class 10 reserves .....U.. TBF[1] class 10 reserves ......U. @@ -8964,38 +9101,41 @@ Going to test assignment with many TBF, algorithm B class 10 (UL after DL) Successfully allocated 32 UL TBFs Going to test assignment with many TBF, algorithm A (UL only) TBF[0] class 1 reserves ...U.... + TBF[0] class 1 reserves ....U... + TBF[0] class 1 reserves .....U.. + TBF[0] class 1 reserves ......U. + TBF[0] class 1 reserves .......U + TBF[1] class 1 reserves ...U.... TBF[1] class 1 reserves ....U... + TBF[1] class 1 reserves .....U.. + TBF[1] class 1 reserves ......U. + TBF[1] class 1 reserves .......U + TBF[2] class 1 reserves ...U.... + TBF[2] class 1 reserves ....U... TBF[2] class 1 reserves .....U.. + TBF[2] class 1 reserves ......U. + TBF[2] class 1 reserves .......U + TBF[3] class 1 reserves ...U.... + TBF[3] class 1 reserves ....U... + TBF[3] class 1 reserves .....U.. TBF[3] class 1 reserves ......U. + TBF[3] class 1 reserves .......U + TBF[4] class 1 reserves ...U.... + TBF[4] class 1 reserves ....U... + TBF[4] class 1 reserves .....U.. + TBF[4] class 1 reserves ......U. TBF[4] class 1 reserves .......U TBF[5] class 1 reserves ...U.... + TBF[5] class 1 reserves ....U... + TBF[5] class 1 reserves .....U.. + TBF[5] class 1 reserves ......U. + TBF[5] class 1 reserves .......U + TBF[6] class 1 reserves ...U.... TBF[6] class 1 reserves ....U... - TBF[7] class 1 reserves .....U.. - TBF[8] class 1 reserves ......U. - TBF[9] class 1 reserves .......U - TBF[10] class 1 reserves ...U.... - TBF[11] class 1 reserves ....U... - TBF[12] class 1 reserves .....U.. - TBF[13] class 1 reserves ......U. - TBF[14] class 1 reserves .......U - TBF[15] class 1 reserves ...U.... - TBF[16] class 1 reserves ....U... - TBF[17] class 1 reserves .....U.. - TBF[18] class 1 reserves ......U. - TBF[19] class 1 reserves .......U - TBF[20] class 1 reserves ...U.... - TBF[21] class 1 reserves ....U... - TBF[22] class 1 reserves .....U.. - TBF[23] class 1 reserves ......U. - TBF[24] class 1 reserves .......U - TBF[25] class 1 reserves ...U.... - TBF[26] class 1 reserves ....U... - TBF[27] class 1 reserves .....U.. - TBF[28] class 1 reserves ......U. - TBF[29] class 1 reserves .......U - TBF[30] class 1 reserves ...U.... - TBF[31] class 1 reserves ....U... - Successfully allocated 32 UL TBFs + TBF[6] class 1 reserves .....U.. + TBF[6] class 1 reserves ......U. + TBF[6] class 1 reserves .......U + Successfully allocated 35 UL TBFs Going to test assignment with many TBF, algorithm B class 10 (UL only) TBF[0] class 10 reserves .....U.. TBF[1] class 10 reserves ......U. @@ -9032,38 +9172,166 @@ Going to test assignment with many TBF, algorithm B class 10 (UL only) Successfully allocated 32 UL TBFs Going to test assignment with many TBF, algorithm A (DL ONLY) TBF[0] class 1 reserves ...C.... + TBF[0] class 1 reserves ....C... + TBF[0] class 1 reserves .....C.. + TBF[0] class 1 reserves ......C. + TBF[0] class 1 reserves .......C + TBF[1] class 1 reserves ...C.... TBF[1] class 1 reserves ....C... + TBF[1] class 1 reserves .....C.. + TBF[1] class 1 reserves ......C. + TBF[1] class 1 reserves .......C + TBF[2] class 1 reserves ...C.... + TBF[2] class 1 reserves ....C... TBF[2] class 1 reserves .....C.. + TBF[2] class 1 reserves ......C. + TBF[2] class 1 reserves .......C + TBF[3] class 1 reserves ...C.... + TBF[3] class 1 reserves ....C... + TBF[3] class 1 reserves .....C.. TBF[3] class 1 reserves ......C. + TBF[3] class 1 reserves .......C + TBF[4] class 1 reserves ...C.... + TBF[4] class 1 reserves ....C... + TBF[4] class 1 reserves .....C.. + TBF[4] class 1 reserves ......C. TBF[4] class 1 reserves .......C TBF[5] class 1 reserves ...C.... + TBF[5] class 1 reserves ....C... + TBF[5] class 1 reserves .....C.. + TBF[5] class 1 reserves ......C. + TBF[5] class 1 reserves .......C + TBF[6] class 1 reserves ...C.... TBF[6] class 1 reserves ....C... + TBF[6] class 1 reserves .....C.. + TBF[6] class 1 reserves ......C. + TBF[6] class 1 reserves .......C + TBF[7] class 1 reserves ...C.... + TBF[7] class 1 reserves ....C... TBF[7] class 1 reserves .....C.. + TBF[7] class 1 reserves ......C. + TBF[7] class 1 reserves .......C + TBF[8] class 1 reserves ...C.... + TBF[8] class 1 reserves ....C... + TBF[8] class 1 reserves .....C.. TBF[8] class 1 reserves ......C. + TBF[8] class 1 reserves .......C + TBF[9] class 1 reserves ...C.... + TBF[9] class 1 reserves ....C... + TBF[9] class 1 reserves .....C.. + TBF[9] class 1 reserves ......C. TBF[9] class 1 reserves .......C TBF[10] class 1 reserves ...C.... + TBF[10] class 1 reserves ....C... + TBF[10] class 1 reserves .....C.. + TBF[10] class 1 reserves ......C. + TBF[10] class 1 reserves .......C + TBF[11] class 1 reserves ...C.... TBF[11] class 1 reserves ....C... + TBF[11] class 1 reserves .....C.. + TBF[11] class 1 reserves ......C. + TBF[11] class 1 reserves .......C + TBF[12] class 1 reserves ...C.... + TBF[12] class 1 reserves ....C... TBF[12] class 1 reserves .....C.. + TBF[12] class 1 reserves ......C. + TBF[12] class 1 reserves .......C + TBF[13] class 1 reserves ...C.... + TBF[13] class 1 reserves ....C... + TBF[13] class 1 reserves .....C.. TBF[13] class 1 reserves ......C. + TBF[13] class 1 reserves .......C + TBF[14] class 1 reserves ...C.... + TBF[14] class 1 reserves ....C... + TBF[14] class 1 reserves .....C.. + TBF[14] class 1 reserves ......C. TBF[14] class 1 reserves .......C TBF[15] class 1 reserves ...C.... + TBF[15] class 1 reserves ....C... + TBF[15] class 1 reserves .....C.. + TBF[15] class 1 reserves ......C. + TBF[15] class 1 reserves .......C + TBF[16] class 1 reserves ...C.... TBF[16] class 1 reserves ....C... + TBF[16] class 1 reserves .....C.. + TBF[16] class 1 reserves ......C. + TBF[16] class 1 reserves .......C + TBF[17] class 1 reserves ...C.... + TBF[17] class 1 reserves ....C... TBF[17] class 1 reserves .....C.. + TBF[17] class 1 reserves ......C. + TBF[17] class 1 reserves .......C + TBF[18] class 1 reserves ...C.... + TBF[18] class 1 reserves ....C... + TBF[18] class 1 reserves .....C.. TBF[18] class 1 reserves ......C. + TBF[18] class 1 reserves .......C + TBF[19] class 1 reserves ...C.... + TBF[19] class 1 reserves ....C... + TBF[19] class 1 reserves .....C.. + TBF[19] class 1 reserves ......C. TBF[19] class 1 reserves .......C TBF[20] class 1 reserves ...C.... + TBF[20] class 1 reserves ....C... + TBF[20] class 1 reserves .....C.. + TBF[20] class 1 reserves ......C. + TBF[20] class 1 reserves .......C + TBF[21] class 1 reserves ...C.... TBF[21] class 1 reserves ....C... + TBF[21] class 1 reserves .....C.. + TBF[21] class 1 reserves ......C. + TBF[21] class 1 reserves .......C + TBF[22] class 1 reserves ...C.... + TBF[22] class 1 reserves ....C... TBF[22] class 1 reserves .....C.. + TBF[22] class 1 reserves ......C. + TBF[22] class 1 reserves .......C + TBF[23] class 1 reserves ...C.... + TBF[23] class 1 reserves ....C... + TBF[23] class 1 reserves .....C.. TBF[23] class 1 reserves ......C. + TBF[23] class 1 reserves .......C + TBF[24] class 1 reserves ...C.... + TBF[24] class 1 reserves ....C... + TBF[24] class 1 reserves .....C.. + TBF[24] class 1 reserves ......C. TBF[24] class 1 reserves .......C TBF[25] class 1 reserves ...C.... + TBF[25] class 1 reserves ....C... + TBF[25] class 1 reserves .....C.. + TBF[25] class 1 reserves ......C. + TBF[25] class 1 reserves .......C + TBF[26] class 1 reserves ...C.... TBF[26] class 1 reserves ....C... + TBF[26] class 1 reserves .....C.. + TBF[26] class 1 reserves ......C. + TBF[26] class 1 reserves .......C + TBF[27] class 1 reserves ...C.... + TBF[27] class 1 reserves ....C... TBF[27] class 1 reserves .....C.. + TBF[27] class 1 reserves ......C. + TBF[27] class 1 reserves .......C + TBF[28] class 1 reserves ...C.... + TBF[28] class 1 reserves ....C... + TBF[28] class 1 reserves .....C.. TBF[28] class 1 reserves ......C. + TBF[28] class 1 reserves .......C + TBF[29] class 1 reserves ...C.... + TBF[29] class 1 reserves ....C... + TBF[29] class 1 reserves .....C.. + TBF[29] class 1 reserves ......C. TBF[29] class 1 reserves .......C TBF[30] class 1 reserves ...C.... + TBF[30] class 1 reserves ....C... + TBF[30] class 1 reserves .....C.. + TBF[30] class 1 reserves ......C. + TBF[30] class 1 reserves .......C + TBF[31] class 1 reserves ...C.... TBF[31] class 1 reserves ....C... - Successfully allocated 32 UL TBFs + TBF[31] class 1 reserves .....C.. + TBF[31] class 1 reserves ......C. + TBF[31] class 1 reserves .......C + Successfully allocated 160 UL TBFs Going to test assignment with many TBF, algorithm B class 10 (DL ONLY) TBF[0] class 10 reserves ...DDCD. TBF[1] class 10 reserves .....DCD diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index c64d4f1..72c3851 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -2,8 +2,6 @@ Allocating DL TBF: MS_CLASS=0 Creating MS object, TLLI = 0x00000000 Slot Allocation (Algorithm A) for class 0 -Searching for first unallocated TFI: TRX=0 first TS=2 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 4, because not enabled @@ -11,7 +9,7 @@ Searching for first unallocated TFI: TRX=0 first TS=2 - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled - Skipping TS 3, because num TBFs 0 >= 0 -- Assign downlink TS=2 +- Assign downlink TS=2 TFI=0 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) @@ -21,8 +19,6 @@ Modifying MS object, TLLI = 0x00002342, TA 0 -> 4 ********** TBF starts here ********** Allocating UL TBF: MS_CLASS=0 Slot Allocation (Algorithm A) for class 0 -Searching for first unallocated TFI: TRX=0 first TS=2 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 3, because need to reuse TS @@ -30,7 +26,7 @@ Searching for first unallocated TFI: TRX=0 first TS=2 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign uplink TS=2 USF=0 +- Assign uplink TS=2 TFI=0 USF=0 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) @@ -46,8 +42,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -55,7 +49,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=0 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) @@ -89,8 +83,6 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) changes state from FLOW to WAIT REL ********** TBF starts here ********** Allocating DL TBF: MS_CLASS=45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=1. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -98,7 +90,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=1 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) @@ -125,8 +117,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -134,7 +124,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=0 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) @@ -168,8 +158,6 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) changes state from FLOW to WAIT REL ********** TBF starts here ********** Allocating DL TBF: MS_CLASS=45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=1. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -177,7 +165,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=1 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) @@ -204,8 +192,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -213,7 +199,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=0 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) @@ -435,8 +421,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -444,7 +428,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=0 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) @@ -457,8 +441,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=1. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -466,7 +448,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=1 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) @@ -496,8 +478,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -505,7 +485,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=0 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) @@ -523,8 +503,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=1. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -532,7 +510,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=1 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) @@ -550,8 +528,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=2. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -559,7 +535,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=2 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) @@ -577,8 +553,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=3. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -586,7 +560,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=3 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) @@ -604,8 +578,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=4. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -613,7 +585,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=4 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) @@ -631,8 +603,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=5. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -640,7 +610,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=5 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) @@ -658,8 +628,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=6. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -667,7 +635,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=6 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) @@ -685,8 +653,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=7. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -694,7 +660,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=7 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) @@ -712,8 +678,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=8. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -721,7 +685,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=8 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) @@ -739,8 +703,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=9. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -748,7 +710,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=9 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) @@ -766,8 +728,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=10. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -775,7 +735,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=10 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) @@ -793,8 +753,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=11. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -802,7 +760,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=11 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) @@ -820,8 +778,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=12. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -829,7 +785,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=12 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) @@ -847,8 +803,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=13. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -856,7 +810,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=13 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) @@ -874,8 +828,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=14. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -883,7 +835,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=14 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) @@ -901,8 +853,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=15. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -910,7 +860,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=15 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) @@ -928,8 +878,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=16. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -937,7 +885,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=16 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) @@ -955,8 +903,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=17. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -964,7 +910,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=17 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) @@ -982,8 +928,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=18. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -991,7 +935,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=18 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) @@ -1009,8 +953,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=19. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1018,7 +960,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=19 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) @@ -1036,8 +978,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=20. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1045,7 +985,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=20 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) @@ -1063,8 +1003,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=21. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1072,7 +1010,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=21 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) @@ -1090,8 +1028,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=22. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1099,7 +1035,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=22 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) @@ -1117,8 +1053,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=23. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1126,7 +1060,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=23 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) @@ -1144,8 +1078,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=24. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1153,7 +1085,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=24 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) @@ -1171,8 +1103,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=25. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1180,7 +1110,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=25 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) @@ -1198,8 +1128,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=26. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1207,7 +1135,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=26 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) @@ -1225,8 +1153,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=27. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1234,7 +1160,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=27 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) @@ -1252,8 +1178,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=28. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1261,7 +1185,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=28 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) @@ -1279,8 +1203,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=29. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1288,7 +1210,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=29 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) @@ -1306,8 +1228,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=30. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1315,7 +1235,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=30 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) @@ -1333,8 +1253,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=31. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1342,7 +1260,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=31 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) @@ -1360,9 +1278,7 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 -No TFI available. -- Failed to allocate a TFI +- Failed to find a usable TRX (TFI exhausted) No PDCH resource Destroying MS object, TLLI = 0x00000000 ********** TBF starts here ********** @@ -1370,8 +1286,6 @@ Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1379,7 +1293,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=0 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) @@ -1400,8 +1314,6 @@ Detaching TBF from MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 ********** TBF starts here ********** Allocating DL TBF: MS_CLASS=45 Slot Allocation (Algorithm A) for class 45 -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1409,7 +1321,7 @@ Searching for first unallocated TFI: TRX=0 first TS=4 - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled - Skipping TS 7, because not enabled -- Assign downlink TS=4 +- Assign downlink TS=4 TFI=0 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) @@ -1454,8 +1366,6 @@ MS requests UL TBF on RACH, so we provide one: Allocating UL TBF: MS_CLASS=0 Creating MS object, TLLI = 0x00000000 Slot Allocation (Algorithm A) for class 0 -Searching for first unallocated TFI: TRX=0 first TS=7 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1463,7 +1373,7 @@ Searching for first unallocated TFI: TRX=0 first TS=7 - Skipping TS 4, because not enabled - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled -- Assign uplink TS=7 USF=0 +- Assign uplink TS=7 TFI=0 USF=0 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) @@ -1512,8 +1422,6 @@ MS does not give us a class. Allocating UL TBF: MS_CLASS=0 Creating MS object, TLLI = 0x00000000 Slot Allocation (Algorithm A) for class 0 -Searching for first unallocated TFI: TRX=0 first TS=7 - Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1521,7 +1429,7 @@ Searching for first unallocated TFI: TRX=0 first TS=7 - Skipping TS 4, because not enabled - Skipping TS 5, because not enabled - Skipping TS 6, because not enabled -- Assign uplink TS=7 USF=0 +- Assign uplink TS=7 TFI=0 USF=0 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) |