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.org
Review 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>