From 322456ed474a733094c9f3e240295b469023ad14 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 8 May 2020 18:15:59 +0200 Subject: [PATCH] Expect ms object to exist before calling tbf_alloc_dl_tbf() Same as previous commit, this time for the DL counterpart. Change-Id: I87f6cdf8288a688466020bda0874e68b57aa71c4 --- src/tbf.cpp | 24 ++- src/tbf.h | 3 +- src/tbf_dl.cpp | 12 +- tests/alloc/AllocTest.cpp | 60 +++---- tests/app_info/AppInfoTest.cpp | 4 +- tests/tbf/TbfTest.cpp | 33 ++-- tests/tbf/TbfTest.err | 305 +++++++++++++++++---------------- tests/types/TypesTest.cpp | 3 +- 8 files changed, 223 insertions(+), 221 deletions(-) diff --git a/src/tbf.cpp b/src/tbf.cpp index e41ed9f8..56fdcd13 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1049,24 +1049,25 @@ static int dl_tbf_dtor(struct gprs_rlcmac_dl_tbf *tbf) return 0; } -struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms, int8_t use_trx, uint8_t ms_class, - uint8_t egprs_ms_class, bool single_slot) +struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms, int8_t use_trx, bool single_slot) { struct gprs_rlcmac_dl_tbf *tbf; int rc; - if (egprs_ms_class == 0 && bts->egprs_enabled) { - if (ms_class > 0) { + OSMO_ASSERT(ms != NULL); + + if (ms->egprs_ms_class() == 0 && bts->egprs_enabled) { + if (ms->ms_class() > 0) { LOGP(DTBF, LOGL_NOTICE, "Not accepting non-EGPRS phone in EGPRS-only mode\n"); bts->bts->tbf_failed_egprs_only(); return NULL; } - egprs_ms_class = 1; + ms->set_egprs_ms_class(1); } LOGP(DTBF, LOGL_DEBUG, "********** DL-TBF starts here **********\n"); LOGP(DTBF, LOGL_INFO, "Allocating DL TBF: MS_CLASS=%d/%d\n", - ms_class, egprs_ms_class); + ms->ms_class(), ms->egprs_ms_class()); tbf = talloc(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); @@ -1075,17 +1076,13 @@ struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs talloc_set_destructor(tbf, dl_tbf_dtor); new (tbf) gprs_rlcmac_dl_tbf(bts->bts); - - if (!ms) - ms = bts->bts->ms_alloc(ms_class, egprs_ms_class); - - if (egprs_ms_class > 0 && bts->egprs_enabled) { + if (ms->egprs_ms_class() > 0 && bts->egprs_enabled) { tbf->enable_egprs(); setup_egprs_mode(bts, ms); LOGPTBF(tbf, LOGL_INFO, "Enabled EGPRS, mode %s\n", mode_name(ms->mode())); } - rc = setup_tbf(tbf, ms, use_trx, ms_class, 0, single_slot); + rc = setup_tbf(tbf, ms, use_trx, ms->ms_class(), 0, single_slot); /* if no resource */ if (rc < 0) { talloc_free(tbf); @@ -1430,8 +1427,7 @@ int gprs_rlcmac_tbf::establish_dl_tbf_on_pacch() bts->tbf_reused(); new_tbf = tbf_alloc_dl_tbf(bts->bts_data(), ms(), - this->trx->trx_no, ms_class(), - ms() ? ms()->egprs_ms_class() : 0, false); + this->trx->trx_no, false); if (!new_tbf) { LOGP(DTBF, LOGL_NOTICE, "No PDCH resource\n"); diff --git a/src/tbf.h b/src/tbf.h index 33d996f2..5ebd2e81 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -351,8 +351,7 @@ struct gprs_rlcmac_ul_tbf *tbf_alloc_ul(struct gprs_rlcmac_bts *bts, GprsMs *ms, struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms, int8_t use_trx, bool single_slot); -struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms, int8_t use_trx, uint8_t ms_class, - uint8_t egprs_ms_class, bool single_slot); +struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms, int8_t use_trx, bool single_slot); void tbf_free(struct gprs_rlcmac_tbf *tbf); diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 4e8966e6..591f4608 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -146,10 +146,12 @@ static int tbf_new_dl_assignment(struct gprs_rlcmac_bts *bts, /* check for uplink data, so we copy our informations */ ms = bts->bts->ms_store().get_ms(tlli, tlli_old, imsi); - if (ms) { - ul_tbf = ms->ul_tbf(); - ta = ms->ta(); - } + if (!ms) + ms = bts->bts->ms_alloc(ms_class, egprs_ms_class); /* ms class updated later */ + + ul_tbf = ms->ul_tbf(); + ta = ms->ta(); + /* TODO: if (!ms) create MS before tbf_alloc is called? */ if (ul_tbf && ul_tbf->m_contention_resolution_done @@ -166,7 +168,7 @@ static int tbf_new_dl_assignment(struct gprs_rlcmac_bts *bts, // Create new TBF (any TRX) /* FIXME: Copy and paste with alloc_ul_tbf */ /* set number of downlink slots according to multislot class */ - dl_tbf = tbf_alloc_dl_tbf(bts, ms, use_trx, ms_class, egprs_ms_class, ss); + dl_tbf = tbf_alloc_dl_tbf(bts, ms, use_trx, ss); if (!dl_tbf) { LOGP(DTBF, LOGL_NOTICE, "No PDCH resource\n"); diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index abd5d22f..fec2c31f 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -41,17 +41,14 @@ bool spoof_mnc_3_digits = false; static gprs_rlcmac_tbf *tbf_alloc(struct gprs_rlcmac_bts *bts, GprsMs *ms, gprs_rlcmac_tbf_direction dir, - uint8_t use_trx, - uint8_t ms_class, uint8_t egprs_ms_class, bool single_slot) + uint8_t use_trx, bool single_slot) { - if (dir == GPRS_RLCMAC_UL_TBF && !ms) - ms = bts->bts->ms_alloc(ms_class, egprs_ms_class); + OSMO_ASSERT(ms != NULL); if (dir == GPRS_RLCMAC_UL_TBF) return tbf_alloc_ul_tbf(bts, ms, use_trx, single_slot); else - return tbf_alloc_dl_tbf(bts, ms, use_trx, - ms_class, egprs_ms_class, single_slot); + return tbf_alloc_dl_tbf(bts, ms, use_trx, single_slot); } static void check_tfi_usage(BTS *the_bts) @@ -116,6 +113,7 @@ static void test_alloc_a(gprs_rlcmac_tbf_direction dir, int i; uint8_t used_trx, tmp_trx; BTS the_bts; + GprsMs *ms; struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_tbf *tbfs[32*8+1] = { 0, }; @@ -138,7 +136,8 @@ static void test_alloc_a(gprs_rlcmac_tbf_direction dir, * least this part is working okay. */ for (i = 0; i < (int)ARRAY_SIZE(tbfs); ++i) { - tbfs[i] = tbf_alloc(bts, NULL, dir, -1, 0, 0, 0); + ms = bts->bts->ms_alloc(0, 0); + tbfs[i] = tbf_alloc(bts, ms, dir, -1, 0); if (tbfs[i] == NULL) break; @@ -155,7 +154,8 @@ static void test_alloc_a(gprs_rlcmac_tbf_direction dir, if (tbfs[i]) tbf_free(tbfs[i]); - tbfs[0] = tbf_alloc(bts, NULL, dir, -1, 0, 0, 0); + ms = bts->bts->ms_alloc(0, 0); + tbfs[0] = tbf_alloc(bts, ms, dir, -1, 0); OSMO_ASSERT(tbfs[0]); tbf_free(tbfs[0]); } @@ -229,8 +229,7 @@ static inline bool test_alloc_b_ul_dl(bool ts0, bool ts1, bool ts2, bool ts3, bo dump_assignment(ul_tbf, "UL", verbose); /* assume final ack has not been sent */ - dl_tbf = tbf_alloc_dl_tbf(bts, ul_tbf->ms(), ul_tbf->ms()->current_trx()->trx_no, ms_class, 0, - false); + dl_tbf = tbf_alloc_dl_tbf(bts, ms, ms->current_trx()->trx_no, false); if (!dl_tbf) return false; @@ -262,15 +261,14 @@ static inline bool test_alloc_b_dl_ul(bool ts0, bool ts1, bool ts2, bool ts3, bo enable_ts_on_bts(bts, ts0, ts1, ts2, ts3, ts4, ts5, ts6, ts7); - dl_tbf = tbf_alloc_dl_tbf(bts, NULL, -1, ms_class, 0, true); + ms = the_bts.ms_alloc(ms_class, 0); + dl_tbf = tbf_alloc_dl_tbf(bts, ms, -1, true); if (!dl_tbf) return false; dl_tbf->update_ms(0x23, GPRS_RLCMAC_DL_TBF); - ms = dl_tbf->ms(); - OSMO_ASSERT(dl_tbf->ms()); + OSMO_ASSERT(dl_tbf->ms() == ms); OSMO_ASSERT(dl_tbf->ms()->current_trx()); - ms->set_ms_class(ms_class); dump_assignment(dl_tbf, "DL", verbose); @@ -320,14 +318,13 @@ static inline bool test_alloc_b_jolly(uint8_t ms_class) if (!ul_tbf) return false; - OSMO_ASSERT(ul_tbf->ms()); + OSMO_ASSERT(ul_tbf->ms() == ms); OSMO_ASSERT(ul_tbf->ms()->current_trx()); - trx_no = ul_tbf->ms()->current_trx()->trx_no; + trx_no = ms->current_trx()->trx_no; dump_assignment(ul_tbf, "UL", true); /* assume final ack has not been sent */ - dl_tbf = tbf_alloc_dl_tbf(bts, ul_tbf->ms(), trx_no, ms_class, 0, - false); + dl_tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, false); if (!dl_tbf) return false; @@ -456,8 +453,7 @@ static inline char *test_mode_descr(enum test_mode t) } } -static GprsMs *alloc_tbfs(BTS *the_bts, GprsMs *ms, unsigned ms_class, - enum test_mode mode) +static GprsMs *alloc_tbfs(BTS *the_bts, GprsMs *ms, enum test_mode mode) { struct gprs_rlcmac_bts *bts; uint8_t trx_no = -1; @@ -478,9 +474,8 @@ static GprsMs *alloc_tbfs(BTS *the_bts, GprsMs *ms, unsigned ms_class, case TEST_MODE_UL_ONLY: case TEST_MODE_DL_AFTER_UL: case TEST_MODE_UL_AND_DL: - if (ms && ms->ul_tbf()) + if (ms->ul_tbf()) tbf_free(ms->ul_tbf()); - ms->set_ms_class(ms_class); tbf = tbf_alloc_ul_tbf(bts, ms, trx_no, false); if (tbf == NULL) return NULL; @@ -488,9 +483,9 @@ static GprsMs *alloc_tbfs(BTS *the_bts, GprsMs *ms, unsigned ms_class, case TEST_MODE_DL_ONLY: case TEST_MODE_UL_AFTER_DL: case TEST_MODE_DL_AND_UL: - if (ms && ms->dl_tbf()) + if (ms->dl_tbf()) tbf_free(ms->dl_tbf()); - tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, ms_class, 0, false); + tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, false); if (tbf == NULL) return NULL; } @@ -511,12 +506,12 @@ static GprsMs *alloc_tbfs(BTS *the_bts, GprsMs *ms, unsigned ms_class, case TEST_MODE_DL_AFTER_UL: case TEST_MODE_UL_AND_DL: - ms = alloc_tbfs(the_bts, ms, ms_class, TEST_MODE_DL_ONLY); + ms = alloc_tbfs(the_bts, ms, TEST_MODE_DL_ONLY); break; case TEST_MODE_UL_AFTER_DL: case TEST_MODE_DL_AND_UL: - ms = alloc_tbfs(the_bts, ms, ms_class, TEST_MODE_UL_ONLY); + ms = alloc_tbfs(the_bts, ms, TEST_MODE_UL_ONLY); break; } @@ -561,8 +556,8 @@ static unsigned alloc_many_tbfs(BTS *the_bts, unsigned min_class, ms = the_bts->ms_by_tlli(tlli); if (!ms) ms = the_bts->ms_alloc(0, 0); - - ms = alloc_tbfs(the_bts, ms, ms_class, mode); + ms->set_ms_class(ms_class); + ms = alloc_tbfs(the_bts, ms, mode); if (!ms) break; @@ -754,6 +749,7 @@ static void test_successive_allocations() static void test_2_consecutive_dl_tbfs() { BTS the_bts; + GprsMs *ms; struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_trx *trx; uint8_t ms_class = 11; @@ -772,8 +768,8 @@ static void test_2_consecutive_dl_tbfs() trx->pdch[6].enable(); trx->pdch[7].enable(); - dl_tbf1 = tbf_alloc_dl_tbf(bts, NULL, 0, ms_class, egprs_ms_class, - false); + ms = the_bts.ms_alloc(ms_class, egprs_ms_class); + dl_tbf1 = tbf_alloc_dl_tbf(bts, ms, 0, false); OSMO_ASSERT(dl_tbf1); for (int i = 0; i < 8; i++) { @@ -783,8 +779,8 @@ static void test_2_consecutive_dl_tbfs() OSMO_ASSERT(numTs1 == 4); printf("TBF1: numTs(%d)\n", numTs1); - dl_tbf2 = tbf_alloc_dl_tbf(bts, NULL, 0, ms_class, egprs_ms_class, - false); + ms = the_bts.ms_alloc(ms_class, egprs_ms_class); + dl_tbf2 = tbf_alloc_dl_tbf(bts, ms, 0, false); OSMO_ASSERT(dl_tbf2); for (int i = 0; i < 8; i++) { diff --git a/tests/app_info/AppInfoTest.cpp b/tests/app_info/AppInfoTest.cpp index ca2c59e2..cd4454d1 100644 --- a/tests/app_info/AppInfoTest.cpp +++ b/tests/app_info/AppInfoTest.cpp @@ -93,9 +93,9 @@ void prepare_bts_with_two_dl_tbf_subscr() trx->pdch[7].enable(); ms1 = bts->ms_alloc(10, 11); - tbf1 = tbf_alloc_dl_tbf(bts_data, ms1, 0, 10, 11, false); + tbf1 = tbf_alloc_dl_tbf(bts_data, ms1, 0, false); ms2 = bts->ms_alloc(12, 13); - tbf2 = tbf_alloc_dl_tbf(bts_data, ms2, 0, 12, 13, false); + tbf2 = tbf_alloc_dl_tbf(bts_data, ms2, 0, false); fprintf(stderr, "\n"); } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 0a979e56..36f9ceda 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -87,23 +87,23 @@ static void test_tbf_tlli_update() /* * Make a uplink and downlink allocation */ + ms = the_bts.ms_alloc(0, 0); gprs_rlcmac_tbf *dl_tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), - NULL, - 0, 0, 0, false); + ms, 0, false); OSMO_ASSERT(dl_tbf != NULL); dl_tbf->update_ms(0x2342, GPRS_RLCMAC_DL_TBF); dl_tbf->set_ta(4); + OSMO_ASSERT(ms->dl_tbf() == dl_tbf); + OSMO_ASSERT(dl_tbf->ms() == ms); gprs_rlcmac_tbf *ul_tbf = tbf_alloc_ul_tbf(the_bts.bts_data(), - dl_tbf->ms(), 0, false); + ms, 0, false); OSMO_ASSERT(ul_tbf != NULL); ul_tbf->update_ms(0x2342, GPRS_RLCMAC_UL_TBF); - - ms = the_bts.ms_by_tlli(0x2342); - - OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf); OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ul_tbf->ms() == ms); + + OSMO_ASSERT(the_bts.ms_by_tlli(0x2342) == ms); /* * Now check.. that DL changes and that the timing advance @@ -172,15 +172,15 @@ static gprs_rlcmac_dl_tbf *create_dl_tbf(BTS *the_bts, uint8_t ms_class, gprs_rlcmac_bts *bts; int tfi; uint8_t trx_no; - + GprsMs *ms; gprs_rlcmac_dl_tbf *dl_tbf; bts = the_bts->bts_data(); + ms = the_bts->ms_alloc(ms_class, egprs_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, trx_no, ms_class, egprs_ms_class, - true); + dl_tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, true); dl_tbf->set_ta(0); check_tbf(dl_tbf); @@ -2232,6 +2232,7 @@ static void test_tbf_ws() { BTS the_bts; gprs_rlcmac_bts *bts; + GprsMs *ms; uint8_t ts_no = 4; uint8_t ms_class = 12; gprs_rlcmac_dl_tbf *dl_tbf; @@ -2258,7 +2259,8 @@ static void test_tbf_ws() gprs_bssgp_create_and_connect(bts, 33001, 0, 33001, 4234, 4234, 4234, 1, 1, false, 0, 0, 0); /* Does no support EGPRS */ - dl_tbf = tbf_alloc_dl_tbf(bts, NULL, 0, ms_class, 0, false); + ms = the_bts.ms_alloc(ms_class, 0); + dl_tbf = tbf_alloc_dl_tbf(bts, ms, 0, false); ws_check(dl_tbf, __func__, 4, 64, true, false); @@ -2266,7 +2268,8 @@ static void test_tbf_ws() bts->egprs_enabled = 1; /* Does support EGPRS */ - dl_tbf = tbf_alloc_dl_tbf(bts, NULL, 0, ms_class, ms_class, false); + ms = the_bts.ms_alloc(ms_class, ms_class); + dl_tbf = tbf_alloc_dl_tbf(bts, ms, 0, false); ws_check(dl_tbf, __func__, 4, 128 + 4 * 64, true, true); } @@ -2275,6 +2278,7 @@ static void test_tbf_update_ws(void) { BTS the_bts; gprs_rlcmac_bts *bts; + GprsMs *ms; uint8_t ts_no = 4; uint8_t ms_class = 11; gprs_rlcmac_dl_tbf *dl_tbf; @@ -2304,7 +2308,8 @@ static void test_tbf_update_ws(void) bts->egprs_enabled = 1; /* Does support EGPRS */ - dl_tbf = tbf_alloc_dl_tbf(bts, NULL, 0, ms_class, ms_class, true); + ms = the_bts.ms_alloc(ms_class, ms_class); + dl_tbf = tbf_alloc_dl_tbf(bts, ms, 0, true); ws_check(dl_tbf, __func__, 1, 128 + 1 * 64, false, false); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 3f72266e..6019def7 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1,9 +1,9 @@ === start test_tbf_base === === end test_tbf_base === === start test_tbf_tlli_update === +Creating MS object, TLLI = 0x00000000 ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=0/0 -Creating MS object, TLLI = 0x00000000 [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -40,12 +40,12 @@ Modifying MS object, TLLI: 0x00002342 -> 0x00004232, already confirmed partly Modifying MS object, TLLI = 0x00004232, TA 4 -> 6 === end test_tbf_tlli_update === === start test_tbf_final_ack === +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=45/0 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -130,12 +130,12 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc === end test_tbf_final_ack === === start test_tbf_final_ack === +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=45/0 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -220,12 +220,12 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc === end test_tbf_final_ack === === start test_tbf_delayed_release === +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=45/0 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -475,12 +475,12 @@ Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** === end test_tbf_delayed_release === === start test_tbf_imsi === +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=45/0 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -497,12 +497,12 @@ TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 10, Modifying MS object, TLLI = 0x00000000, TA 220 -> 0 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes DL ASS state from GPRS_RLCMAC_DL_ASS_NONE to GPRS_RLCMAC_DL_ASS_SEND_ASS TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Searching for first unallocated TFI: TRX=0 Found TFI=1. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=45/0 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -542,10 +542,10 @@ Destroying MS object, TLLI = 0xf1000002 ********** DL-TBF ends here ********** === end test_tbf_imsi === === start test_tbf_exhaustion === -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -567,10 +567,10 @@ TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -592,10 +592,10 @@ TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -617,10 +617,10 @@ TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -642,10 +642,10 @@ TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -667,10 +667,10 @@ TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -692,10 +692,10 @@ TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -717,10 +717,10 @@ TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -742,10 +742,10 @@ TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -767,10 +767,10 @@ TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -792,10 +792,10 @@ TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -817,10 +817,10 @@ TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -842,10 +842,10 @@ TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -867,10 +867,10 @@ TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -892,10 +892,10 @@ TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -917,10 +917,10 @@ TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -942,10 +942,10 @@ TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -967,10 +967,10 @@ TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -992,10 +992,10 @@ TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1017,10 +1017,10 @@ TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1042,10 +1042,10 @@ TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1067,10 +1067,10 @@ TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1092,10 +1092,10 @@ TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1117,10 +1117,10 @@ TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1142,10 +1142,10 @@ TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1167,10 +1167,10 @@ TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1192,10 +1192,10 @@ TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1217,10 +1217,10 @@ TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1242,10 +1242,10 @@ TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1267,10 +1267,10 @@ TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1292,10 +1292,10 @@ TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1317,10 +1317,10 @@ TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -1342,20 +1342,20 @@ TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL) changes state from NULL to ASSIGN TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH) - TRX=0 (0) TS=4 TA=220 pollFN=-1 TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=ASSIGN) appending 256 bytes -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 [DL] algo A (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) No PDCH resource === end test_tbf_exhaustion === Destroying MS object, TLLI = 0x00000000 === start test_tbf_dl_llc_loss === -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=45/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=45/0 [DL] Slot Allocation (Algorithm A) for class 45 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled @@ -3053,14 +3053,17 @@ TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on F TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 10, CS-1): 0f 03 14 4d 43 20 50 41 43 4b 45 54 20 30 39 20 28 54 42 46 20 32 29 === end test_tbf_dl_reuse === === start test_tbf_gprs_egprs === +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45 Not accepting non-EGPRS phone in EGPRS-only mode No PDCH resource === end test_tbf_gprs_egprs === +Destroying MS object, TLLI = 0x00000000 === start test_tbf_ws === -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=12/0 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 12 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=12/0 Searching for first unallocated TFI: TRX=0 Found TFI=0. Slot Allocation (Algorithm B) for class 12 @@ -3094,11 +3097,11 @@ PDCH(TS 5, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING), Detaching TBF from MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING) Destroying MS object, TLLI = 0x00000000 ********** DL-TBF ends here ********** -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=12/12 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 12 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 12 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=12/12 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS Searching for first unallocated TFI: TRX=0 Found TFI=0. @@ -3452,13 +3455,13 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes === end test_tbf_egprs_two_phase_spb === === start test_tbf_egprs_dl === Testing MCS-1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -3759,13 +3762,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing MCS-2 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -4016,13 +4019,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing MCS-3 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -4235,13 +4238,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing MCS-4 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -4422,13 +4425,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing MCS-5 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -4589,13 +4592,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing MCS-6 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -4738,13 +4741,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing MCS-7 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -4882,13 +4885,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing MCS-8 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5015,13 +5018,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing MCS-9 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5150,13 +5153,13 @@ Destroying MS object, TLLI = 0xffeeddcc === end test_tbf_egprs_dl === === start test_tbf_egprs_retx_dl === Testing retx for MCS 6 - 6 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5206,13 +5209,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing retx for MCS 1 - 9 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5262,13 +5265,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing retx for MCS 2 - 8 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5318,13 +5321,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing retx for MCS 5 - 7 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5390,13 +5393,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing retx for MCS 6 - 9 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5462,13 +5465,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing retx for MCS 7 - 5 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5534,13 +5537,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing retx for MCS 9 - 6 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5608,13 +5611,13 @@ Destroying MS object, TLLI = 0xffeeddcc === end test_tbf_egprs_retx_dl === === start test_tbf_egprs_spb_dl === Testing retx for MCS 6 to reseg_mcs 3 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5671,13 +5674,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing retx for MCS 5 to reseg_mcs 2 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5734,13 +5737,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing retx for MCS 4 to reseg_mcs 1 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5797,13 +5800,13 @@ Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc Destroying MS object, TLLI = 0xffeeddcc ********** DL-TBF ends here ********** Testing retx for MCS 6 to reseg_mcs 3 +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -5979,11 +5982,11 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) starting timer T0 [assignme TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes === end test_tbf_puan_urbb_len === === start test_tbf_update_ws === -********** DL-TBF starts here ********** -Allocating DL TBF: MS_CLASS=11/11 Creating MS object, TLLI = 0x00000000 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 +********** DL-TBF starts here ********** +Allocating DL TBF: MS_CLASS=11/11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS Searching for first unallocated TFI: TRX=0 Found TFI=0. @@ -6138,13 +6141,13 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) starting timer T0 [assignme TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes === end test_tbf_li_decoding === === start test_tbf_epdan_out_of_rx_window === +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS [DL] Slot Allocation (Algorithm A) for class 0 - Skipping TS 0, because not enabled @@ -7781,13 +7784,13 @@ Got MS: TLLI = 0xf1223344, TA = 7 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes === end test_tbf_egprs_two_phase_puan === === start test_packet_access_rej_epdan === +Creating MS object, TLLI = 0x00000000 +Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 +Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** DL-TBF starts here ********** Allocating DL TBF: MS_CLASS=11/11 -Creating MS object, TLLI = 0x00000000 -Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11 -Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11 [DL] Slot Allocation (Algorithm A) for class 11 - Skipping TS 0, because not enabled - Skipping TS 1, because not enabled diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 8469d60b..e3c0991d 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -756,8 +756,9 @@ void test_immediate_assign_dl() the_bts.bts_data()->alloc_algorithm = alloc_algorithm_a; the_bts.bts_data()->trx[0].pdch[2].enable(); the_bts.bts_data()->trx[0].pdch[3].enable(); + GprsMs *ms = the_bts.ms_alloc(1, 1); - struct gprs_rlcmac_tbf *tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, 0, 1, 1, false); + struct gprs_rlcmac_tbf *tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), ms, 0, false); static uint8_t res[] = { 0x06, 0x3f, /* Immediate Assignment Message Type */ 0x30, /* §10.5.2.26 Page Mode and §10.5.2.25b Dedicated mode/TBF */