aboutsummaryrefslogtreecommitdiffstats
path: root/tests/ulc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ulc')
-rw-r--r--tests/ulc/PdchUlcTest.cpp27
-rw-r--r--tests/ulc/PdchUlcTest.err87
2 files changed, 86 insertions, 28 deletions
diff --git a/tests/ulc/PdchUlcTest.cpp b/tests/ulc/PdchUlcTest.cpp
index 3547bf6f..7d649b03 100644
--- a/tests/ulc/PdchUlcTest.cpp
+++ b/tests/ulc/PdchUlcTest.cpp
@@ -35,6 +35,7 @@ extern "C" {
#include "bts.h"
#include "sba.h"
#include "pdch_ul_controller.h"
+#include "alloc_algo.h"
/* globals used by the code */
void *tall_pcu_ctx;
@@ -165,10 +166,14 @@ static void test_reserve_multiple()
printf("=== end: %s ===\n", __FUNCTION__);
}
-int _alloc_algorithm_dummy(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf *tbf,
- bool single, int8_t use_tbf)
+int _alloc_algorithm_dummy(const struct alloc_resources_req *req,
+ struct alloc_resources_res *res)
{
- tbf->trx = &bts->trx[0];
+ res->trx = &req->bts->trx[0];
+ res->first_common_ts = &res->trx->pdch[0];
+ res->reserved_ul_slots = 1 << 0;
+ res->reserved_dl_slots = 1 << 0;
+ res->ass_slots_mask = 1 << 0;
return 0;
}
@@ -181,8 +186,11 @@ static void test_fn_wrap_around()
the_pcu->alloc_algorithm = _alloc_algorithm_dummy;
struct gprs_rlcmac_bts *bts = setup_new_bts();
- struct GprsMs *ms = ms_alloc(bts, 0x12345678);
- struct gprs_rlcmac_tbf *tbf1 = tbf_alloc_dl_tbf(bts, ms, 0, true);
+ struct GprsMs *ms = ms_alloc(bts, NULL);
+ ms_confirm_tlli(ms, 0x12345678);
+ OSMO_ASSERT(ms_new_dl_tbf_assigned_on_pch(ms) == 0);
+ struct gprs_rlcmac_tbf *tbf1 = ms_dl_tbf(ms);
+ OSMO_ASSERT(tbf1);
struct gprs_rlcmac_pdch *pdch = &tbf1->trx->pdch[0];
int rc;
uint32_t fn, last_fn;
@@ -315,9 +323,10 @@ int main(int argc, char **argv)
log_set_log_level(osmo_stderr_target, LOGL_DEBUG);
log_set_print_category_hex(osmo_stderr_target, 0);
log_set_print_category(osmo_stderr_target, 0);
- log_parse_category_mask(osmo_stderr_target, "DPCU,1:DRLCMAC,1:DRLCMACUL,1");
+ log_parse_category_mask(osmo_stderr_target, "DPCU,1:DRLCMAC,1:DRLCMACUL,1:DMS,1");
the_pcu = gprs_pcu_alloc(tall_pcu_ctx);
+ OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2030, 0, OSMO_TDEF_S) == 0);
test_reserve_multiple();
test_fn_wrap_around();
@@ -337,11 +346,13 @@ extern "C" {
abort();
} void l1if_connect_pdch() {
abort();
+ } void l1if_disconnect_pdch() {
+ abort();
}
- void l1if_close_pdch() {
+ void l1if_close_trx() {
abort();
}
- void l1if_open_pdch() {
+ void l1if_open_trx() {
abort();
}
}
diff --git a/tests/ulc/PdchUlcTest.err b/tests/ulc/PdchUlcTest.err
index d122f31c..14183c55 100644
--- a/tests/ulc/PdchUlcTest.err
+++ b/tests/ulc/PdchUlcTest.err
@@ -1,56 +1,103 @@
+PDCH(bts=0,trx=0,ts=0) PDCH state: disabled => enabled
+PDCH(bts=0,trx=0,ts=0) Reserving FN 72 for type SBA
+PDCH(bts=0,trx=0,ts=0) Reserving FN 78 for type SBA
+PDCH(bts=0,trx=0,ts=0) Reserving FN 72 for type SBA
PDCH(bts=0,trx=0,ts=0) Trying to reserve already reserved FN 72
+PDCH(bts=0,trx=0,ts=0) Reserving FN 78 for type SBA
PDCH(bts=0,trx=0,ts=0) Trying to reserve already reserved FN 78
+PDCH(bts=0,trx=0,ts=0) Reserving FN 72 for type POLL
PDCH(bts=0,trx=0,ts=0) Trying to reserve already reserved FN 72
+PDCH(bts=0,trx=0,ts=0) Reserving FN 78 for type POLL
PDCH(bts=0,trx=0,ts=0) Trying to reserve already reserved FN 78
+PDCH(bts=0,trx=0,ts=0) Reserving FN 82 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 86 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 91 for type POLL
PDCH(bts=0,trx=0,ts=0) Trying to release unregistered SBA (FN=78, TA=0)
PDCH(bts=0,trx=0,ts=0) Timeout for registered SBA (FN=72, TA=0)
-Creating MS object, TLLI = 0x12345678
-MS(TLLI=0x12345678, IMSI=, TA=220, 0/0,) Attaching DL TBF: TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) PDCH state: disabled => enabled
+Creating MS object
+The MS object cannot fully confirm an unexpected TLLI: 0x12345678, partly confirmed
+PDCH(bts=0,trx=0,ts=0) Attaching TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){NEW}, 1 TBFs, USFs = 00, TFIs = 00000001.
+MS(TLLI-0x12345678:TA-220:MSCLS-0-0) Attaching DL TBF: TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){NEW}
+MS(TLLI-0x12345678:TA-220:MSCLS-0-0:DL): + tbf: now used by 1 (tbf)
+PDCH(bts=0,trx=0,ts=0) Reserving FN 2715608 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 2715613 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 2715617 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 2715622 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 2715626 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 2715630 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 2715635 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 2715639 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 2715643 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 0 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 4 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 8 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 13 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 17 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 21 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 26 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 30 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 34 for type POLL
+PDCH(bts=0,trx=0,ts=0) Reserving FN 39 for type POLL
PDCH(bts=0,trx=0,ts=0) Expiring FN=2715613 but previous FN=2715608 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715608, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715613, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715608, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715613, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=2715617 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715617, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715617, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=2715622 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715622, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715622, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=2715626 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715626, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715626, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=2715630 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715630, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715630, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=2715635 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715635, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715635, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=2715639 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715639, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715639, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=2715643 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715643, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=2715643, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=4 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=4, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=4, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=8 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=8, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=8, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=13 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=13, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=13, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=17 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=17, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=17, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=21 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=21, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=21, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=26 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=26, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=26, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=30 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=30, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=30, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=34 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=34, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=34, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
PDCH(bts=0,trx=0,ts=0) Expiring FN=43 but previous FN=39 is still reserved!
-PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=39, reason=UL_ASS): TBF(TFI=0 TLLI=0x12345678 DIR=DL STATE=NEW)
+PDCH(bts=0,trx=0,ts=0) Timeout for registered POLL (FN=39, reason=UL_ASS): TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}
+MS(TLLI-0x12345678:TA-220:MSCLS-0-0:DL) Destroying MS object
+PDCH(bts=0,trx=0,ts=0) Detaching TBF(DL:TFI-0-0-0:G:TLLI-0x12345678){ASSIGN}, 1 TBFs, USFs = 00, TFIs = 00000001.
+MS(TLLI-0x12345678:TA-220:MSCLS-0-0:DL) Detaching TBF: TBF(DL:G:TLLI-0x12345678){ASSIGN}
+MS(TLLI-0x12345678:TA-220:MSCLS-0-0): - tbf: now used by 0 (-)
+PDCH(bts=0,trx=0,ts=0) PDCH state: disabled => enabled
+PDCH(bts=0,trx=0,ts=0) Reserving FN 104 for type SBA
+PDCH(bts=0,trx=0,ts=0) Reserving FN 117 for type SBA
+PDCH(bts=0,trx=0,ts=0) Reserving FN 121 for type SBA
+PDCH(bts=0,trx=0,ts=0) Reserving FN 125 for type SBA
+PDCH(bts=0,trx=0,ts=0) PDCH state: disabled => enabled
PDCH(bts=0,trx=0,ts=0) POLL scheduled at FN 26 + 13 = 39
+PDCH(bts=0,trx=0,ts=0) Reserving FN 104 for type SBA
PDCH(bts=0,trx=0,ts=0) UL block already scheduled at FN 91 + 13 = 104
PDCH(bts=0,trx=0,ts=0) POLL scheduled at FN 91 + 17 = 108
+PDCH(bts=0,trx=0,ts=0) Reserving FN 108 for type SBA
PDCH(bts=0,trx=0,ts=0) UL block already scheduled at FN 91 + 13 = 104
PDCH(bts=0,trx=0,ts=0) UL block already scheduled at FN 91 + 17 = 108
PDCH(bts=0,trx=0,ts=0) POLL scheduled at FN 91 + 21 = 112
+PDCH(bts=0,trx=0,ts=0) Reserving FN 112 for type SBA
PDCH(bts=0,trx=0,ts=0) UL block already scheduled at FN 91 + 13 = 104
PDCH(bts=0,trx=0,ts=0) UL block already scheduled at FN 91 + 17 = 108
PDCH(bts=0,trx=0,ts=0) UL block already scheduled at FN 91 + 21 = 112
PDCH(bts=0,trx=0,ts=0) POLL scheduled at FN 91 + 26 = 117
+PDCH(bts=0,trx=0,ts=0) Reserving FN 117 for type SBA
PDCH(bts=0,trx=0,ts=0) UL block already scheduled at FN 91 + 13 = 104
PDCH(bts=0,trx=0,ts=0) UL block already scheduled at FN 91 + 17 = 108
PDCH(bts=0,trx=0,ts=0) UL block already scheduled at FN 91 + 21 = 112