diff options
-rw-r--r-- | src/bts.cpp | 9 | ||||
-rw-r--r-- | src/bts.h | 3 | ||||
-rw-r--r-- | src/gprs_rlcmac.h | 6 | ||||
-rw-r--r-- | src/gprs_rlcmac_ts_alloc.cpp | 43 | ||||
-rw-r--r-- | src/tbf.cpp | 48 | ||||
-rw-r--r-- | src/tbf.h | 5 | ||||
-rw-r--r-- | src/tbf_dl.cpp | 17 | ||||
-rw-r--r-- | tests/alloc/AllocTest.cpp | 92 | ||||
-rw-r--r-- | tests/alloc/AllocTest.err | 19 | ||||
-rw-r--r-- | tests/tbf/TbfTest.cpp | 6 | ||||
-rw-r--r-- | tests/tbf/TbfTest.err | 308 |
11 files changed, 319 insertions, 237 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index bd1e025e..712954ea 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -392,7 +392,6 @@ int BTS::rcv_rach(uint8_t ra, uint32_t Fn, int16_t qta) { struct gprs_rlcmac_ul_tbf *tbf = NULL; uint8_t trx_no, ts_no = 0; - int8_t tfi; /* must be signed */ uint8_t sb = 0; uint32_t sb_fn = 0; int rc; @@ -429,14 +428,8 @@ int BTS::rcv_rach(uint8_t ra, uint32_t Fn, int16_t qta) } else { // Create new TBF #warning "Copy and pate with other routines.." - tfi = tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - if (tfi < 0) { - LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource\n"); - /* FIXME: send reject */ - return -EBUSY; - } /* set class to 0, since we don't know the multislot class yet */ - tbf = tbf_alloc_ul_tbf(&m_bts, NULL, tfi, trx_no, 0, 1); + tbf = tbf_alloc_ul_tbf(&m_bts, NULL, -1, 0, 1); if (!tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource\n"); /* FIXME: send reject */ @@ -162,7 +162,8 @@ struct gprs_rlcmac_bts { struct gprs_rlcmac_trx trx[8]; int (*alloc_algorithm)(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single); + struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, + int use_tbf); uint32_t alloc_algorithm_curst; /* options to customize algorithm */ uint8_t force_two_phase; uint8_t alpha, gamma; diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index dab3338f..3fc95e69 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -97,11 +97,13 @@ extern "C" { #endif int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single); + struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, + int use_trx); int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single); + struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, + int use_trx); #ifdef __cplusplus } #endif diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index ec228d1a..33814365 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -277,6 +277,24 @@ static void assign_dlink_tbf( attach_tbf_to_pdch(pdch, tbf); } +static int tfi_find_free(BTS *bts, GprsMs *ms, enum gprs_rlcmac_tbf_direction dir, + int use_trx, int *trx_no_) +{ + int tfi; + uint8_t trx_no; + + if (use_trx == -1 && ms->current_trx()) + use_trx = ms->current_trx()->trx_no; + + tfi = bts->tfi_find_free(dir, &trx_no, use_trx); + if (tfi < 0) + return -EBUSY; + + if (trx_no_) + *trx_no_ = trx_no; + + return tfi; +} /* Slot Allocation: Algorithm A * @@ -284,11 +302,14 @@ static void assign_dlink_tbf( */ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single) + struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, + int use_trx) { struct gprs_rlcmac_pdch *pdch; int ts = -1; uint8_t ul_slots, dl_slots; + int trx_no; + int rc; int usf = -1; int mask = 0xff; const char *mask_reason = NULL; @@ -296,6 +317,14 @@ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, LOGP(DRLCMAC, LOGL_DEBUG, "Slot Allocation (Algorithm A) for class " "%d\n", tbf->ms_class()); + rc = tfi_find_free(bts->bts, ms, tbf->direction, use_trx, &trx_no); + if (rc < 0) { + LOGP(DRLCMAC, LOGL_NOTICE, "- Failed to allocate a TFI\n"); + return rc; + } + tbf->m_tfi = rc; + tbf->trx = &bts->trx[trx_no]; + dl_slots = ms->reserved_dl_slots(); ul_slots = ms->reserved_ul_slots(); @@ -348,7 +377,6 @@ int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, ms->set_reserved_slots(tbf->trx, 1 << ts, 1 << ts); tbf->upgrade_to_multislot = 0; - return 0; } @@ -669,7 +697,7 @@ static int find_multi_slots(struct gprs_rlcmac_bts *bts, */ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single) + struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, int use_trx) { uint8_t dl_slots = 0; uint8_t ul_slots = 0; @@ -679,6 +707,15 @@ int alloc_algorithm_b(struct gprs_rlcmac_bts *bts, char slot_info[9] = {0}; int ts; int rc; + int trx_no; + + rc = tfi_find_free(bts->bts, ms, tbf->direction, use_trx, &trx_no); + if (rc < 0) { + LOGP(DRLCMAC, LOGL_NOTICE, "- Failed to allocate a TFI\n"); + return rc; + } + tbf->m_tfi = rc; + tbf->trx = &bts->trx[trx_no]; if (!ms) { LOGP(DRLCMAC, LOGL_ERROR, "MS not set\n"); diff --git a/src/tbf.cpp b/src/tbf.cpp index 4a8fd337..70483e35 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -174,20 +174,12 @@ gprs_rlcmac_ul_tbf *tbf_alloc_ul(struct gprs_rlcmac_bts *bts, int8_t use_trx, uint8_t ms_class, uint32_t tlli, uint8_t ta, GprsMs *ms) { - uint8_t trx; struct gprs_rlcmac_ul_tbf *tbf; - int8_t tfi; /* must be signed */ #warning "Copy and paste with tbf_new_dl_assignment" /* create new TBF, use same TRX as DL TBF */ - tfi = bts->bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx, use_trx); - if (tfi < 0) { - LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource\n"); - /* FIXME: send reject */ - return NULL; - } /* use multislot class of downlink TBF */ - tbf = tbf_alloc_ul_tbf(bts, ms, tfi, trx, ms_class, 0); + tbf = tbf_alloc_ul_tbf(bts, ms, use_trx, ms_class, 0); if (!tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource\n"); /* FIXME: send reject */ @@ -274,7 +266,8 @@ int gprs_rlcmac_tbf::update() return -EINVAL; tbf_unlink_pdch(this); - rc = bts_data->alloc_algorithm(bts_data, ms(), this, bts_data->alloc_algorithm_curst, 0); + rc = bts_data->alloc_algorithm(bts_data, ms(), this, + bts_data->alloc_algorithm_curst, 0, -1); /* if no resource */ if (rc < 0) { LOGP(DRLCMAC, LOGL_ERROR, "No resource after update???\n"); @@ -445,14 +438,11 @@ void gprs_rlcmac_tbf::poll_timeout() } static int setup_tbf(struct gprs_rlcmac_tbf *tbf, struct gprs_rlcmac_bts *bts, - GprsMs *ms, uint8_t tfi, uint8_t trx, + GprsMs *ms, int8_t use_trx, uint8_t ms_class, uint8_t single_slot) { int rc; - if (trx >= 8 || tfi >= 32) - return -1; - if (!tbf) return -1; @@ -461,12 +451,10 @@ static int setup_tbf(struct gprs_rlcmac_tbf *tbf, struct gprs_rlcmac_bts *bts, tbf->m_created_ts = time(NULL); tbf->bts = bts->bts; - tbf->m_tfi = tfi; - tbf->trx = &bts->trx[trx]; tbf->set_ms_class(ms_class); /* select algorithm */ rc = bts->alloc_algorithm(bts, ms, tbf, bts->alloc_algorithm_curst, - single_slot); + single_slot, use_trx); /* if no resource */ if (rc < 0) { return -1; @@ -485,23 +473,24 @@ static int setup_tbf(struct gprs_rlcmac_tbf *tbf, struct gprs_rlcmac_bts *bts, tbf->m_llc.init(); tbf->set_ms(ms); + LOGP(DRLCMAC, LOGL_INFO, + "Allocated %s: trx = %d, ul_slots = %02x, dl_slots = %02x\n", + tbf->name(), tbf->trx->trx_no, tbf->ul_slots(), tbf->dl_slots()); + return 0; } struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts, - GprsMs *ms, uint8_t tfi, uint8_t trx, + GprsMs *ms, int8_t use_trx, uint8_t ms_class, uint8_t single_slot) { struct gprs_rlcmac_ul_tbf *tbf; int rc; LOGP(DRLCMAC, LOGL_DEBUG, "********** TBF starts here **********\n"); - LOGP(DRLCMAC, LOGL_INFO, "Allocating %s TBF: TFI=%d TRX=%d " - "MS_CLASS=%d\n", "UL", tfi, trx, ms_class); - - if (trx >= 8 || tfi >= 32) - return NULL; + LOGP(DRLCMAC, LOGL_INFO, "Allocating %s TBF: MS_CLASS=%d\n", + "UL", ms_class); tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); @@ -513,7 +502,7 @@ struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts, if (!ms) ms = bts->bts->ms_alloc(ms_class); - rc = setup_tbf(tbf, bts, ms, tfi, trx, ms_class, single_slot); + rc = setup_tbf(tbf, bts, ms, use_trx, ms_class, single_slot); /* if no resource */ if (rc < 0) { talloc_free(tbf); @@ -527,18 +516,15 @@ struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts, } struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, - GprsMs *ms, uint8_t tfi, uint8_t trx, + GprsMs *ms, int8_t use_trx, uint8_t ms_class, uint8_t single_slot) { struct gprs_rlcmac_dl_tbf *tbf; int rc; LOGP(DRLCMAC, LOGL_DEBUG, "********** TBF starts here **********\n"); - LOGP(DRLCMAC, LOGL_INFO, "Allocating %s TBF: TFI=%d TRX=%d " - "MS_CLASS=%d\n", "DL", tfi, trx, ms_class); - - if (trx >= 8 || tfi >= 32) - return NULL; + LOGP(DRLCMAC, LOGL_INFO, "Allocating %s TBF: MS_CLASS=%d\n", + "DL", ms_class); tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); @@ -550,7 +536,7 @@ struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, if (!ms) ms = bts->bts->ms_alloc(ms_class); - rc = setup_tbf(tbf, bts, ms, tfi, trx, ms_class, single_slot); + rc = setup_tbf(tbf, bts, ms, use_trx, ms_class, single_slot); /* if no resource */ if (rc < 0) { talloc_free(tbf); @@ -245,12 +245,11 @@ struct gprs_rlcmac_ul_tbf *tbf_alloc_ul(struct gprs_rlcmac_bts *bts, uint32_t tlli, uint8_t ta, GprsMs *ms); struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts, - GprsMs *ms, - uint8_t tfi, uint8_t trx, + GprsMs *ms, int8_t use_trx, uint8_t ms_class, uint8_t single_slot); struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, - GprsMs *ms, uint8_t tfi, uint8_t trx, + GprsMs *ms, int8_t use_trx, uint8_t ms_class, uint8_t single_slot); void tbf_free(struct gprs_rlcmac_tbf *tbf); diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index cf03d331..cdd02bae 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -139,12 +139,11 @@ static int tbf_new_dl_assignment(struct gprs_rlcmac_bts *bts, const uint8_t ms_class, struct gprs_rlcmac_dl_tbf **tbf) { - uint8_t trx, ss; + uint8_t ss; int8_t use_trx; uint16_t ta = 0; struct gprs_rlcmac_ul_tbf *ul_tbf = NULL, *old_ul_tbf; struct gprs_rlcmac_dl_tbf *dl_tbf = NULL; - int8_t tfi; /* must be signed */ GprsMs *ms; /* check for uplink data, so we copy our informations */ @@ -170,10 +169,8 @@ static int tbf_new_dl_assignment(struct gprs_rlcmac_bts *bts, // Create new TBF (any TRX) #warning "Copy and paste with alloc_ul_tbf" - tfi = bts->bts->tfi_find_free(GPRS_RLCMAC_DL_TBF, &trx, use_trx); - if (tfi >= 0) - /* set number of downlink slots according to multislot class */ - dl_tbf = tbf_alloc_dl_tbf(bts, ms, tfi, trx, ms_class, ss); + /* set number of downlink slots according to multislot class */ + dl_tbf = tbf_alloc_dl_tbf(bts, ms, use_trx, ms_class, ss); if (!dl_tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource\n"); @@ -842,16 +839,12 @@ int gprs_rlcmac_dl_tbf::rcvd_dl_ack(uint8_t final_ack, uint8_t ssn, uint8_t *rbb void gprs_rlcmac_dl_tbf::reuse_tbf() { - uint8_t trx; struct gprs_rlcmac_dl_tbf *new_tbf = NULL; - int8_t tfi; /* must be signed */ bts->tbf_reused(); - tfi = bts->tfi_find_free(GPRS_RLCMAC_DL_TBF, &trx, this->trx->trx_no); - if (tfi >= 0) - new_tbf = tbf_alloc_dl_tbf(bts->bts_data(), ms(), tfi, trx, - ms_class(), 0); + new_tbf = tbf_alloc_dl_tbf(bts->bts_data(), ms(), + this->trx->trx_no, ms_class(), 0); if (!new_tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource\n"); diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index 66bc84f3..b6f263f4 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -38,13 +38,13 @@ int16_t spoof_mnc = 0, spoof_mcc = 0; static gprs_rlcmac_tbf *tbf_alloc(struct gprs_rlcmac_bts *bts, GprsMs *ms, gprs_rlcmac_tbf_direction dir, - uint8_t tfi, uint8_t trx, + uint8_t use_trx, uint8_t ms_class, uint8_t single_slot) { if (dir == GPRS_RLCMAC_UL_TBF) - return tbf_alloc_ul_tbf(bts, ms, tfi, trx, ms_class, single_slot); + return tbf_alloc_ul_tbf(bts, ms, use_trx, ms_class, single_slot); else - return tbf_alloc_dl_tbf(bts, ms, tfi, trx, ms_class, single_slot); + return tbf_alloc_dl_tbf(bts, ms, use_trx, ms_class, single_slot); } static void check_tfi_usage(BTS *the_bts) @@ -133,9 +133,7 @@ static void test_alloc_a(gprs_rlcmac_tbf_direction dir, * least this part is working okay. */ for (int i = 0; i < count; ++i) { - tfi = the_bts.tfi_find_free(dir, &used_trx, 0); - OSMO_ASSERT(tfi >= 0); - tbfs[i] = tbf_alloc(bts, NULL, dir, tfi, used_trx, 0, 0); + tbfs[i] = tbf_alloc(bts, NULL, dir, -1, 0, 0); OSMO_ASSERT(tbfs[i] != NULL); tfi = the_bts.tfi_find_free(dir, &tmp_trx, used_trx); OSMO_ASSERT(tbfs[i]->tfi() != tfi); @@ -151,16 +149,13 @@ static void test_alloc_a(gprs_rlcmac_tbf_direction dir, OSMO_ASSERT(tfi < 0); break; } - OSMO_ASSERT(!tbf_alloc(bts, NULL, dir, tfi, used_trx, 0, 0)); + OSMO_ASSERT(!tbf_alloc(bts, NULL, dir, -1, 0, 0)); for (size_t i = 0; i < ARRAY_SIZE(tbfs); ++i) if (tbfs[i]) tbf_free(tbfs[i]); - tfi = the_bts.tfi_find_free(dir, &used_trx, 0); - OSMO_ASSERT(tfi >= 0); - - tbfs[tfi] = tbf_alloc(bts, NULL, dir, tfi, used_trx, 0, 0); + tbfs[tfi] = tbf_alloc(bts, NULL, dir, -1, 0, 0); OSMO_ASSERT(tbfs[tfi]); tbf_free(tbfs[tfi]); } @@ -198,7 +193,6 @@ static void test_alloc_b(int ms_class) BTS the_bts; struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_trx *trx; - int tfi; uint8_t trx_no; gprs_rlcmac_tbf *ul_tbf, *dl_tbf; @@ -213,16 +207,15 @@ static void test_alloc_b(int ms_class) trx->pdch[6].enable(); trx->pdch[7].enable(); - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - OSMO_ASSERT(tfi >= 0); - ul_tbf = tbf_alloc_ul_tbf(bts, NULL, tfi, trx_no, ms_class, 1); + ul_tbf = tbf_alloc_ul_tbf(bts, NULL, -1, ms_class, 1); OSMO_ASSERT(ul_tbf); + OSMO_ASSERT(ul_tbf->ms()); + OSMO_ASSERT(ul_tbf->ms()->current_trx()); + trx_no = ul_tbf->ms()->current_trx()->trx_no; dump_assignment(ul_tbf, "UL"); /* assume final ack has not been sent */ - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - OSMO_ASSERT(tfi >= 0); - dl_tbf = tbf_alloc_dl_tbf(bts, ul_tbf->ms(), tfi, trx_no, ms_class, 0); + dl_tbf = tbf_alloc_dl_tbf(bts, ul_tbf->ms(), trx_no, ms_class, 0); OSMO_ASSERT(dl_tbf); dump_assignment(dl_tbf, "DL"); @@ -241,7 +234,6 @@ static void test_alloc_b(int ms_class) BTS the_bts; struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_trx *trx; - int tfi; uint8_t trx_no; gprs_rlcmac_ul_tbf *ul_tbf; @@ -257,16 +249,15 @@ static void test_alloc_b(int ms_class) trx->pdch[6].enable(); trx->pdch[7].enable(); - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - OSMO_ASSERT(tfi >= 0); - dl_tbf = tbf_alloc_dl_tbf(bts, NULL, tfi, trx_no, ms_class, 1); + dl_tbf = tbf_alloc_dl_tbf(bts, NULL, -1, ms_class, 1); dl_tbf->update_ms(0x23, GPRS_RLCMAC_DL_TBF); OSMO_ASSERT(dl_tbf); + OSMO_ASSERT(dl_tbf->ms()); + OSMO_ASSERT(dl_tbf->ms()->current_trx()); + trx_no = dl_tbf->ms()->current_trx()->trx_no; dump_assignment(dl_tbf, "DL"); - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - OSMO_ASSERT(tfi >= 0); - ul_tbf = tbf_alloc_ul_tbf(bts, dl_tbf->ms(), tfi, trx_no, ms_class, 0); + ul_tbf = tbf_alloc_ul_tbf(bts, dl_tbf->ms(), trx_no, ms_class, 0); ul_tbf->update_ms(0x23, GPRS_RLCMAC_UL_TBF); ul_tbf->m_contention_resolution_done = 1; OSMO_ASSERT(ul_tbf); @@ -308,14 +299,15 @@ static void test_alloc_b(int ms_class) tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); OSMO_ASSERT(tfi >= 0); - ul_tbf = tbf_alloc_ul_tbf(bts, NULL, tfi, trx_no, ms_class, 0); + ul_tbf = tbf_alloc_ul_tbf(bts, NULL, .1, ms_class, 0); OSMO_ASSERT(ul_tbf); + OSMO_ASSERT(ul_tbf->ms()); + OSMO_ASSERT(ul_tbf->ms()->current_trx()); + trx_no = ul_tbf->ms()->current_trx()->trx_no; dump_assignment(ul_tbf, "UL"); /* assume final ack has not been sent */ - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - OSMO_ASSERT(tfi >= 0); - dl_tbf = tbf_alloc_dl_tbf(bts, ul_tbf->ms(), tfi, trx_no, ms_class, 0); + dl_tbf = tbf_alloc_dl_tbf(bts, ul_tbf->ms(), trx_no, ms_class, 0); OSMO_ASSERT(dl_tbf); dump_assignment(dl_tbf, "DL"); @@ -353,7 +345,6 @@ static void test_alloc_b(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool BTS the_bts; struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_trx *trx; - int tfi; uint8_t trx_no; gprs_rlcmac_tbf *ul_tbf, *dl_tbf; @@ -371,16 +362,14 @@ static void test_alloc_b(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool ENABLE_PDCH(6, ts6, trx); ENABLE_PDCH(7, ts7, trx); - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - - OSMO_ASSERT(tfi >= 0); - ul_tbf = tbf_alloc_ul_tbf(bts, NULL, tfi, trx_no, ms_class, 1); + ul_tbf = tbf_alloc_ul_tbf(bts, NULL, -1, ms_class, 1); + OSMO_ASSERT(ul_tbf->ms()); + OSMO_ASSERT(ul_tbf->ms()->current_trx()); + trx_no = ul_tbf->ms()->current_trx()->trx_no; OSMO_ASSERT(ul_tbf); /* assume final ack has not been sent */ - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - OSMO_ASSERT(tfi >= 0); - dl_tbf = tbf_alloc_dl_tbf(bts, ul_tbf->ms(), tfi, trx_no, ms_class, 0); + dl_tbf = tbf_alloc_dl_tbf(bts, ul_tbf->ms(), trx_no, ms_class, 0); OSMO_ASSERT(dl_tbf); /* verify that both are on the same ts */ @@ -399,7 +388,6 @@ static void test_alloc_b(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool BTS the_bts; struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_trx *trx; - int tfi; uint8_t trx_no; gprs_rlcmac_ul_tbf *ul_tbf; @@ -418,15 +406,14 @@ static void test_alloc_b(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool ENABLE_PDCH(6, ts6, trx); ENABLE_PDCH(7, ts7, trx); - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - OSMO_ASSERT(tfi >= 0); - dl_tbf = tbf_alloc_dl_tbf(bts, NULL, tfi, trx_no, ms_class, 1); + dl_tbf = tbf_alloc_dl_tbf(bts, NULL, -1, ms_class, 1); OSMO_ASSERT(dl_tbf); + OSMO_ASSERT(dl_tbf->ms()); + OSMO_ASSERT(dl_tbf->ms()->current_trx()); + trx_no = dl_tbf->ms()->current_trx()->trx_no; dl_tbf->update_ms(0x23, GPRS_RLCMAC_DL_TBF); - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - OSMO_ASSERT(tfi >= 0); - ul_tbf = tbf_alloc_ul_tbf(bts, dl_tbf->ms(), tfi, trx_no, ms_class, 0); + ul_tbf = tbf_alloc_ul_tbf(bts, dl_tbf->ms(), trx_no, ms_class, 0); OSMO_ASSERT(ul_tbf); ul_tbf->update_ms(0x23, GPRS_RLCMAC_UL_TBF); ul_tbf->m_contention_resolution_done = 1; @@ -472,7 +459,8 @@ static void test_alloc_b() typedef int (*algo_t)(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, - struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single); + struct gprs_rlcmac_tbf *tbf, uint32_t cust, uint8_t single, + int use_trx); static char get_dir_char(uint8_t mask, uint8_t tx, uint8_t rx) { @@ -495,30 +483,28 @@ static GprsMs *alloc_tbfs(BTS *the_bts, GprsMs *ms, unsigned ms_class, enum test_mode mode) { struct gprs_rlcmac_bts *bts; - int tfi; - uint8_t trx_no; + uint8_t trx_no = -1; bts = the_bts->bts_data(); gprs_rlcmac_tbf *tbf = NULL; + if (ms && ms->current_trx()) + trx_no = ms->current_trx()->trx_no; + /* Allocate what is needed first */ switch (mode) { case TEST_MODE_UL_ONLY: case TEST_MODE_DL_AFTER_UL: case TEST_MODE_UL_AND_DL: - tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - if (tfi < 0) - return NULL; - tbf = tbf_alloc_ul_tbf(bts, ms, tfi, trx_no, ms_class, 0); + tbf = tbf_alloc_ul_tbf(bts, ms, trx_no, ms_class, 0); if (tbf == NULL) return NULL; break; case TEST_MODE_DL_ONLY: case TEST_MODE_UL_AFTER_DL: case TEST_MODE_DL_AND_UL: - tfi = the_bts->tfi_find_free(GPRS_RLCMAC_DL_TBF, &trx_no, -1); - tbf = tbf_alloc_dl_tbf(bts, ms, tfi, trx_no, ms_class, 0); + tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, ms_class, 0); if (tbf == NULL) return NULL; } diff --git a/tests/alloc/AllocTest.err b/tests/alloc/AllocTest.err index 2dc99fe1..d848aff9 100644 --- a/tests/alloc/AllocTest.err +++ b/tests/alloc/AllocTest.err @@ -1,36 +1,55 @@ No TFI available. No TFI available. +No TFI available. +- Failed to allocate a TFI - Failed to allocate a TS, no USF available No TFI available. No TFI available. +No TFI available. +- Failed to allocate a TFI - Failed to allocate a TS, no USF available No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI No TFI available. No TFI available. +- Failed to allocate a TFI diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 47c090a0..159c8596 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -85,14 +85,14 @@ static void test_tbf_tlli_update() * Make a uplink and downlink allocation */ gprs_rlcmac_tbf *dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), - NULL, 0, + NULL, 0, 0, 0); OSMO_ASSERT(dl_tbf != NULL); dl_tbf->update_ms(0x2342, GPRS_RLCMAC_DL_TBF); dl_tbf->set_ta(4); gprs_rlcmac_tbf *ul_tbf = tbf_alloc_ul_tbf(the_bts.bts_data(), - dl_tbf->ms(), 0, + dl_tbf->ms(), 0, 0, 0); OSMO_ASSERT(ul_tbf != NULL); ul_tbf->update_ms(0x2342, GPRS_RLCMAC_UL_TBF); @@ -170,7 +170,7 @@ static gprs_rlcmac_dl_tbf *create_dl_tbf(BTS *the_bts, uint8_t ms_class, tfi = the_bts->tfi_find_free(GPRS_RLCMAC_DL_TBF, &trx_no, -1); OSMO_ASSERT(tfi >= 0); - dl_tbf = tbf_alloc_dl_tbf(bts, NULL, tfi, trx_no, ms_class, 1); + dl_tbf = tbf_alloc_dl_tbf(bts, NULL, trx_no, ms_class, 1); check_tbf(dl_tbf); /* "Establish" the DL TBF */ diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 3c7892e4..c64d4f1d 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1,7 +1,9 @@ ********** TBF starts here ********** -Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=0 +Allocating DL TBF: MS_CLASS=0 Creating MS object, TLLI = 0x00000000 Slot Allocation (Algorithm A) for class 0 +Searching for first unallocated TFI: TRX=0 first TS=2 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 4, because not enabled @@ -13,11 +15,14 @@ Slot Allocation (Algorithm A) for class 0 PDCH(TS 2, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 2 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 04, dl_slots = 04 The MS object cannot fully confirm an unexpected TLLI: 0x00002342, partly confirmed Modifying MS object, TLLI = 0x00002342, TA 0 -> 4 ********** TBF starts here ********** -Allocating UL TBF: TFI=0 TRX=0 MS_CLASS=0 +Allocating UL TBF: MS_CLASS=0 Slot Allocation (Algorithm A) for class 0 +Searching for first unallocated TFI: TRX=0 first TS=2 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 3, because need to reuse TS @@ -29,6 +34,7 @@ Slot Allocation (Algorithm A) for class 0 PDCH(TS 2, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. - Setting Control TS 2 Attaching TBF to MS object, TLLI = 0x00002342, TBF = TBF(TFI=0 TLLI=0x00002342 DIR=UL STATE=NULL) +Allocated TBF(TFI=0 TLLI=0x00002342 DIR=UL STATE=NULL): trx = 0, ul_slots = 04, dl_slots = 00 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 @@ -36,10 +42,12 @@ Modifying MS object, TLLI = 0x00004232, TA 4 -> 6 Searching for first unallocated TFI: TRX=0 first TS=4 Found TFI=0. ********** TBF starts here ********** -Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -51,6 +59,7 @@ Slot Allocation (Algorithm A) for class 45 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 FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append @@ -77,11 +86,11 @@ Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=8 block=2 data=07 00 03 14 15 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink acknowledge - Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) changes state from FLOW to WAIT RELEASE -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=1. ********** TBF starts here ********** -Allocating DL TBF: TFI=1 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=1. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -94,6 +103,7 @@ PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBF - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) +Allocated TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) Trigger dowlink assignment on PACCH, because another LLC PDU has arrived in between Send dowlink assignment on PACCH, because TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) exists TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) changes state from NULL to ASSIGN @@ -111,10 +121,12 @@ Destroying MS object, TLLI = 0xffeeddcc Searching for first unallocated TFI: TRX=0 first TS=4 Found TFI=0. ********** TBF starts here ********** -Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -126,6 +138,7 @@ Slot Allocation (Algorithm A) for class 45 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 FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append @@ -152,11 +165,11 @@ Sending data request: trx=0 ts=4 sapi=5 arfcn=0 fn=8 block=2 data=07 00 03 14 15 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink acknowledge - Final ACK received. TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) changes state from FLOW to WAIT RELEASE -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=1. ********** TBF starts here ********** -Allocating DL TBF: TFI=1 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=1. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -169,6 +182,7 @@ PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBF - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) +Allocated TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) Trigger dowlink assignment on PACCH, because another LLC PDU has arrived in between Send dowlink assignment on PACCH, because TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) exists TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) changes state from NULL to ASSIGN @@ -186,10 +200,12 @@ Destroying MS object, TLLI = 0xffeeddcc Searching for first unallocated TFI: TRX=0 first TS=4 Found TFI=0. ********** TBF starts here ********** -Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -201,6 +217,7 @@ Slot Allocation (Algorithm A) for class 45 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 FLOW The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append @@ -414,10 +431,12 @@ Destroying MS object, TLLI = 0xffeeddcc Searching for first unallocated TFI: TRX=0 first TS=4 Found TFI=0. ********** TBF starts here ********** -Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -429,14 +448,17 @@ Slot Allocation (Algorithm A) for class 45 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 FLOW Searching for first unallocated TFI: TRX=0 first TS=4 Found TFI=1. ********** TBF starts here ********** -Allocating DL TBF: TFI=1 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=1. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -448,6 +470,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000003. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW The MS object cannot fully confirm an unexpected TLLI: 0xf1000001, partly confirmed The MS object cannot fully confirm an unexpected TLLI: 0xf1000002, partly confirmed @@ -468,13 +491,13 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW), 0 TBF Detaching TBF from MS object, TLLI = 0xf1000001, TBF = TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW) Destroying MS object, TLLI = 0xf1000001 ********** TBF ends here ********** -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. ********** TBF starts here ********** -Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -486,6 +509,7 @@ Slot Allocation (Algorithm A) for class 45 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 The MS object cannot fully confirm an unexpected TLLI: 0xc0000000, partly confirmed TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000000, IMSI '' -> '001001000000000' @@ -494,13 +518,13 @@ TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 30 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 08 00 23 2b 2b 2b 2b TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=1. ********** TBF starts here ********** -Allocating DL TBF: TFI=1 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=1. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -512,6 +536,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000003. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000001, partly confirmed TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000001, IMSI '' -> '001001000000001' @@ -520,13 +545,13 @@ TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 31 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 18 40 23 2b 2b 2b 2b TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=2. ********** TBF starts here ********** -Allocating DL TBF: TFI=2 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=2. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -538,6 +563,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs, USFs = 00, TFIs = 00000007. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000002, partly confirmed TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000002, IMSI '' -> '001001000000002' @@ -546,13 +572,13 @@ TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 32 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 28 80 23 2b 2b 2b 2b TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=3. ********** TBF starts here ********** -Allocating DL TBF: TFI=3 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=3. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -564,6 +590,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL), 4 TBFs, USFs = 00, TFIs = 0000000f. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000003, partly confirmed TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000003, IMSI '' -> '001001000000003' @@ -572,13 +599,13 @@ TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 33 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 38 c0 23 2b 2b 2b 2b TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=4. ********** TBF starts here ********** -Allocating DL TBF: TFI=4 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=4. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -590,6 +617,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL), 5 TBFs, USFs = 00, TFIs = 0000001f. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000004, partly confirmed TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000004, IMSI '' -> '001001000000004' @@ -598,13 +626,13 @@ TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 34 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 49 00 23 2b 2b 2b 2b TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=5. ********** TBF starts here ********** -Allocating DL TBF: TFI=5 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=5. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -616,6 +644,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL), 6 TBFs, USFs = 00, TFIs = 0000003f. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000005, partly confirmed TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000005, IMSI '' -> '001001000000005' @@ -624,13 +653,13 @@ TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 35 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 59 40 23 2b 2b 2b 2b TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=6. ********** TBF starts here ********** -Allocating DL TBF: TFI=6 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=6. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -642,6 +671,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL), 7 TBFs, USFs = 00, TFIs = 0000007f. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000006, partly confirmed TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000006, IMSI '' -> '001001000000006' @@ -650,13 +680,13 @@ TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 36 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 69 80 23 2b 2b 2b 2b TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=7. ********** TBF starts here ********** -Allocating DL TBF: TFI=7 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=7. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -668,6 +698,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL), 8 TBFs, USFs = 00, TFIs = 000000ff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000007, partly confirmed TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000007, IMSI '' -> '001001000000007' @@ -676,13 +707,13 @@ TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 37 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 79 c0 23 2b 2b 2b 2b TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=8. ********** TBF starts here ********** -Allocating DL TBF: TFI=8 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=8. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -694,6 +725,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL), 9 TBFs, USFs = 00, TFIs = 000001ff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000008, partly confirmed TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000008, IMSI '' -> '001001000000008' @@ -702,13 +734,13 @@ TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 38 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 8a 00 23 2b 2b 2b 2b TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=9. ********** TBF starts here ********** -Allocating DL TBF: TFI=9 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=9. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -720,6 +752,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=9 TLLI=0x00000000 DIR=DL STATE=NULL), 10 TBFs, USFs = 00, TFIs = 000003ff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=9 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=9 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000009, partly confirmed TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000009, IMSI '' -> '001001000000009' @@ -728,13 +761,13 @@ TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 39 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 9a 40 23 2b 2b 2b 2b TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=10. ********** TBF starts here ********** -Allocating DL TBF: TFI=10 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=10. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -746,6 +779,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=10 TLLI=0x00000000 DIR=DL STATE=NULL), 11 TBFs, USFs = 00, TFIs = 000007ff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=10 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=10 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000000a, partly confirmed TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000000a, IMSI '' -> '001001000000010' @@ -754,13 +788,13 @@ TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 30 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 aa 80 23 2b 2b 2b 2b TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=11. ********** TBF starts here ********** -Allocating DL TBF: TFI=11 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=11. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -772,6 +806,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=11 TLLI=0x00000000 DIR=DL STATE=NULL), 12 TBFs, USFs = 00, TFIs = 00000fff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=11 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=11 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000000b, partly confirmed TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000000b, IMSI '' -> '001001000000011' @@ -780,13 +815,13 @@ TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 31 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 ba c0 23 2b 2b 2b 2b TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=12. ********** TBF starts here ********** -Allocating DL TBF: TFI=12 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=12. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -798,6 +833,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=12 TLLI=0x00000000 DIR=DL STATE=NULL), 13 TBFs, USFs = 00, TFIs = 00001fff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=12 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=12 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000000c, partly confirmed TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000000c, IMSI '' -> '001001000000012' @@ -806,13 +842,13 @@ TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 32 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 cb 00 23 2b 2b 2b 2b TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=13. ********** TBF starts here ********** -Allocating DL TBF: TFI=13 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=13. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -824,6 +860,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=13 TLLI=0x00000000 DIR=DL STATE=NULL), 14 TBFs, USFs = 00, TFIs = 00003fff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=13 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=13 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000000d, partly confirmed TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000000d, IMSI '' -> '001001000000013' @@ -832,13 +869,13 @@ TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 33 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 db 40 23 2b 2b 2b 2b TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=14. ********** TBF starts here ********** -Allocating DL TBF: TFI=14 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=14. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -850,6 +887,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=14 TLLI=0x00000000 DIR=DL STATE=NULL), 15 TBFs, USFs = 00, TFIs = 00007fff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=14 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=14 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000000e, partly confirmed TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000000e, IMSI '' -> '001001000000014' @@ -858,13 +896,13 @@ TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 34 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 eb 80 23 2b 2b 2b 2b TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=15. ********** TBF starts here ********** -Allocating DL TBF: TFI=15 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=15. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -876,6 +914,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=15 TLLI=0x00000000 DIR=DL STATE=NULL), 16 TBFs, USFs = 00, TFIs = 0000ffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=15 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=15 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000000f, partly confirmed TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000000f, IMSI '' -> '001001000000015' @@ -884,13 +923,13 @@ TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 35 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 fb c0 23 2b 2b 2b 2b TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=16. ********** TBF starts here ********** -Allocating DL TBF: TFI=16 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=16. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -902,6 +941,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=16 TLLI=0x00000000 DIR=DL STATE=NULL), 17 TBFs, USFs = 00, TFIs = 0001ffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=16 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=16 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000010, partly confirmed TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000010, IMSI '' -> '001001000000016' @@ -910,13 +950,13 @@ TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 36 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 0c 00 23 2b 2b 2b 2b TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=17. ********** TBF starts here ********** -Allocating DL TBF: TFI=17 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=17. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -928,6 +968,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=17 TLLI=0x00000000 DIR=DL STATE=NULL), 18 TBFs, USFs = 00, TFIs = 0003ffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=17 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=17 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000011, partly confirmed TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000011, IMSI '' -> '001001000000017' @@ -936,13 +977,13 @@ TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 37 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 1c 40 23 2b 2b 2b 2b TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=18. ********** TBF starts here ********** -Allocating DL TBF: TFI=18 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=18. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -954,6 +995,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=18 TLLI=0x00000000 DIR=DL STATE=NULL), 19 TBFs, USFs = 00, TFIs = 0007ffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=18 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=18 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000012, partly confirmed TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000012, IMSI '' -> '001001000000018' @@ -962,13 +1004,13 @@ TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 38 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 2c 80 23 2b 2b 2b 2b TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=19. ********** TBF starts here ********** -Allocating DL TBF: TFI=19 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=19. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -980,6 +1022,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=19 TLLI=0x00000000 DIR=DL STATE=NULL), 20 TBFs, USFs = 00, TFIs = 000fffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=19 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=19 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000013, partly confirmed TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000013, IMSI '' -> '001001000000019' @@ -988,13 +1031,13 @@ TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 39 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 3c c0 23 2b 2b 2b 2b TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=20. ********** TBF starts here ********** -Allocating DL TBF: TFI=20 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=20. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1006,6 +1049,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=20 TLLI=0x00000000 DIR=DL STATE=NULL), 21 TBFs, USFs = 00, TFIs = 001fffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=20 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=20 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000014, partly confirmed TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000014, IMSI '' -> '001001000000020' @@ -1014,13 +1058,13 @@ TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 30 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 4d 00 23 2b 2b 2b 2b TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=21. ********** TBF starts here ********** -Allocating DL TBF: TFI=21 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=21. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1032,6 +1076,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=21 TLLI=0x00000000 DIR=DL STATE=NULL), 22 TBFs, USFs = 00, TFIs = 003fffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=21 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=21 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000015, partly confirmed TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000015, IMSI '' -> '001001000000021' @@ -1040,13 +1085,13 @@ TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 31 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 5d 40 23 2b 2b 2b 2b TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=22. ********** TBF starts here ********** -Allocating DL TBF: TFI=22 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=22. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1058,6 +1103,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=22 TLLI=0x00000000 DIR=DL STATE=NULL), 23 TBFs, USFs = 00, TFIs = 007fffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=22 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=22 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000016, partly confirmed TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000016, IMSI '' -> '001001000000022' @@ -1066,13 +1112,13 @@ TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 32 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 6d 80 23 2b 2b 2b 2b TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=23. ********** TBF starts here ********** -Allocating DL TBF: TFI=23 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=23. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1084,6 +1130,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=23 TLLI=0x00000000 DIR=DL STATE=NULL), 24 TBFs, USFs = 00, TFIs = 00ffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=23 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=23 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000017, partly confirmed TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000017, IMSI '' -> '001001000000023' @@ -1092,13 +1139,13 @@ TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 33 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 7d c0 23 2b 2b 2b 2b TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=24. ********** TBF starts here ********** -Allocating DL TBF: TFI=24 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=24. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1110,6 +1157,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=24 TLLI=0x00000000 DIR=DL STATE=NULL), 25 TBFs, USFs = 00, TFIs = 01ffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=24 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=24 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000018, partly confirmed TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000018, IMSI '' -> '001001000000024' @@ -1118,13 +1166,13 @@ TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 34 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 8e 00 23 2b 2b 2b 2b TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=25. ********** TBF starts here ********** -Allocating DL TBF: TFI=25 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=25. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1136,6 +1184,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=25 TLLI=0x00000000 DIR=DL STATE=NULL), 26 TBFs, USFs = 00, TFIs = 03ffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=25 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=25 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc0000019, partly confirmed TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0000019, IMSI '' -> '001001000000025' @@ -1144,13 +1193,13 @@ TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 35 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 9e 40 23 2b 2b 2b 2b TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=26. ********** TBF starts here ********** -Allocating DL TBF: TFI=26 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=26. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1162,6 +1211,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=26 TLLI=0x00000000 DIR=DL STATE=NULL), 27 TBFs, USFs = 00, TFIs = 07ffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=26 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=26 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000001a, partly confirmed TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000001a, IMSI '' -> '001001000000026' @@ -1170,13 +1220,13 @@ TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 36 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 ae 80 23 2b 2b 2b 2b TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=27. ********** TBF starts here ********** -Allocating DL TBF: TFI=27 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=27. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1188,6 +1238,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=27 TLLI=0x00000000 DIR=DL STATE=NULL), 28 TBFs, USFs = 00, TFIs = 0fffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=27 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=27 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000001b, partly confirmed TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000001b, IMSI '' -> '001001000000027' @@ -1196,13 +1247,13 @@ TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 37 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 be c0 23 2b 2b 2b 2b TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=28. ********** TBF starts here ********** -Allocating DL TBF: TFI=28 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=28. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1214,6 +1265,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=28 TLLI=0x00000000 DIR=DL STATE=NULL), 29 TBFs, USFs = 00, TFIs = 1fffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=28 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=28 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000001c, partly confirmed TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000001c, IMSI '' -> '001001000000028' @@ -1222,13 +1274,13 @@ TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 38 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 cf 00 23 2b 2b 2b 2b TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=29. ********** TBF starts here ********** -Allocating DL TBF: TFI=29 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=29. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1240,6 +1292,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=29 TLLI=0x00000000 DIR=DL STATE=NULL), 30 TBFs, USFs = 00, TFIs = 3fffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=29 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=29 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000001d, partly confirmed TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000001d, IMSI '' -> '001001000000029' @@ -1248,13 +1301,13 @@ TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 39 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 df 40 23 2b 2b 2b 2b TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=30. ********** TBF starts here ********** -Allocating DL TBF: TFI=30 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=30. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1266,6 +1319,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=30 TLLI=0x00000000 DIR=DL STATE=NULL), 31 TBFs, USFs = 00, TFIs = 7fffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=30 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=30 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000001e, partly confirmed TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000001e, IMSI '' -> '001001000000030' @@ -1274,13 +1328,13 @@ TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 33 30 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 ef 80 23 2b 2b 2b 2b TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=ASSIGN) append -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=31. ********** TBF starts here ********** -Allocating DL TBF: TFI=31 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=31. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1292,6 +1346,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=31 TLLI=0x00000000 DIR=DL STATE=NULL), 32 TBFs, USFs = 00, TFIs = ffffffff. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=31 TLLI=0x00000000 DIR=DL STATE=NULL) +Allocated TBF(TFI=31 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 The MS object cannot fully confirm an unexpected TLLI: 0xc000001f, partly confirmed TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc000001f, IMSI '' -> '001001000000031' @@ -1300,16 +1355,23 @@ TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL) changes state from NULL to ASSIGN TX: START TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH) Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 33 31 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 ff c0 23 2b 2b 2b 2b TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=ASSIGN) append +********** TBF starts here ********** +Allocating DL TBF: MS_CLASS=45 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +Slot Allocation (Algorithm A) for class 45 Searching for first unallocated TFI: TRX=0 first TS=4 No TFI available. +- Failed to allocate a TFI No PDCH resource -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. +Destroying MS object, TLLI = 0x00000000 ********** TBF starts here ********** -Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1321,6 +1383,7 @@ Slot Allocation (Algorithm A) for class 45 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 The MS object cannot fully confirm an unexpected TLLI: 0xc0123456, partly confirmed TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) [DOWNLINK] START Modifying MS object, TLLI = 0xc0123456, IMSI '' -> '001001000123456' @@ -1334,11 +1397,11 @@ TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) free PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN) ********** TBF ends here ********** -Searching for first unallocated TFI: TRX=0 first TS=4 - Found TFI=0. ********** TBF starts here ********** -Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45 +Allocating DL TBF: MS_CLASS=45 Slot Allocation (Algorithm A) for class 45 +Searching for first unallocated TFI: TRX=0 first TS=4 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1350,6 +1413,7 @@ Slot Allocation (Algorithm A) for class 45 PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001. - Setting Control TS 4 Attaching TBF to MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) +Allocated TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) [DOWNLINK] START Send dowlink assignment for TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001000123456) TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) changes state from NULL to ASSIGN @@ -1386,12 +1450,12 @@ MSG = 07 01 04 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 Searching for first unallocated TFI: TRX=0 first TS=7 Found TFI=0. MS requests UL TBF on RACH, so we provide one: -Searching for first unallocated TFI: TRX=0 first TS=7 - Found TFI=0. ********** TBF starts here ********** -Allocating UL TBF: TFI=0 TRX=0 MS_CLASS=0 +Allocating UL TBF: MS_CLASS=0 Creating MS object, TLLI = 0x00000000 Slot Allocation (Algorithm A) for class 0 +Searching for first unallocated TFI: TRX=0 first TS=7 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1403,6 +1467,7 @@ Slot Allocation (Algorithm A) for class 0 PDCH(TS 7, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. - Setting Control TS 7 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL): trx = 0, ul_slots = 80, dl_slots = 00 Modifying MS object, TLLI = 0x00000000, TA 0 -> 7 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer 3169. @@ -1443,12 +1508,12 @@ Searching for first unallocated TFI: TRX=0 first TS=7 ------------------------- RX : Uplink Control Block ------------------------- MS requests UL TBF in packet resource request of single block, so we provide one: MS does not give us a class. -Searching for first unallocated TFI: TRX=0 first TS=7 - Found TFI=0. ********** TBF starts here ********** -Allocating UL TBF: TFI=0 TRX=0 MS_CLASS=0 +Allocating UL TBF: MS_CLASS=0 Creating MS object, TLLI = 0x00000000 Slot Allocation (Algorithm A) for class 0 +Searching for first unallocated TFI: TRX=0 first TS=7 + Found TFI=0. - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled - Skipping TS 2, because not enabled @@ -1460,6 +1525,7 @@ Slot Allocation (Algorithm A) for class 0 PDCH(TS 7, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001. - Setting Control TS 7 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) +Allocated TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL): trx = 0, ul_slots = 80, 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. Modifying MS object, UL TLLI: 0x00000000 -> 0xf1223344, not yet confirmed |