diff options
-rw-r--r-- | src/bts.cpp | 158 | ||||
-rw-r--r-- | src/bts.h | 28 | ||||
-rw-r--r-- | src/gprs_rlcmac_ts_alloc.cpp | 10 | ||||
-rw-r--r-- | src/sba.cpp | 42 | ||||
-rw-r--r-- | src/tbf.cpp | 2 | ||||
-rw-r--r-- | tests/tbf/TbfTest.cpp | 258 | ||||
-rw-r--r-- | tests/tbf/TbfTest.err | 1535 | ||||
-rw-r--r-- | tests/tbf/TbfTest.ok | 12 |
8 files changed, 2007 insertions, 38 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index cfccec9..c116eed 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -188,11 +188,13 @@ BTS::BTS() { memset(&m_bts, 0, sizeof(m_bts)); m_bts.bts = this; - + m_total_pdch = 0; /* initialize back pointers */ for (size_t trx_no = 0; trx_no < ARRAY_SIZE(m_bts.trx); ++trx_no) { struct gprs_rlcmac_trx *trx = &m_bts.trx[trx_no]; trx->trx_no = trx_no; + trx->num_pdch = 0; + trx->current_load = 0; trx->bts = this; for (size_t ts_no = 0; ts_no < ARRAY_SIZE(trx->pdch); ++ts_no) { @@ -417,9 +419,82 @@ int BTS::tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx) { struct gprs_rlcmac_pdch *pdch; + uint32_t free_tfis = 0xffffffff; + uint8_t ts, tfi; + bool possible_trx[8]; + int ret; + + /* This function will get list of possible TRXs */ + ret = get_possible_trxs(dir, possible_trx, use_trx); + if (ret < 0) + return -EBUSY; + + + if (use_trx >= 0) + *_trx = use_trx; + else + *_trx = get_suitable_trx(possible_trx); + + LOGP(DRLCMAC, LOGL_DEBUG, + "Searching for first unallocated TFI: TRX=%d\n", *_trx); + + for (ts = 0; ts < 8; ts++) { + pdch = &m_bts.trx[*_trx].pdch[ts]; + free_tfis &= ~pdch->assigned_tfi(dir); + } + /* find the first */ + for (tfi = 0; tfi < 32; tfi++) { + if (free_tfis & 1 << tfi) + break; + } + + OSMO_ASSERT(tfi < 32); + + LOGP(DRLCMAC, LOGL_DEBUG, " Found TFI=%d.\n", tfi); + + return tfi; +} + +/* + * Search for free TFI and return TFI, TRX. + * This method returns the first TFI that is currently not used in any PDCH of + * a TRX. The first TRX that contains such an TFI is returned. Negative values + * indicate errors. + */ +int BTS::get_possible_trxs_sba( + bool *_trx) +{ + uint8_t trx; + bool has_pdch = false; + + for (trx = 0; trx < 8; trx++) { + if (bts_data()->trx[trx].num_pdch) { + _trx[trx] = true; + has_pdch = true; + LOGP(DRLCMAC, LOGL_DEBUG, " Valid TRX=%d.\n", trx); + } else { + _trx[trx] = false; + LOGP(DRLCMAC, LOGL_DEBUG, " Not valid TRX=%d.\n", trx); + } + } + if (has_pdch) + return 0; + + return -EINVAL; +} + +/* + * This method loops through all possible TRX and + * returns subset of possible TRXs based on availability. + */ +int BTS::get_possible_trxs(enum gprs_rlcmac_tbf_direction dir, + bool *_trx, int8_t use_trx) +{ + struct gprs_rlcmac_pdch *pdch; uint32_t free_tfis; + uint32_t is_tfis_available = false; bool has_pdch = false; - uint8_t trx_from, trx_to, trx, ts, tfi; + uint8_t trx_from, trx_to, trx, ts; if (use_trx >= 0 && use_trx < 8) trx_from = trx_to = use_trx; @@ -442,8 +517,12 @@ int BTS::tfi_find_free(enum gprs_rlcmac_tbf_direction dir, trx_has_pdch = true; has_pdch = true; } - if (trx_has_pdch && free_tfis) - break; + if (trx_has_pdch && free_tfis) { + _trx[trx] = true; + is_tfis_available = true; + } else { + _trx[trx] = false; + } free_tfis = 0; } @@ -452,26 +531,69 @@ int BTS::tfi_find_free(enum gprs_rlcmac_tbf_direction dir, return -EINVAL; } - if (!free_tfis) { + if (!is_tfis_available) { LOGP(DRLCMAC, LOGL_NOTICE, "No TFI available.\n"); return -EBUSY; } + return 0; +} +/* + * This method loops through all subset of TRXs provided by + * get_possible_trxs and does the load balancing algorithm. and + * selects best TRX possible based on load and capacity + */ +int BTS::get_suitable_trx(bool *avail_trx) +{ + uint8_t trx_from, trx_to, trx; + uint32_t select_probability = 0; + uint32_t temp_probability = 0; + int selected_trx = -1; + bool is_better_trx = false; - LOGP(DRLCMAC, LOGL_DEBUG, - "Searching for first unallocated TFI: TRX=%d\n", trx); + trx_from = 0; + trx_to = 7; - /* find the first */ - for (tfi = 0; tfi < 32; tfi++) { - if (free_tfis & 1 << tfi) - break; - } + for (trx = trx_from; trx <= trx_to; trx++) { + /* Check if this TRX is in possible list */ + if (!avail_trx[trx]) + continue; - OSMO_ASSERT(tfi < 32); + is_better_trx = false; + + temp_probability = MAX_LOAD_PROBABILITY - + (get_num_pdch() * 100 * + m_bts.trx[trx].current_load) + / m_bts.trx[trx].num_pdch; + + LOGP(DRLCMAC, LOGL_DEBUG, "trx(%d) cur load(%d)" + " numpdch(%d) prob1(%u) seleprob(%u)" + " btsnumpdch(%d)\n", trx, + m_bts.trx[trx].current_load, + m_bts.trx[trx].num_pdch, + temp_probability, select_probability, + get_num_pdch()); + + if (temp_probability >= select_probability) { + if (temp_probability > select_probability) + is_better_trx = true; + else if (temp_probability == select_probability) + if (selected_trx >= 0 || selected_trx < 8) + if (m_bts.trx[selected_trx].num_pdch + < m_bts.trx[trx].num_pdch) + is_better_trx = true; + } + if (is_better_trx) { + selected_trx = trx; + select_probability = + temp_probability; + LOGP(DRLCMAC, LOGL_DEBUG, "selected pro(%u)" + "selected_trx(%d)\n", + select_probability, selected_trx); + } + } - LOGP(DRLCMAC, LOGL_DEBUG, " Found TFI=%d.\n", tfi); - *_trx = trx; - return tfi; + return selected_trx; } int BTS::rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn) @@ -783,13 +905,17 @@ void gprs_rlcmac_pdch::enable() { /* TODO: Check if there are still allocated resources.. */ INIT_LLIST_HEAD(&paging_list); + trx->num_pdch++; m_is_enabled = 1; + bts()->increment_num_pdch(); } void gprs_rlcmac_pdch::disable() { /* TODO.. kick free_resources once we know the TRX/TS we are on */ m_is_enabled = 0; + trx->num_pdch--; + bts()->decrement_num_pdch(); } void gprs_rlcmac_pdch::free_resources() @@ -44,6 +44,7 @@ extern "C" { #define LLC_CODEL_USE_DEFAULT (-1) #define MAX_GPRS_CS 9 +#define MAX_LOAD_PROBABILITY 0xffffffff struct BTS; struct GprsMs; @@ -136,7 +137,8 @@ struct gprs_rlcmac_trx { /* back pointers */ struct BTS *bts; uint8_t trx_no; - + uint8_t current_load; + uint8_t num_pdch; #ifdef __cplusplus void reserve_slots(enum gprs_rlcmac_tbf_direction dir, uint8_t slots); void unreserve_slots(enum gprs_rlcmac_tbf_direction dir, uint8_t slots); @@ -345,6 +347,9 @@ public: gprs_rlcmac_ul_tbf *ul_tbf_by_tfi(uint8_t tfi, uint8_t trx, uint8_t ts); int tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx); + int get_possible_trxs(enum gprs_rlcmac_tbf_direction dir, + bool *_trx, int8_t use_trx); + int get_suitable_trx(bool *suitable_trx); int rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn); uint8_t is_single_block(uint16_t ra, enum ph_burst_type burst_type, @@ -451,6 +456,10 @@ public: void ms_present(int32_t n); int32_t ms_present_get(); + void increment_num_pdch(); + void decrement_num_pdch(); + uint8_t get_num_pdch() const; + int get_possible_trxs_sba(bool *_trx); /* * Below for C interface for the VTY @@ -476,6 +485,8 @@ private: /* list of downlink TBFs */ LListHead<gprs_rlcmac_tbf> m_dl_tbfs; + /* The summation of all the PDCH across all TRX for this BTS*/ + uint8_t m_total_pdch; private: /* disable copying to avoid slicing */ BTS(const BTS&); @@ -487,6 +498,21 @@ inline int BTS::current_frame_number() const return m_cur_fn; } +inline void BTS::increment_num_pdch() +{ + m_total_pdch++; +} + +inline void BTS::decrement_num_pdch() +{ + m_total_pdch--; +} + +inline uint8_t BTS::get_num_pdch() const +{ + return m_total_pdch; +} + inline SBAController *BTS::sba() { return &m_sba; diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index 57197b2..df65767 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -383,8 +383,11 @@ static int tfi_find_free(BTS *bts, const GprsMs *ms, int tfi; uint8_t trx_no; - if (use_trx == -1 && ms->current_trx()) + LOGP(DRLCMAC, LOGL_DEBUG, " USE trx = %d \n",use_trx); + if (use_trx == -1 && ms->current_trx()) { use_trx = ms->current_trx()->trx_no; + LOGP(DRLCMAC, LOGL_DEBUG, " MS alive = %d \n",use_trx); + } tfi = bts->tfi_find_free(dir, &trx_no, use_trx); if (tfi < 0) @@ -393,6 +396,8 @@ static int tfi_find_free(BTS *bts, const GprsMs *ms, if (trx_no_) *trx_no_ = trx_no; + LOGP(DRLCMAC, LOGL_DEBUG, " TREE trx = %d TFI = %d\n", *trx_no_, tfi); + return tfi; } @@ -479,6 +484,7 @@ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, } tbf_->trx = trx; + trx->current_load++; /* the only one TS is the common TS */ tbf_->first_ts = tbf_->first_common_ts = ts; ms_->set_reserved_slots(trx, 1 << ts, 1 << ts); @@ -1000,6 +1006,7 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, if (!(dl_slots & (1 << ts))) continue; + trx->current_load++; LOGP(DRLCMAC, LOGL_DEBUG, "- Assigning DL TS " "%d\n", ts); assign_dlink_tbf(&trx->pdch[ts], dl_tbf, tfi); @@ -1012,6 +1019,7 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, continue; OSMO_ASSERT(usf[ts] >= 0); + trx->current_load++; LOGP(DRLCMAC, LOGL_DEBUG, "- Assigning UL TS " "%d\n", ts); diff --git a/src/sba.cpp b/src/sba.cpp index 46c1431..117aa34 100644 --- a/src/sba.cpp +++ b/src/sba.cpp @@ -49,8 +49,27 @@ int SBAController::alloc( struct gprs_rlcmac_pdch *pdch; struct gprs_rlcmac_sba *sba; - int8_t trx, ts; + int8_t ts; uint32_t fn; + bool trxs[8]; + int selected_trx; + int ret; + + ret = m_bts.get_possible_trxs_sba(trxs); + + if (ret == -EINVAL) + return -EINVAL; + + selected_trx = m_bts.get_suitable_trx(trxs); + + for (ts = 7; ts >= 0; ts--) { + pdch = &m_bts.bts_data()->trx[selected_trx].pdch[ts]; + if (!pdch->is_enabled()) + continue; + break; + } + if (ts < 0) + return -EINVAL; sba = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_sba); if (!sba) @@ -59,25 +78,10 @@ int SBAController::alloc( if (!gsm48_ta_is_valid(ta)) return -EINVAL; - for (trx = 0; trx < 8; trx++) { - for (ts = 7; ts >= 0; ts--) { - pdch = &m_bts.bts_data()->trx[trx].pdch[ts]; - if (!pdch->is_enabled()) - continue; - break; - } - if (ts >= 0) - break; - } - if (trx == 8) { - LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH available.\n"); - talloc_free(sba); - return -EINVAL; - } fn = (pdch->last_rts_fn + AGCH_START_OFFSET) % 2715648; - sba->trx_no = trx; + sba->trx_no = selected_trx; sba->ts_no = ts; sba->fn = fn; sba->ta = ta; @@ -85,9 +89,11 @@ int SBAController::alloc( llist_add(&sba->list, &m_sbas); m_bts.sba_allocated(); - *_trx = trx; + *_trx = selected_trx; *_ts = ts; *_fn = fn; + LOGP(DRLCMAC, LOGL_DEBUG, " sba fn=%d ts = %d trx = %d\n", fn, ts, selected_trx); + return 0; } diff --git a/src/tbf.cpp b/src/tbf.cpp index cbb7e30..fd39fe8 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -395,7 +395,7 @@ static void tbf_unlink_pdch(struct gprs_rlcmac_tbf *tbf) for (ts = 0; ts < 8; ts++) { if (!tbf->pdch[ts]) continue; - + tbf->trx->current_load--; tbf->pdch[ts]->detach_tbf(tbf); tbf->pdch[ts] = NULL; } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 675cc8a..4bca8a8 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3350,6 +3350,263 @@ static void test_packet_access_rej_prr() printf("=== end %s ===\n", __func__); } +void test_multi_trx_test_same_capacity() +{ + BTS the_bts; + static gprs_rlcmac_dl_tbf *dl_tbf; + uint8_t trx_no = 0xff; + uint8_t ms_class = 1; + uint8_t egprs_ms_class = 1; + + printf("=== start %s ===\n", __func__); + + setup_bts(&the_bts, 4); + the_bts.bts_data()->trx[0].pdch[5].enable(); + the_bts.bts_data()->alloc_algorithm = alloc_algorithm_b; + the_bts.bts_data()->trx[1].pdch[4].enable(); + the_bts.bts_data()->trx[1].pdch[5].enable(); + + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + + printf("=== end %s ===\n", __func__); + +} + +void test_multi_trx_test_1_2_capacity() +{ + BTS the_bts; + static gprs_rlcmac_dl_tbf *dl_tbf; + uint8_t trx_no = 0xff; + uint8_t ms_class = 1; + uint8_t egprs_ms_class = 1; + + printf("=== start %s ===\n", __func__); + + setup_bts(&the_bts, 4); + the_bts.bts_data()->alloc_algorithm = alloc_algorithm_b; + the_bts.bts_data()->trx[0].pdch[5].enable(); + the_bts.bts_data()->trx[1].pdch[4].enable(); + + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + + printf("=== end %s ===\n", __func__); + +} + +void test_multi_trx_test_1_4_capacity() +{ + BTS the_bts; + static gprs_rlcmac_dl_tbf *dl_tbf; + uint8_t trx_no = 0xff; + uint8_t ms_class = 1; + uint8_t egprs_ms_class = 1; + + printf("=== start %s ===\n", __func__); + + setup_bts(&the_bts, 4); + the_bts.bts_data()->alloc_algorithm = alloc_algorithm_b; + + the_bts.bts_data()->trx[0].pdch[5].enable(); + the_bts.bts_data()->trx[0].pdch[6].enable(); + the_bts.bts_data()->trx[0].pdch[7].enable(); + the_bts.bts_data()->trx[1].pdch[0].enable(); + + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + + printf("=== end %s ===\n", __func__); +} + +void test_multi_trx_test_release_alloc() +{ + BTS the_bts; + static gprs_rlcmac_dl_tbf *dl_tbf; + uint8_t trx_no = 0xff; + uint8_t ms_class = 1; + uint8_t egprs_ms_class = 1; + + printf("=== start %s ===\n", __func__); + + setup_bts(&the_bts, 4); + the_bts.bts_data()->alloc_algorithm = alloc_algorithm_b; + + the_bts.bts_data()->trx[0].pdch[5].enable(); + the_bts.bts_data()->trx[1].pdch[0].enable(); + + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + tbf_free(dl_tbf); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + tbf_free(dl_tbf); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + tbf_free(dl_tbf); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + + printf("=== end %s ===\n", __func__); +} + +void test_multi_trx_test_same_capacity_dl_ul_combined() +{ + BTS the_bts; + static gprs_rlcmac_dl_tbf *dl_tbf; + static gprs_rlcmac_ul_tbf *ul_tbf; + uint8_t trx_no = 0xff; + uint8_t ms_class = 1; + uint8_t egprs_ms_class = 1; + + printf("=== start %s ===\n", __func__); + + setup_bts(&the_bts, 4); + the_bts.bts_data()->alloc_algorithm = alloc_algorithm_b; + the_bts.bts_data()->trx[1].pdch[4].enable(); + + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + ul_tbf = tbf_alloc_ul(the_bts.bts_data(), + dl_tbf->trx->trx_no, + dl_tbf->ms_class(), dl_tbf->ms()->egprs_ms_class(), + dl_tbf->tlli(), dl_tbf->ta(), dl_tbf->ms()); + OSMO_ASSERT(ul_tbf->trx->trx_no == 0); + + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 1); + dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, trx_no, + ms_class, egprs_ms_class, 1); + OSMO_ASSERT(dl_tbf->trx->trx_no == 0); + ul_tbf = tbf_alloc_ul(the_bts.bts_data(), + dl_tbf->trx->trx_no, + dl_tbf->ms_class(), dl_tbf->ms()->egprs_ms_class(), + dl_tbf->tlli(), dl_tbf->ta(), dl_tbf->ms()); + OSMO_ASSERT(ul_tbf->trx->trx_no == 0); + + printf("=== end %s ===\n", __func__); + +} + +void test_multi_trx_test() +{ + printf("=== start %s ===\n", __func__); + test_multi_trx_test_same_capacity(); + test_multi_trx_test_1_2_capacity(); + test_multi_trx_test_1_4_capacity(); + test_multi_trx_test_release_alloc(); + test_multi_trx_test_same_capacity_dl_ul_combined(); + printf("=== end %s ===\n", __func__); + +} void test_packet_access_rej_epdan() { BTS the_bts; @@ -3420,6 +3677,7 @@ int main(int argc, char **argv) test_tbf_egprs_two_phase_puan(); test_packet_access_rej_prr(); test_packet_access_rej_prr_no_other_tbfs(); + test_multi_trx_test(); if (getenv("TALLOC_REPORT_FULL")) talloc_report_full(tall_pcu_ctx, stderr); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 1464703..0e5f072 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -35,6 +35,8 @@ Modifying MS object, TLLI: 0x00000000 -> 0x00002342, already confirmed partly The MS object cannot fully confirm an unexpected TLLI: 0x00004232, partly confirmed Modifying MS object, TLLI: 0x00002342 -> 0x00004232, already confirmed partly Modifying MS object, TLLI = 0x00004232, TA 4 -> 6 +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -123,6 +125,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=RELEASING), Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=RELEASING) ********** TBF ends here ********** Destroying MS object, TLLI = 0xffeeddcc +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -211,6 +215,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING), Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING) ********** TBF ends here ********** Destroying MS object, TLLI = 0xffeeddcc +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -514,6 +520,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING), Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -535,6 +543,8 @@ Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 D Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 Modifying MS object, TLLI = 0x00000000, TA 220 -> 0 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW +trx(0) cur load(1) numpdch(1) prob1(4294967195) seleprob(0) btsnumpdch(1) +selected pro(4294967195)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=1. ********** TBF starts here ********** @@ -1508,6 +1518,8 @@ data block (BSN 2, CS-1): 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 Polling cannot be scheduled in this TS 7 (first control TS 4) msg block (BSN 2, CS-1): 07 01 04 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 MSG = 07 01 04 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. MS requests UL TBF on RACH, so we provide one @@ -1588,10 +1600,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -1674,10 +1699,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -1809,10 +1847,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654283 block=11 data=00 01 0 MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654232 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(2) numpdch(1) prob1(4294967095) seleprob(0) btsnumpdch(1) +selected pro(4294967095)selected_trx(0) + sba fn=2654335 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654232 (17,39,22), SBFn=2654335 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8c f6 07 00 c0 0c 68 ab 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(2) numpdch(1) prob1(4294967095) seleprob(0) btsnumpdch(1) +selected pro(4294967095)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=1. TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654292, TS=7 (curr FN 2654335) @@ -1886,10 +1937,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -1980,10 +2044,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654275 block=9 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654224 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(1) numpdch(1) prob1(4294967195) seleprob(0) btsnumpdch(1) +selected pro(4294967195)selected_trx(0) + sba fn=2654327 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654224 (17,31,14), SBFn=2654327 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b ee 07 00 c0 0c 60 6b 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(1) numpdch(1) prob1(4294967195) seleprob(0) btsnumpdch(1) +selected pro(4294967195)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -2065,10 +2142,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -2155,6 +2245,8 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) stopping timer 3169. PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xf1223344, TBF = TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) ********** TBF ends here ********** +trx(0) cur load(1) numpdch(1) prob1(4294967195) seleprob(0) btsnumpdch(1) +selected pro(4294967195)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. MS requests UL TBF on RACH, so we provide one @@ -2221,10 +2313,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -3279,8 +3384,10 @@ No PDCH resource Allocating DL TBF: MS_CLASS=12/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 12 + USE trx = 0 Searching for first unallocated TFI: TRX=0 Found TFI=0. + TREE trx = 0 TFI = 0 Slot Allocation (Algorithm B) for class 12 - Rx=4 Tx=4 Sum Rx+Tx=5 Tta=2 Ttb=1 Tra=2 Trb=1 Type=1 - Skipping TS 0, because not enabled @@ -3318,8 +3425,10 @@ Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 12 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 12 Enabled EGPRS for TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), mode EGPRS + USE trx = 0 Searching for first unallocated TFI: TRX=0 Found TFI=0. + TREE trx = 0 TFI = 0 Slot Allocation (Algorithm B) for class 12 - Rx=4 Tx=4 Sum Rx+Tx=5 Tta=2 Ttb=1 Tra=2 Trb=1 Type=1 - Skipping TS 0, because not enabled @@ -3357,10 +3466,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -3453,10 +3575,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -3708,6 +3843,8 @@ Send dowlink assignment on PACCH, because TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=NULL EGPRS) changes state from NULL to ASSIGN TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) starting timer 0. TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) append +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -4043,6 +4180,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -4323,6 +4462,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -4562,6 +4703,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -4765,6 +4908,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -4946,6 +5091,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5108,6 +5255,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5266,6 +5415,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5409,6 +5560,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5555,6 +5708,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5607,6 +5762,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5659,6 +5816,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5711,6 +5870,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5782,6 +5943,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5853,6 +6016,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5924,6 +6089,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -5995,6 +6162,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -6053,6 +6222,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -6111,6 +6282,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -6169,6 +6342,8 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EG Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -6237,10 +6412,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -6365,8 +6553,10 @@ Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Enabled EGPRS for TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), mode EGPRS + USE trx = 0 Searching for first unallocated TFI: TRX=0 Found TFI=0. + TREE trx = 0 TFI = 0 Slot Allocation (Algorithm B) for class 11 - Rx=4 Tx=3 Sum Rx+Tx=5 Tta=3 Ttb=1 Tra=2 Trb=1 Type=1 - Skipping TS 0, because not enabled @@ -6387,8 +6577,10 @@ ws(192) DL TBF slots: 0x10, N: 1, WS: 192 ********** TBF update ********** PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000. + USE trx = 0 Searching for first unallocated TFI: TRX=0 Found TFI=0. + TREE trx = 0 TFI = 0 - Selected DL slots: (TS=0)"..DDDD.."(TS=7) Using 4 slots for DL - Assigning DL TS 2 @@ -6415,10 +6607,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -6525,6 +6730,8 @@ Send dowlink assignment on PACCH, because TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=NULL EGPRS) changes state from NULL to ASSIGN TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) starting timer 0. TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) append +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -6879,9 +7086,18 @@ Destroying MS object, TLLI = 0x00000000 MS requests UL TBF on RACH, so we provide one ra=0x70 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation -No PDCH available. + Not valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. No PDCH resource for single block allocation.sending Immediate Assignment Uplink (AGCH) reject Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=4d 06 3a 10 70 8b 29 14 70 8b 29 14 70 8b 29 14 70 8b 29 14 0b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** @@ -6910,10 +7126,23 @@ Sending data request: trx=0 ts=7 sapi=5 arfcn=0 fn=2654218 block=8 data=47 94 2b MS requests UL TBF on RACH, so we provide one ra=0x73 Fn=2654167 qta=31 is_11bit=0: MS requests single block allocation + Valid TRX=0. + Not valid TRX=1. + Not valid TRX=2. + Not valid TRX=3. + Not valid TRX=4. + Not valid TRX=5. + Not valid TRX=6. + Not valid TRX=7. +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) + sba fn=2654270 ts = 7 trx = 0 RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(1) +selected pro(4294967295)selected_trx(0) Searching for first unallocated TFI: TRX=0 Found TFI=0. Got RLC block, coding scheme: CS-1, length: 23 (23)) @@ -9098,3 +9327,1307 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) stopping timer 0. Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=UL STATE=ASSIGN) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(0) numpdch(2) prob1(4294967295) seleprob(0) btsnumpdch(4) +selected pro(4294967295)selected_trx(0) +trx(1) cur load(0) numpdch(2) prob1(4294967295) seleprob(4294967295) btsnumpdch(4) +Searching for first unallocated TFI: TRX=0 + Found TFI=0. + TREE trx = 0 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +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) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(2) prob1(4294967095) seleprob(0) btsnumpdch(4) +selected pro(4294967095)selected_trx(0) +trx(1) cur load(0) numpdch(2) prob1(4294967295) seleprob(4294967095) btsnumpdch(4) +selected pro(4294967295)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=0. + TREE trx = 1 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 1): 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) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(2) prob1(4294967095) seleprob(0) btsnumpdch(4) +selected pro(4294967095)selected_trx(0) +trx(1) cur load(1) numpdch(2) prob1(4294967095) seleprob(4294967095) btsnumpdch(4) +Searching for first unallocated TFI: TRX=0 + Found TFI=1. + TREE trx = 0 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000002. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(2) numpdch(2) prob1(4294966895) seleprob(0) btsnumpdch(4) +selected pro(4294966895)selected_trx(0) +trx(1) cur load(1) numpdch(2) prob1(4294967095) seleprob(4294966895) btsnumpdch(4) +selected pro(4294967095)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=1. + TREE trx = 1 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 1): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000002. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(2) numpdch(2) prob1(4294966895) seleprob(0) btsnumpdch(4) +selected pro(4294966895)selected_trx(0) +trx(1) cur load(2) numpdch(2) prob1(4294966895) seleprob(4294966895) btsnumpdch(4) +Searching for first unallocated TFI: TRX=0 + Found TFI=2. + TREE trx = 0 TFI = 2 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000005. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(3) numpdch(2) prob1(4294966695) seleprob(0) btsnumpdch(4) +selected pro(4294966695)selected_trx(0) +trx(1) cur load(2) numpdch(2) prob1(4294966895) seleprob(4294966695) btsnumpdch(4) +selected pro(4294966895)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=2. + TREE trx = 1 TFI = 2 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 1): Attaching TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000005. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(3) numpdch(2) prob1(4294966695) seleprob(0) btsnumpdch(4) +selected pro(4294966695)selected_trx(0) +trx(1) cur load(3) numpdch(2) prob1(4294966695) seleprob(4294966695) btsnumpdch(4) +Searching for first unallocated TFI: TRX=0 + Found TFI=3. + TREE trx = 0 TFI = 3 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 0000000a. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(4) numpdch(2) prob1(4294966495) seleprob(0) btsnumpdch(4) +selected pro(4294966495)selected_trx(0) +trx(1) cur load(3) numpdch(2) prob1(4294966695) seleprob(4294966495) btsnumpdch(4) +selected pro(4294966695)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=3. + TREE trx = 1 TFI = 3 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 1): Attaching TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 0000000a. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(4) numpdch(2) prob1(4294966495) seleprob(0) btsnumpdch(4) +selected pro(4294966495)selected_trx(0) +trx(1) cur load(4) numpdch(2) prob1(4294966495) seleprob(4294966495) btsnumpdch(4) +Searching for first unallocated TFI: TRX=0 + Found TFI=4. + TREE trx = 0 TFI = 4 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs, USFs = 00, TFIs = 00000015. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(5) numpdch(2) prob1(4294966295) seleprob(0) btsnumpdch(4) +selected pro(4294966295)selected_trx(0) +trx(1) cur load(4) numpdch(2) prob1(4294966495) seleprob(4294966295) btsnumpdch(4) +selected pro(4294966495)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=4. + TREE trx = 1 TFI = 4 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 1): Attaching TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs, USFs = 00, TFIs = 00000015. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(5) numpdch(2) prob1(4294966295) seleprob(0) btsnumpdch(4) +selected pro(4294966295)selected_trx(0) +trx(1) cur load(5) numpdch(2) prob1(4294966295) seleprob(4294966295) btsnumpdch(4) +Searching for first unallocated TFI: TRX=0 + Found TFI=5. + TREE trx = 0 TFI = 5 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs, USFs = 00, TFIs = 0000002a. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(0) numpdch(2) prob1(4294967295) seleprob(0) btsnumpdch(3) +selected pro(4294967295)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294967295) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=0. + TREE trx = 0 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +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) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(2) prob1(4294967145) seleprob(0) btsnumpdch(3) +selected pro(4294967145)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294967145) btsnumpdch(3) +selected pro(4294967295)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=0. + TREE trx = 1 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....C..."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 1): 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) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(2) prob1(4294967145) seleprob(0) btsnumpdch(3) +selected pro(4294967145)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966995) seleprob(4294967145) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=1. + TREE trx = 0 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000002. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(2) numpdch(2) prob1(4294966995) seleprob(0) btsnumpdch(3) +selected pro(4294966995)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966995) seleprob(4294966995) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=2. + TREE trx = 0 TFI = 2 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000005. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(3) numpdch(2) prob1(4294966845) seleprob(0) btsnumpdch(3) +selected pro(4294966845)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966995) seleprob(4294966845) btsnumpdch(3) +selected pro(4294966995)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=1. + TREE trx = 1 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....C..."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 1): 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) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(3) numpdch(2) prob1(4294966845) seleprob(0) btsnumpdch(3) +selected pro(4294966845)selected_trx(0) +trx(1) cur load(2) numpdch(1) prob1(4294966695) seleprob(4294966845) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=3. + TREE trx = 0 TFI = 3 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 0000000a. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(4) numpdch(2) prob1(4294966695) seleprob(0) btsnumpdch(3) +selected pro(4294966695)selected_trx(0) +trx(1) cur load(2) numpdch(1) prob1(4294966695) seleprob(4294966695) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=4. + TREE trx = 0 TFI = 4 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs, USFs = 00, TFIs = 00000015. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(5) numpdch(2) prob1(4294966545) seleprob(0) btsnumpdch(3) +selected pro(4294966545)selected_trx(0) +trx(1) cur load(2) numpdch(1) prob1(4294966695) seleprob(4294966545) btsnumpdch(3) +selected pro(4294966695)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=2. + TREE trx = 1 TFI = 2 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....C..."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 1): 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) +Allocated TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(5) numpdch(2) prob1(4294966545) seleprob(0) btsnumpdch(3) +selected pro(4294966545)selected_trx(0) +trx(1) cur load(3) numpdch(1) prob1(4294966395) seleprob(4294966545) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=5. + TREE trx = 0 TFI = 5 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs, USFs = 00, TFIs = 0000002a. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(6) numpdch(2) prob1(4294966395) seleprob(0) btsnumpdch(3) +selected pro(4294966395)selected_trx(0) +trx(1) cur load(3) numpdch(1) prob1(4294966395) seleprob(4294966395) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=6. + TREE trx = 0 TFI = 6 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL), 4 TBFs, USFs = 00, TFIs = 00000055. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(7) numpdch(2) prob1(4294966245) seleprob(0) btsnumpdch(3) +selected pro(4294966245)selected_trx(0) +trx(1) cur load(3) numpdch(1) prob1(4294966395) seleprob(4294966245) btsnumpdch(3) +selected pro(4294966395)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=3. + TREE trx = 1 TFI = 3 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....C..."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 1): 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) +Allocated TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(0) numpdch(4) prob1(4294967295) seleprob(0) btsnumpdch(5) +selected pro(4294967295)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294967295) btsnumpdch(5) +Searching for first unallocated TFI: TRX=0 + Found TFI=0. + TREE trx = 0 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +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) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(4) prob1(4294967170) seleprob(0) btsnumpdch(5) +selected pro(4294967170)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294967170) btsnumpdch(5) +selected pro(4294967295)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=0. + TREE trx = 1 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 4, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"C......."(TS=7) +- Selected DL slots: (TS=0)"D......."(TS=7), single +Using single slot at TS 0 for DL +- Reserved DL/UL slots: (TS=0)"C......."(TS=7) +- Assigning DL TS 0 +PDCH(TS 0, TRX 1): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. +- Setting Control TS 0 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 01, dl_slots = 01 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(4) prob1(4294967170) seleprob(0) btsnumpdch(5) +selected pro(4294967170)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966795) seleprob(4294967170) btsnumpdch(5) +Searching for first unallocated TFI: TRX=0 + Found TFI=1. + TREE trx = 0 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000002. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(2) numpdch(4) prob1(4294967045) seleprob(0) btsnumpdch(5) +selected pro(4294967045)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966795) seleprob(4294967045) btsnumpdch(5) +Searching for first unallocated TFI: TRX=0 + Found TFI=2. + TREE trx = 0 TFI = 2 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) +- Selected DL slots: (TS=0)"......D."(TS=7), single +Using single slot at TS 6 for DL +- Reserved DL/UL slots: (TS=0)"......C."(TS=7) +- Assigning DL TS 6 +PDCH(TS 6, TRX 0): Attaching TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000004. +- Setting Control TS 6 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 40, dl_slots = 40 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(3) numpdch(4) prob1(4294966920) seleprob(0) btsnumpdch(5) +selected pro(4294966920)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966795) seleprob(4294966920) btsnumpdch(5) +Searching for first unallocated TFI: TRX=0 + Found TFI=3. + TREE trx = 0 TFI = 3 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) +- Selected DL slots: (TS=0)".......D"(TS=7), single +Using single slot at TS 7 for DL +- Reserved DL/UL slots: (TS=0)".......C"(TS=7) +- Assigning DL TS 7 +PDCH(TS 7, TRX 0): Attaching TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000008. +- Setting Control TS 7 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 80, dl_slots = 80 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(4) numpdch(4) prob1(4294966795) seleprob(0) btsnumpdch(5) +selected pro(4294966795)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966795) seleprob(4294966795) btsnumpdch(5) +Searching for first unallocated TFI: TRX=0 + Found TFI=4. + TREE trx = 0 TFI = 4 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000011. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(5) numpdch(4) prob1(4294966670) seleprob(0) btsnumpdch(5) +selected pro(4294966670)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966795) seleprob(4294966670) btsnumpdch(5) +selected pro(4294966795)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=1. + TREE trx = 1 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 4, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"C......."(TS=7) +- Selected DL slots: (TS=0)"D......."(TS=7), single +Using single slot at TS 0 for DL +- Reserved DL/UL slots: (TS=0)"C......."(TS=7) +- Assigning DL TS 0 +PDCH(TS 0, TRX 1): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000003. +- Setting Control TS 0 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 01, dl_slots = 01 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(5) numpdch(4) prob1(4294966670) seleprob(0) btsnumpdch(5) +selected pro(4294966670)selected_trx(0) +trx(1) cur load(2) numpdch(1) prob1(4294966295) seleprob(4294966670) btsnumpdch(5) +Searching for first unallocated TFI: TRX=0 + Found TFI=5. + TREE trx = 0 TFI = 5 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000022. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(6) numpdch(4) prob1(4294966545) seleprob(0) btsnumpdch(5) +selected pro(4294966545)selected_trx(0) +trx(1) cur load(2) numpdch(1) prob1(4294966295) seleprob(4294966545) btsnumpdch(5) +Searching for first unallocated TFI: TRX=0 + Found TFI=6. + TREE trx = 0 TFI = 6 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) +- Selected DL slots: (TS=0)"......D."(TS=7), single +Using single slot at TS 6 for DL +- Reserved DL/UL slots: (TS=0)"......C."(TS=7) +- Assigning DL TS 6 +PDCH(TS 6, TRX 0): Attaching TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000044. +- Setting Control TS 6 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 40, dl_slots = 40 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(7) numpdch(4) prob1(4294966420) seleprob(0) btsnumpdch(5) +selected pro(4294966420)selected_trx(0) +trx(1) cur load(2) numpdch(1) prob1(4294966295) seleprob(4294966420) btsnumpdch(5) +Searching for first unallocated TFI: TRX=0 + Found TFI=7. + TREE trx = 0 TFI = 7 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) +- Selected DL slots: (TS=0)".......D"(TS=7), single +Using single slot at TS 7 for DL +- Reserved DL/UL slots: (TS=0)".......C"(TS=7) +- Assigning DL TS 7 +PDCH(TS 7, TRX 0): Attaching TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000088. +- Setting Control TS 7 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 80, dl_slots = 80 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(8) numpdch(4) prob1(4294966295) seleprob(0) btsnumpdch(5) +selected pro(4294966295)selected_trx(0) +trx(1) cur load(2) numpdch(1) prob1(4294966295) seleprob(4294966295) btsnumpdch(5) +Searching for first unallocated TFI: TRX=0 + Found TFI=8. + TREE trx = 0 TFI = 8 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Possible DL/UL slots: (TS=0)"....CCCC"(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs, USFs = 00, TFIs = 00000111. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(0) numpdch(2) prob1(4294967295) seleprob(0) btsnumpdch(3) +selected pro(4294967295)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294967295) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=0. + TREE trx = 0 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +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) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to RELEASING +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING) free +PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING), 0 TBFs, USFs = 00, TFIs = 00000000. +Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING) +Destroying MS object, TLLI = 0x00000000 +********** TBF ends here ********** +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(0) numpdch(2) prob1(4294967295) seleprob(0) btsnumpdch(3) +selected pro(4294967295)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294967295) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=0. + TREE trx = 0 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +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) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(2) prob1(4294967145) seleprob(0) btsnumpdch(3) +selected pro(4294967145)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294967145) btsnumpdch(3) +selected pro(4294967295)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=0. + TREE trx = 1 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 4, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"C......."(TS=7) +- Selected DL slots: (TS=0)"D......."(TS=7), single +Using single slot at TS 0 for DL +- Reserved DL/UL slots: (TS=0)"C......."(TS=7) +- Assigning DL TS 0 +PDCH(TS 0, TRX 1): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. +- Setting Control TS 0 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 01, dl_slots = 01 +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to RELEASING +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING) free +PDCH(TS 0, TRX 1): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING), 0 TBFs, USFs = 00, TFIs = 00000000. +Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING) +Destroying MS object, TLLI = 0x00000000 +********** TBF ends here ********** +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(2) prob1(4294967145) seleprob(0) btsnumpdch(3) +selected pro(4294967145)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294967145) btsnumpdch(3) +selected pro(4294967295)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=0. + TREE trx = 1 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 4, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"C......."(TS=7) +- Selected DL slots: (TS=0)"D......."(TS=7), single +Using single slot at TS 0 for DL +- Reserved DL/UL slots: (TS=0)"C......."(TS=7) +- Assigning DL TS 0 +PDCH(TS 0, TRX 1): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. +- Setting Control TS 0 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 01, dl_slots = 01 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(2) prob1(4294967145) seleprob(0) btsnumpdch(3) +selected pro(4294967145)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966995) seleprob(4294967145) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=1. + TREE trx = 0 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000002. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to RELEASING +TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=RELEASING) free +PDCH(TS 5, TRX 0): Detaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=RELEASING), 0 TBFs, USFs = 00, TFIs = 00000000. +Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=RELEASING) +Destroying MS object, TLLI = 0x00000000 +********** TBF ends here ********** +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(1) numpdch(2) prob1(4294967145) seleprob(0) btsnumpdch(3) +selected pro(4294967145)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294966995) seleprob(4294967145) btsnumpdch(3) +Searching for first unallocated TFI: TRX=0 + Found TFI=1. + TREE trx = 0 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....CC.."(TS=7) +- Selected DL slots: (TS=0)".....D.."(TS=7), single +Using single slot at TS 5 for DL +- Reserved DL/UL slots: (TS=0)".....C.."(TS=7) +- Assigning DL TS 5 +PDCH(TS 5, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000002. +- Setting Control TS 5 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 20, dl_slots = 20 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(0) numpdch(1) prob1(4294967295) seleprob(0) btsnumpdch(2) +selected pro(4294967295)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294967295) btsnumpdch(2) +Searching for first unallocated TFI: TRX=0 + Found TFI=0. + TREE trx = 0 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....C..."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +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) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating UL TBF: MS_CLASS=1/1 + USE trx = 0 +Searching for first unallocated TFI: TRX=0 + Found TFI=0. + TREE trx = 0 TFI = 0 +- Selected UL slots: (TS=0)"....U..."(TS=7) +Using 1 slots for UL +- Assigning UL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 00 +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to ASSIGN +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=ASSIGN) starting timer 3169. +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(2) numpdch(1) prob1(4294966895) seleprob(0) btsnumpdch(2) +selected pro(4294966895)selected_trx(0) +trx(1) cur load(0) numpdch(1) prob1(4294967295) seleprob(4294966895) btsnumpdch(2) +selected pro(4294967295)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=0. + TREE trx = 1 TFI = 0 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....C..."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 1): 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) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(2) numpdch(1) prob1(4294966895) seleprob(0) btsnumpdch(2) +selected pro(4294966895)selected_trx(0) +trx(1) cur load(1) numpdch(1) prob1(4294967095) seleprob(4294966895) btsnumpdch(2) +selected pro(4294967095)selected_trx(1) +Searching for first unallocated TFI: TRX=1 + Found TFI=1. + TREE trx = 1 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....C..."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 1): 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) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 1, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=1/1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 1 + USE trx = -1 +trx(0) cur load(2) numpdch(1) prob1(4294966895) seleprob(0) btsnumpdch(2) +selected pro(4294966895)selected_trx(0) +trx(1) cur load(2) numpdch(1) prob1(4294966895) seleprob(4294966895) btsnumpdch(2) +Searching for first unallocated TFI: TRX=0 + Found TFI=1. + TREE trx = 0 TFI = 1 +Slot Allocation (Algorithm B) for class 1 +- Rx=1 Tx=1 Sum Rx+Tx=2 Tta=3 Ttb=2 Tra=4 Trb=2 Type=1 +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +- Skipping TS 7, because not enabled +- Possible DL/UL slots: (TS=0)"....C..."(TS=7) +- Selected DL slots: (TS=0)"....D..."(TS=7), single +Using single slot at TS 4 for DL +- Reserved DL/UL slots: (TS=0)"....C..."(TS=7) +- Assigning DL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 01, TFIs = 00000003. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 +********** TBF starts here ********** +Allocating UL TBF: MS_CLASS=1/1 + USE trx = 0 +Searching for first unallocated TFI: TRX=0 + Found TFI=1. + TREE trx = 0 TFI = 1 +- Selected UL slots: (TS=0)"....U..."(TS=7) +Using 1 slots for UL +- Assigning UL TS 4 +PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=NULL), 2 TBFs, USFs = 03, TFIs = 00000003. +- Setting Control TS 4 +Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 00 +TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to ASSIGN +TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=ASSIGN) starting timer 3169. diff --git a/tests/tbf/TbfTest.ok b/tests/tbf/TbfTest.ok index f7512eb..fe34008 100644 --- a/tests/tbf/TbfTest.ok +++ b/tests/tbf/TbfTest.ok @@ -81,3 +81,15 @@ packet reject: 40 84 7f f7 6e e6 41 4b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b === end test_packet_access_rej_prr === === start test_packet_access_rej_prr_no_other_tbfs === === end test_packet_access_rej_prr_no_other_tbfs === +=== start test_multi_trx_test === +=== start test_multi_trx_test_same_capacity === +=== end test_multi_trx_test_same_capacity === +=== start test_multi_trx_test_1_2_capacity === +=== end test_multi_trx_test_1_2_capacity === +=== start test_multi_trx_test_1_4_capacity === +=== end test_multi_trx_test_1_4_capacity === +=== start test_multi_trx_test_release_alloc === +=== end test_multi_trx_test_release_alloc === +=== start test_multi_trx_test_same_capacity_dl_ul_combined === +=== end test_multi_trx_test_same_capacity_dl_ul_combined === +=== end test_multi_trx_test === |