diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-07-10 19:52:37 +0200 |
---|---|---|
committer | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-07-16 10:25:14 +0200 |
commit | 3a10dbd56428cf0e79b738f62748509bbd04aa68 (patch) | |
tree | 9f5e96fc468f62c0a1f68547b9a249f757c2aa64 /tests | |
parent | e0853cdf42e60acd7759acd4869c84756eb1fa27 (diff) |
tbf: Put the TFI->TBF mapping into the PDCH objects
Currently the TBFs are registered in a TFI indexed array within the TRX
objects. TBFs can be searched globally by TFI and TRX number. This
conflicts with the use of the same TFI for different TBF on different
PDCH. This use case requires the specification of the PDCH as
additional search dimension.
This commit moves the TFI index TBF arrays into the PDCH objects. The
related methods are updated accordingly.
Ticket: #1793
Sponsored-by: On-Waves ehf
Diffstat (limited to 'tests')
-rw-r--r-- | tests/alloc/AllocTest.cpp | 14 | ||||
-rw-r--r-- | tests/tbf/TbfTest.cpp | 4 | ||||
-rw-r--r-- | tests/tbf/TbfTest.err | 14 |
3 files changed, 13 insertions, 19 deletions
diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index e419cd25..7bc865d2 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -82,23 +82,17 @@ static void check_tfi_usage(BTS *the_bts) if (tbf->direction == GPRS_RLCMAC_DL_TBF) { OSMO_ASSERT(pdch->dl_tbf_by_tfi( tbf->tfi()) == tbf); - /* This assertion cannot hold with the - * current API and shared TFI */ -#if 0 OSMO_ASSERT(the_bts->dl_tbf_by_tfi( tbf->tfi(), - tbf->trx->trx_no) == tbf); -#endif + tbf->trx->trx_no, + pdch_no) == tbf); } else { OSMO_ASSERT(pdch->ul_tbf_by_tfi( tbf->tfi()) == tbf); - /* This assertion cannot hold with the - * current API and shared TFI */ -#if 0 OSMO_ASSERT(the_bts->ul_tbf_by_tfi( tbf->tfi(), - tbf->trx->trx_no) == tbf); -#endif + tbf->trx->trx_no, + pdch_no) == tbf); } *tbf_var = tbf; OSMO_ASSERT(pdch->assigned_tfi(tbf->direction) & diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 159c8596..39f57ad8 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -526,7 +526,7 @@ static void test_tbf_single_phase() the_bts.rcv_rach(0x03, fn, qta); - ul_tbf = the_bts.ul_tbf_by_tfi(tfi, trx_no); + ul_tbf = the_bts.ul_tbf_by_tfi(tfi, trx_no, ts_no); OSMO_ASSERT(ul_tbf != NULL); fprintf(stderr, "Got '%s', TA=%d\n", @@ -605,7 +605,7 @@ static void test_tbf_two_phase() pdch->rcv_block(&buf[0], num_bytes, 2654270, &meas); /* check the TBF */ - ul_tbf = the_bts.ul_tbf_by_tfi(tfi, trx_no); + ul_tbf = the_bts.ul_tbf_by_tfi(tfi, trx_no, ts_no); OSMO_ASSERT(ul_tbf != NULL); fprintf(stderr, "Got '%s', TA=%d, CS=%d\n", diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 72c3851f..ee57d638 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -35,7 +35,7 @@ Modifying MS object, TLLI: 0x00000000 -> 0x00002342, already confirmed partly The MS object cannot fully confirm an unexpected TLLI: 0x00004232, partly confirmed Modifying MS object, TLLI: 0x00002342 -> 0x00004232, already confirmed partly Modifying MS object, TLLI = 0x00004232, TA 4 -> 6 -Searching for first unallocated TFI: TRX=0 first TS=4 +Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** Allocating DL TBF: MS_CLASS=45 @@ -110,7 +110,7 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN), 0 T Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=ASSIGN) ********** TBF ends here ********** Destroying MS object, TLLI = 0xffeeddcc -Searching for first unallocated TFI: TRX=0 first TS=4 +Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** Allocating DL TBF: MS_CLASS=45 @@ -185,7 +185,7 @@ TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) free PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE), 0 TBFs, USFs = 00, TFIs = 00000000. ********** TBF ends here ********** Destroying MS object, TLLI = 0xffeeddcc -Searching for first unallocated TFI: TRX=0 first TS=4 +Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** Allocating DL TBF: MS_CLASS=45 @@ -414,7 +414,7 @@ PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE) Destroying MS object, TLLI = 0xffeeddcc ********** TBF ends here ********** -Searching for first unallocated TFI: TRX=0 first TS=4 +Searching for first unallocated TFI: TRX=0 Found TFI=0. ********** TBF starts here ********** Allocating DL TBF: MS_CLASS=45 @@ -434,7 +434,7 @@ PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBF 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 +Searching for first unallocated TFI: TRX=0 Found TFI=1. ********** TBF starts here ********** Allocating DL TBF: MS_CLASS=45 @@ -1359,7 +1359,7 @@ data block: 07 01 04 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 - Scheduling Ack/Nack polling, because is was requested explicitly (e.g. first final block sent). Polling cannot be sheduled in this TS 7, waiting for TS 4 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 +Searching for first unallocated TFI: TRX=0 Found TFI=0. MS requests UL TBF on RACH, so we provide one: ********** TBF starts here ********** @@ -1412,7 +1412,7 @@ MS requests single block allocation RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 TX: Immediate Assignment Uplink (AGCH) Sending data request: trx=0 ts=0 sapi=2 arfcn=0 fn=0 block=0 data=2d 06 3f 10 0f 00 00 73 8b 29 07 00 c0 0c 5a 43 2b 2b 2b 2b 2b 2b 2b -Searching for first unallocated TFI: TRX=0 first TS=7 +Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ ------------------------- RX : Uplink Control Block ------------------------- |