This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Max gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/3932 TS alloc: update tests * restructure code for easier reading * rearrange tests order to facilitate further UL alloc changes Change-Id: I6d1df8e96e1dad04ab7cf2655b8363233d6e210f Related: OS#2282 --- M tests/alloc/AllocTest.cpp M tests/alloc/AllocTest.err 2 files changed, 282 insertions(+), 292 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/32/3932/1 diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index dd5f242..64ff0d1 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -21,6 +21,7 @@ #include "gprs_debug.h" #include "tbf.h" #include "bts.h" +#include "pcu_utils.h" #include <string.h> #include <stdio.h> @@ -471,6 +472,19 @@ TEST_MODE_UL_AFTER_DL, }; +static inline char *test_mode_descr(enum test_mode t) +{ + switch (t) { + case TEST_MODE_UL_ONLY: return (char*)"UL only"; + case TEST_MODE_DL_ONLY: return (char*)"DL only"; + case TEST_MODE_UL_AND_DL: return (char*)"UL and DL"; + case TEST_MODE_DL_AND_UL: return (char*)"DL and UL"; + case TEST_MODE_DL_AFTER_UL: return (char*)"DL after UL"; + case TEST_MODE_UL_AFTER_DL: return (char*)"UL after DL"; + default: return NULL; + } +} + static GprsMs *alloc_tbfs(BTS *the_bts, GprsMs *ms, unsigned ms_class, enum test_mode mode) { @@ -619,24 +633,23 @@ busy_slots |= 1 << i; } - printf(" TBF[%d] class %d reserves %c%c%c%c%c%c%c%c\n", - tfi, ms_class, - get_dir_char(0x01, ul_slots, dl_slots, busy_slots), - get_dir_char(0x02, ul_slots, dl_slots, busy_slots), - get_dir_char(0x04, ul_slots, dl_slots, busy_slots), - get_dir_char(0x08, ul_slots, dl_slots, busy_slots), - get_dir_char(0x10, ul_slots, dl_slots, busy_slots), - get_dir_char(0x20, ul_slots, dl_slots, busy_slots), - get_dir_char(0x40, ul_slots, dl_slots, busy_slots), - get_dir_char(0x80, ul_slots, dl_slots, busy_slots)); + printf(" TBF[%2d] class %2d reserves %c%c%c%c%c%c%c%c [%2u /%2u /%2u ]\n", + tfi, ms_class, + get_dir_char(0x01, ul_slots, dl_slots, busy_slots), + get_dir_char(0x02, ul_slots, dl_slots, busy_slots), + get_dir_char(0x04, ul_slots, dl_slots, busy_slots), + get_dir_char(0x08, ul_slots, dl_slots, busy_slots), + get_dir_char(0x10, ul_slots, dl_slots, busy_slots), + get_dir_char(0x20, ul_slots, dl_slots, busy_slots), + get_dir_char(0x40, ul_slots, dl_slots, busy_slots), + get_dir_char(0x80, ul_slots, dl_slots, busy_slots), + pcu_bitcount(ul_slots), pcu_bitcount(dl_slots), pcu_bitcount(busy_slots)); if (tfi >= 0) { OSMO_ASSERT(ms->current_trx()); - tfi2 = the_bts->tfi_find_free(dir, &trx_no2, - ms->current_trx()->trx_no); + tfi2 = the_bts->tfi_find_free(dir, &trx_no2, ms->current_trx()->trx_no); OSMO_ASSERT(tfi != tfi2); - OSMO_ASSERT(tfi2 < 0 || - trx_no2 == ms->current_trx()->trx_no); + OSMO_ASSERT(tfi2 < 0 || trx_no2 == ms->current_trx()->trx_no); } ms_class += 1; @@ -647,16 +660,16 @@ return counter; } -static void test_successive_allocation(algo_t algo, unsigned min_class, - unsigned max_class, enum test_mode mode, - unsigned expect_num, const char *text) +static void test_successive_alloc(unsigned min_class, unsigned max_class, unsigned expect_num, enum test_mode mode, + algo_t algo, const char *text) { BTS the_bts; struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_trx *trx; unsigned counter; - printf("Going to test assignment with many TBF, %s\n", text); + printf("Going to test assignment with many TBF, algorithm %s class %u..%u (%s)\n", + text, min_class, max_class, test_mode_descr(mode)); bts = the_bts.bts_data(); bts->alloc_algorithm = algo; @@ -670,9 +683,11 @@ counter = alloc_many_tbfs(&the_bts, min_class, max_class, mode); - printf(" Successfully allocated %d UL TBFs\n", counter); + printf(" Successfully allocated %d UL TBFs, algorithm %s class %u..%u (%s)\n", + counter, text, min_class, max_class, test_mode_descr(mode)); if (counter != expect_num) - fprintf(stderr, " Expected %d TBFs for %s\n", expect_num, text); + fprintf(stderr, " Expected %d TBFs, algorithm %s class %u..%u (%s)\n", + expect_num, text, min_class, max_class, test_mode_descr(mode)); OSMO_ASSERT(counter == expect_num); @@ -694,7 +709,7 @@ TEST_MODE_DL_ONLY, }; - printf("Going to test assignment with many connections, %s\n", text); + printf("Going to test assignment with many connections, algorithm %s\n", text); bts = the_bts.bts_data(); bts->alloc_algorithm = algo; @@ -736,60 +751,32 @@ static void test_successive_allocation() { - test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_UL_AND_DL, - 35, "algorithm A (UL and DL)"); - test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_UL_AND_DL, - 32, "algorithm B class 10 (UL and DL)"); - test_successive_allocation(alloc_algorithm_b, 12, 12, TEST_MODE_UL_AND_DL, - 32, "algorithm B class 12 (UL and DL)"); - test_successive_allocation(alloc_algorithm_b, 1, 12, TEST_MODE_UL_AND_DL, - 32, "algorithm B class 1-12 (UL and DL)"); - test_successive_allocation(alloc_algorithm_b, 1, 29, TEST_MODE_UL_AND_DL, - 32, "algorithm B class 1-29 (UL and DL)"); - test_successive_allocation(alloc_algorithm_dynamic, 1, 29, TEST_MODE_UL_AND_DL, - 35, "algorithm dynamic class 1-29 (UL and DL)"); + test_successive_alloc(1, 1, 160, TEST_MODE_DL_ONLY, alloc_algorithm_a, "A"); + test_successive_alloc(10, 10, 101, TEST_MODE_DL_ONLY, alloc_algorithm_dynamic, "dynamic"); + test_successive_alloc(10, 10, 32, TEST_MODE_DL_ONLY, alloc_algorithm_b, "B"); - test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_DL_AND_UL, - 35, "algorithm A (DL and UL)"); - test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_DL_AND_UL, - 32, "algorithm B class 10 (DL and UL)"); - test_successive_allocation(alloc_algorithm_dynamic, 10, 10, TEST_MODE_DL_AND_UL, - 32, "algorithm dynamic class 10 (DL and UL)"); + test_successive_alloc(1, 1, 35, TEST_MODE_UL_AND_DL, alloc_algorithm_a, "A"); + test_successive_alloc(10, 10, 32, TEST_MODE_UL_AND_DL, alloc_algorithm_b, "B"); + test_successive_alloc(12, 12, 32, TEST_MODE_UL_AND_DL, alloc_algorithm_b, "B"); + test_successive_alloc(1, 12, 32, TEST_MODE_UL_AND_DL, alloc_algorithm_b, "B"); + test_successive_alloc(1, 29, 32, TEST_MODE_UL_AND_DL, alloc_algorithm_b, "B"); + test_successive_alloc(1, 29, 35, TEST_MODE_UL_AND_DL, alloc_algorithm_dynamic, "dynamic"); - test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_DL_AFTER_UL, - 160, "algorithm A (DL after UL)"); - test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_DL_AFTER_UL, - 32, "algorithm B class 10 (DL after UL)"); - test_successive_allocation(alloc_algorithm_dynamic, 10, 10, TEST_MODE_DL_AFTER_UL, - 95, "algorithm dynamic class 10 (DL after UL)"); + test_successive_alloc(1, 1, 35, TEST_MODE_DL_AND_UL, alloc_algorithm_a, "A"); + test_successive_alloc(10, 10, 32, TEST_MODE_DL_AND_UL, alloc_algorithm_b, "B"); + test_successive_alloc(10, 10, 32, TEST_MODE_DL_AND_UL, alloc_algorithm_dynamic, "dynamic"); - test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_UL_AFTER_DL, - 35, "algorithm A (UL after DL)"); - test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_UL_AFTER_DL, - 32, "algorithm B class 10 (UL after DL)"); - test_successive_allocation(alloc_algorithm_dynamic, 10, 10, TEST_MODE_UL_AFTER_DL, - 35, "algorithm dynamic class 10 (UL after DL)"); + test_successive_alloc(1, 1, 160, TEST_MODE_DL_AFTER_UL, alloc_algorithm_a, "A"); + test_successive_alloc(10, 10, 32, TEST_MODE_DL_AFTER_UL, alloc_algorithm_b, "B"); + test_successive_alloc(10, 10, 95, TEST_MODE_DL_AFTER_UL, alloc_algorithm_dynamic, "dynamic"); - test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_UL_ONLY, - 35, "algorithm A (UL only)"); - test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_UL_ONLY, - 32, "algorithm B class 10 (UL only)"); - test_successive_allocation(alloc_algorithm_dynamic, 10, 10, TEST_MODE_UL_ONLY, - 35, "algorithm dynamic class 10 (UL only)"); + test_successive_alloc(1, 1, 35, TEST_MODE_UL_AFTER_DL, alloc_algorithm_a, "A"); + test_successive_alloc(10, 10, 32, TEST_MODE_UL_AFTER_DL, alloc_algorithm_b, "B"); + test_successive_alloc(10, 10, 35, TEST_MODE_UL_AFTER_DL, alloc_algorithm_dynamic, "dynamic"); - test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_DL_ONLY, - 160, "algorithm A (DL ONLY)"); - test_successive_allocation(alloc_algorithm_b, 10, 10, TEST_MODE_DL_ONLY, - 32, "algorithm B class 10 (DL ONLY)"); - test_successive_allocation(alloc_algorithm_dynamic, 10, 10, TEST_MODE_DL_ONLY, - 101, "algorithm dynamic class 10 (DL ONLY)"); -} - -static void test_many_connections() -{ - test_many_connections(alloc_algorithm_a, 160, "algorithm A"); - test_many_connections(alloc_algorithm_b, 32, "algorithm B"); - test_many_connections(alloc_algorithm_dynamic, 160, "algorithm dynamic"); + test_successive_alloc(1, 1, 35, TEST_MODE_UL_ONLY, alloc_algorithm_a, "A"); + test_successive_alloc(10, 10, 35, TEST_MODE_UL_ONLY, alloc_algorithm_dynamic, "dynamic"); + test_successive_alloc(10, 10, 32, TEST_MODE_UL_ONLY, alloc_algorithm_b, "B"); } static void test_2_consecutive_dl_tbfs() @@ -857,9 +844,12 @@ test_alloc_a(); test_alloc_b(); - test_successive_allocation(); - test_many_connections(); + test_many_connections(alloc_algorithm_a, 160, "A"); + test_many_connections(alloc_algorithm_b, 32, "B"); + test_many_connections(alloc_algorithm_dynamic, 160, "dynamic"); test_2_consecutive_dl_tbfs(); + test_successive_allocation(); + return EXIT_SUCCESS; } diff --git a/tests/alloc/AllocTest.err b/tests/alloc/AllocTest.err index 47dcefc..aefa1ca 100644 --- a/tests/alloc/AllocTest.err +++ b/tests/alloc/AllocTest.err @@ -8,226 +8,6 @@ No TFI available (suggested TRX: 0). algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for DL algo A [multi] (suggested TRX: -1): failed to allocate a TS, no USF available for UL -algo A [multi] (suggested TRX: -1): failed to allocate a TS, no USF available for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo A [multi] (suggested TRX: -1): failed to allocate a TS, no USF available for UL -algo A [multi] (suggested TRX: 0): failed to allocate a TS, no USF available for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for DL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for DL -algo A [multi] (suggested TRX: 0): failed to allocate a TS, no USF available for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo B [multi] (suggested TRX: 0): failed to allocate a TFI for DL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo B [multi] (suggested TRX: 0): failed to allocate a TFI for DL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for UL -algo A [multi] (suggested TRX: 0): failed to allocate a TS, no USF available for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL -algo A [multi] (suggested TRX: 0): failed to allocate a TS, no USF available for UL -algo A [multi] (suggested TRX: -1): failed to allocate a TS, no USF available for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -algo A [multi] (suggested TRX: -1): failed to allocate a TS, no USF available for UL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for DL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for DL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: -1). -algo B [multi] (suggested TRX: -1): failed to allocate a TFI for DL -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -No TFI available (suggested TRX: 0). -algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for DL No TFI available (suggested TRX: 0). No TFI available (suggested TRX: 0). No TFI available (suggested TRX: 0). @@ -892,3 +672,223 @@ No TFI available (suggested TRX: 0). algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for DL Allocated 160 TBFs (previously 160) +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for DL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for DL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for DL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for DL +algo A [multi] (suggested TRX: -1): failed to allocate a TS, no USF available for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo A [multi] (suggested TRX: -1): failed to allocate a TS, no USF available for UL +algo A [multi] (suggested TRX: 0): failed to allocate a TS, no USF available for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for DL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for DL +algo A [multi] (suggested TRX: 0): failed to allocate a TS, no USF available for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo B [multi] (suggested TRX: 0): failed to allocate a TFI for DL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo B [multi] (suggested TRX: 0): failed to allocate a TFI for DL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo A [multi] (suggested TRX: -1): failed to find a usable TRX (TFI exhausted) for UL +algo A [multi] (suggested TRX: 0): failed to allocate a TS, no USF available for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: 0). +algo B [multi] (suggested TRX: 0): failed to allocate a TFI for UL +algo A [multi] (suggested TRX: 0): failed to allocate a TS, no USF available for UL +algo A [multi] (suggested TRX: -1): failed to allocate a TS, no USF available for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL +algo A [multi] (suggested TRX: -1): failed to allocate a TS, no USF available for UL +No TFI available (suggested TRX: 0). +No TFI available (suggested TRX: -1). +algo B [multi] (suggested TRX: -1): failed to allocate a TFI for UL -- To view, visit https://gerrit.osmocom.org/3932 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6d1df8e96e1dad04ab7cf2655b8363233d6e210f Gerrit-PatchSet: 1 Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Owner: Max <msuraev at sysmocom.de>