aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-07-13 14:50:08 +0200
committerJacob Erlbeck <jerlbeck@sysmocom.de>2015-07-14 13:38:08 +0200
commitd31560624cd55371fc9d0a3f7b8d023f5dda3558 (patch)
tree1a7ecde79233ff5d9665a6971ad35c1c5931e809
parent48d01a8e2fe77fa13d4f846ba730f43fa3166319 (diff)
alloc/test: Add test for interleaved TBF chains
MS iniated TCP connections generally result in a sequence of short time UL and longer lasting DL TBFs, being interleaved between several MS. This scenario is not covered by the existing tests. This commit adds a test, that allocates as man as possible TBFs several times with different test modes without clearing the BTS (and thus the TBF list) in between. The number of allocated DL TBFs in each round is expected to be constant. Sponsored-by: On-Waves ehf
-rw-r--r--tests/alloc/AllocTest.cpp54
-rw-r--r--tests/alloc/AllocTest.err401
-rw-r--r--tests/alloc/AllocTest.ok639
3 files changed, 1094 insertions, 0 deletions
diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp
index 6732058b..2b29e563 100644
--- a/tests/alloc/AllocTest.cpp
+++ b/tests/alloc/AllocTest.cpp
@@ -646,6 +646,53 @@ static void test_successive_allocation(algo_t algo, unsigned min_class,
check_tfi_usage(&the_bts);
}
+static void test_many_connections(algo_t algo, unsigned expect_num,
+ const char *text)
+{
+ BTS the_bts;
+ struct gprs_rlcmac_bts *bts;
+ struct gprs_rlcmac_trx *trx;
+ int counter1, counter2 = -1;
+ unsigned i;
+ enum test_mode mode_seq[] = {
+ TEST_MODE_DL_AFTER_UL,
+ TEST_MODE_UL_ONLY,
+ TEST_MODE_DL_AFTER_UL,
+ TEST_MODE_DL_ONLY,
+ };
+
+ printf("Going to test assignment with many connections, %s\n", text);
+
+ bts = the_bts.bts_data();
+ bts->alloc_algorithm = algo;
+
+ trx = &bts->trx[0];
+ trx->pdch[3].enable();
+ trx->pdch[4].enable();
+ trx->pdch[5].enable();
+ trx->pdch[6].enable();
+ trx->pdch[7].enable();
+
+ for (i = 0; i < ARRAY_SIZE(mode_seq); i += 1) {
+ counter1 = alloc_many_tbfs(&the_bts, 1, 29, mode_seq[i]);
+
+ /* This will stop earlier due to USF shortage */
+ if (mode_seq[i] == TEST_MODE_UL_ONLY)
+ continue;
+
+ if (counter2 >= 0)
+ OSMO_ASSERT(counter1 >= counter2);
+
+ counter2 = counter1;
+ }
+
+ printf(" Successfully allocated %d TBFs\n", counter1);
+
+ OSMO_ASSERT(expect_num == (unsigned)counter1);
+
+ check_tfi_usage(&the_bts);
+}
+
static void test_successive_allocation()
{
test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_UL_AND_DL,
@@ -685,6 +732,12 @@ static void test_successive_allocation()
32, "algorithm B 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");
+}
+
int main(int argc, char **argv)
{
tall_pcu_ctx = talloc_named_const(NULL, 1, "moiji-mobile AllocTest context");
@@ -701,6 +754,7 @@ int main(int argc, char **argv)
test_alloc_a();
test_alloc_b();
test_successive_allocation();
+ test_many_connections();
return EXIT_SUCCESS;
}
diff --git a/tests/alloc/AllocTest.err b/tests/alloc/AllocTest.err
index 33925dc8..3cd3f454 100644
--- a/tests/alloc/AllocTest.err
+++ b/tests/alloc/AllocTest.err
@@ -51,3 +51,404 @@ No TFI available.
No TFI available.
No TFI available.
- Failed to allocate a TFI
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+- Failed to find a usable TRX (TFI exhausted)
+- Failed to allocate a TS, no TFI or USF available
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+- Failed to find a usable TRX (TFI exhausted)
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+- Failed to find a usable TRX (TFI exhausted)
+No TFI available.
+No TFI available.
+- Failed to allocate a TFI
+No USF available
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+- Failed to allocate a TFI
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+- Failed to allocate a TFI
diff --git a/tests/alloc/AllocTest.ok b/tests/alloc/AllocTest.ok
index fc96cb95..8733e9a5 100644
--- a/tests/alloc/AllocTest.ok
+++ b/tests/alloc/AllocTest.ok
@@ -9366,3 +9366,642 @@ Going to test assignment with many TBF, algorithm B class 10 (DL ONLY)
TBF[30] class 10 reserves ...CD...
TBF[31] class 10 reserves ...CD...
Successfully allocated 32 UL TBFs
+Going to test assignment with many connections, algorithm A
+ TBF[0] class 1 reserves ...C....
+ TBF[0] class 2 reserves ....C...
+ TBF[0] class 3 reserves .....C..
+ TBF[0] class 4 reserves ......C.
+ TBF[0] class 5 reserves .......C
+ TBF[1] class 6 reserves ...C....
+ TBF[1] class 7 reserves ....C...
+ TBF[1] class 8 reserves .....C..
+ TBF[1] class 9 reserves ......C.
+ TBF[1] class 10 reserves .......C
+ TBF[2] class 11 reserves ...C....
+ TBF[2] class 12 reserves ....C...
+ TBF[2] class 13 reserves .....C..
+ TBF[2] class 14 reserves ......C.
+ TBF[2] class 15 reserves .......C
+ TBF[3] class 16 reserves ...C....
+ TBF[3] class 17 reserves ....C...
+ TBF[3] class 18 reserves .....C..
+ TBF[3] class 19 reserves ......C.
+ TBF[3] class 20 reserves .......C
+ TBF[4] class 21 reserves ...C....
+ TBF[4] class 22 reserves ....C...
+ TBF[4] class 23 reserves .....C..
+ TBF[4] class 24 reserves ......C.
+ TBF[4] class 25 reserves .......C
+ TBF[5] class 26 reserves ...C....
+ TBF[5] class 27 reserves ....C...
+ TBF[5] class 28 reserves .....C..
+ TBF[5] class 29 reserves ......C.
+ TBF[5] class 1 reserves .......C
+ TBF[6] class 2 reserves ...C....
+ TBF[6] class 3 reserves ....C...
+ TBF[6] class 4 reserves .....C..
+ TBF[6] class 5 reserves ......C.
+ TBF[6] class 6 reserves .......C
+ TBF[7] class 7 reserves ...C....
+ TBF[7] class 8 reserves ....C...
+ TBF[7] class 9 reserves .....C..
+ TBF[7] class 10 reserves ......C.
+ TBF[7] class 11 reserves .......C
+ TBF[8] class 12 reserves ...C....
+ TBF[8] class 13 reserves ....C...
+ TBF[8] class 14 reserves .....C..
+ TBF[8] class 15 reserves ......C.
+ TBF[8] class 16 reserves .......C
+ TBF[9] class 17 reserves ...C....
+ TBF[9] class 18 reserves ....C...
+ TBF[9] class 19 reserves .....C..
+ TBF[9] class 20 reserves ......C.
+ TBF[9] class 21 reserves .......C
+ TBF[10] class 22 reserves ...C....
+ TBF[10] class 23 reserves ....C...
+ TBF[10] class 24 reserves .....C..
+ TBF[10] class 25 reserves ......C.
+ TBF[10] class 26 reserves .......C
+ TBF[11] class 27 reserves ...C....
+ TBF[11] class 28 reserves ....C...
+ TBF[11] class 29 reserves .....C..
+ TBF[11] class 1 reserves ......C.
+ TBF[11] class 2 reserves .......C
+ TBF[12] class 3 reserves ...C....
+ TBF[12] class 4 reserves ....C...
+ TBF[12] class 5 reserves .....C..
+ TBF[12] class 6 reserves ......C.
+ TBF[12] class 7 reserves .......C
+ TBF[13] class 8 reserves ...C....
+ TBF[13] class 9 reserves ....C...
+ TBF[13] class 10 reserves .....C..
+ TBF[13] class 11 reserves ......C.
+ TBF[13] class 12 reserves .......C
+ TBF[14] class 13 reserves ...C....
+ TBF[14] class 14 reserves ....C...
+ TBF[14] class 15 reserves .....C..
+ TBF[14] class 16 reserves ......C.
+ TBF[14] class 17 reserves .......C
+ TBF[15] class 18 reserves ...C....
+ TBF[15] class 19 reserves ....C...
+ TBF[15] class 20 reserves .....C..
+ TBF[15] class 21 reserves ......C.
+ TBF[15] class 22 reserves .......C
+ TBF[16] class 23 reserves ...C....
+ TBF[16] class 24 reserves ....C...
+ TBF[16] class 25 reserves .....C..
+ TBF[16] class 26 reserves ......C.
+ TBF[16] class 27 reserves .......C
+ TBF[17] class 28 reserves ...C....
+ TBF[17] class 29 reserves ....C...
+ TBF[17] class 1 reserves .....C..
+ TBF[17] class 2 reserves ......C.
+ TBF[17] class 3 reserves .......C
+ TBF[18] class 4 reserves ...C....
+ TBF[18] class 5 reserves ....C...
+ TBF[18] class 6 reserves .....C..
+ TBF[18] class 7 reserves ......C.
+ TBF[18] class 8 reserves .......C
+ TBF[19] class 9 reserves ...C....
+ TBF[19] class 10 reserves ....C...
+ TBF[19] class 11 reserves .....C..
+ TBF[19] class 12 reserves ......C.
+ TBF[19] class 13 reserves .......C
+ TBF[20] class 14 reserves ...C....
+ TBF[20] class 15 reserves ....C...
+ TBF[20] class 16 reserves .....C..
+ TBF[20] class 17 reserves ......C.
+ TBF[20] class 18 reserves .......C
+ TBF[21] class 19 reserves ...C....
+ TBF[21] class 20 reserves ....C...
+ TBF[21] class 21 reserves .....C..
+ TBF[21] class 22 reserves ......C.
+ TBF[21] class 23 reserves .......C
+ TBF[22] class 24 reserves ...C....
+ TBF[22] class 25 reserves ....C...
+ TBF[22] class 26 reserves .....C..
+ TBF[22] class 27 reserves ......C.
+ TBF[22] class 28 reserves .......C
+ TBF[23] class 29 reserves ...C....
+ TBF[23] class 1 reserves ....C...
+ TBF[23] class 2 reserves .....C..
+ TBF[23] class 3 reserves ......C.
+ TBF[23] class 4 reserves .......C
+ TBF[24] class 5 reserves ...C....
+ TBF[24] class 6 reserves ....C...
+ TBF[24] class 7 reserves .....C..
+ TBF[24] class 8 reserves ......C.
+ TBF[24] class 9 reserves .......C
+ TBF[25] class 10 reserves ...C....
+ TBF[25] class 11 reserves ....C...
+ TBF[25] class 12 reserves .....C..
+ TBF[25] class 13 reserves ......C.
+ TBF[25] class 14 reserves .......C
+ TBF[26] class 15 reserves ...C....
+ TBF[26] class 16 reserves ....C...
+ TBF[26] class 17 reserves .....C..
+ TBF[26] class 18 reserves ......C.
+ TBF[26] class 19 reserves .......C
+ TBF[27] class 20 reserves ...C....
+ TBF[27] class 21 reserves ....C...
+ TBF[27] class 22 reserves .....C..
+ TBF[27] class 23 reserves ......C.
+ TBF[27] class 24 reserves .......C
+ TBF[28] class 25 reserves ...C....
+ TBF[28] class 26 reserves ....C...
+ TBF[28] class 27 reserves .....C..
+ TBF[28] class 28 reserves ......C.
+ TBF[28] class 29 reserves .......C
+ TBF[29] class 1 reserves ...C....
+ TBF[29] class 2 reserves ....C...
+ TBF[29] class 3 reserves .....C..
+ TBF[29] class 4 reserves ......C.
+ TBF[29] class 5 reserves .......C
+ TBF[30] class 6 reserves ...C....
+ TBF[30] class 7 reserves ....C...
+ TBF[30] class 8 reserves .....C..
+ TBF[30] class 9 reserves ......C.
+ TBF[30] class 10 reserves .......C
+ TBF[31] class 11 reserves ...C....
+ TBF[31] class 12 reserves ....C...
+ TBF[31] class 13 reserves .....C..
+ TBF[31] class 14 reserves ......C.
+ TBF[31] class 15 reserves .......C
+ TBF[0] class 1 reserves ...C....
+ TBF[0] class 2 reserves ....C...
+ TBF[0] class 3 reserves .....C..
+ TBF[0] class 4 reserves ......C.
+ TBF[0] class 5 reserves .......C
+ TBF[1] class 6 reserves ...C....
+ TBF[1] class 7 reserves ....C...
+ TBF[1] class 8 reserves .....C..
+ TBF[1] class 9 reserves ......C.
+ TBF[1] class 10 reserves .......C
+ TBF[2] class 11 reserves ...C....
+ TBF[2] class 12 reserves ....C...
+ TBF[2] class 13 reserves .....C..
+ TBF[2] class 14 reserves ......C.
+ TBF[2] class 15 reserves .......C
+ TBF[3] class 16 reserves ...C....
+ TBF[3] class 17 reserves ....C...
+ TBF[3] class 18 reserves .....C..
+ TBF[3] class 19 reserves ......C.
+ TBF[3] class 20 reserves .......C
+ TBF[4] class 21 reserves ...C....
+ TBF[4] class 22 reserves ....C...
+ TBF[4] class 23 reserves .....C..
+ TBF[4] class 24 reserves ......C.
+ TBF[4] class 25 reserves .......C
+ TBF[5] class 26 reserves ...C....
+ TBF[5] class 27 reserves ....C...
+ TBF[5] class 28 reserves .....C..
+ TBF[5] class 29 reserves ......C.
+ TBF[5] class 1 reserves .......C
+ TBF[6] class 2 reserves ...C....
+ TBF[6] class 3 reserves ....C...
+ TBF[6] class 4 reserves .....C..
+ TBF[6] class 5 reserves ......C.
+ TBF[6] class 6 reserves .......C
+ TBF[0] class 1 reserves ...C....
+ TBF[0] class 2 reserves ....C...
+ TBF[0] class 3 reserves .....C..
+ TBF[0] class 4 reserves ......C.
+ TBF[0] class 5 reserves .......C
+ TBF[1] class 6 reserves ...C....
+ TBF[1] class 7 reserves ....C...
+ TBF[1] class 8 reserves .....C..
+ TBF[1] class 9 reserves ......C.
+ TBF[1] class 10 reserves .......C
+ TBF[2] class 11 reserves ...C....
+ TBF[2] class 12 reserves ....C...
+ TBF[2] class 13 reserves .....C..
+ TBF[2] class 14 reserves ......C.
+ TBF[2] class 15 reserves .......C
+ TBF[3] class 16 reserves ...C....
+ TBF[3] class 17 reserves ....C...
+ TBF[3] class 18 reserves .....C..
+ TBF[3] class 19 reserves ......C.
+ TBF[3] class 20 reserves .......C
+ TBF[4] class 21 reserves ...C....
+ TBF[4] class 22 reserves ....C...
+ TBF[4] class 23 reserves .....C..
+ TBF[4] class 24 reserves ......C.
+ TBF[4] class 25 reserves .......C
+ TBF[5] class 26 reserves ...C....
+ TBF[5] class 27 reserves ....C...
+ TBF[5] class 28 reserves .....C..
+ TBF[5] class 29 reserves ......C.
+ TBF[5] class 1 reserves .......C
+ TBF[6] class 2 reserves ...C....
+ TBF[6] class 3 reserves ....C...
+ TBF[6] class 4 reserves .....C..
+ TBF[6] class 5 reserves ......C.
+ TBF[6] class 6 reserves .......C
+ TBF[7] class 7 reserves ...C....
+ TBF[7] class 8 reserves ....C...
+ TBF[7] class 9 reserves .....C..
+ TBF[7] class 10 reserves ......C.
+ TBF[7] class 11 reserves .......C
+ TBF[8] class 12 reserves ...C....
+ TBF[8] class 13 reserves ....C...
+ TBF[8] class 14 reserves .....C..
+ TBF[8] class 15 reserves ......C.
+ TBF[8] class 16 reserves .......C
+ TBF[9] class 17 reserves ...C....
+ TBF[9] class 18 reserves ....C...
+ TBF[9] class 19 reserves .....C..
+ TBF[9] class 20 reserves ......C.
+ TBF[9] class 21 reserves .......C
+ TBF[10] class 22 reserves ...C....
+ TBF[10] class 23 reserves ....C...
+ TBF[10] class 24 reserves .....C..
+ TBF[10] class 25 reserves ......C.
+ TBF[10] class 26 reserves .......C
+ TBF[11] class 27 reserves ...C....
+ TBF[11] class 28 reserves ....C...
+ TBF[11] class 29 reserves .....C..
+ TBF[11] class 1 reserves ......C.
+ TBF[11] class 2 reserves .......C
+ TBF[12] class 3 reserves ...C....
+ TBF[12] class 4 reserves ....C...
+ TBF[12] class 5 reserves .....C..
+ TBF[12] class 6 reserves ......C.
+ TBF[12] class 7 reserves .......C
+ TBF[13] class 8 reserves ...C....
+ TBF[13] class 9 reserves ....C...
+ TBF[13] class 10 reserves .....C..
+ TBF[13] class 11 reserves ......C.
+ TBF[13] class 12 reserves .......C
+ TBF[14] class 13 reserves ...C....
+ TBF[14] class 14 reserves ....C...
+ TBF[14] class 15 reserves .....C..
+ TBF[14] class 16 reserves ......C.
+ TBF[14] class 17 reserves .......C
+ TBF[15] class 18 reserves ...C....
+ TBF[15] class 19 reserves ....C...
+ TBF[15] class 20 reserves .....C..
+ TBF[15] class 21 reserves ......C.
+ TBF[15] class 22 reserves .......C
+ TBF[16] class 23 reserves ...C....
+ TBF[16] class 24 reserves ....C...
+ TBF[16] class 25 reserves .....C..
+ TBF[16] class 26 reserves ......C.
+ TBF[16] class 27 reserves .......C
+ TBF[17] class 28 reserves ...C....
+ TBF[17] class 29 reserves ....C...
+ TBF[17] class 1 reserves .....C..
+ TBF[17] class 2 reserves ......C.
+ TBF[17] class 3 reserves .......C
+ TBF[18] class 4 reserves ...C....
+ TBF[18] class 5 reserves ....C...
+ TBF[18] class 6 reserves .....C..
+ TBF[18] class 7 reserves ......C.
+ TBF[18] class 8 reserves .......C
+ TBF[19] class 9 reserves ...C....
+ TBF[19] class 10 reserves ....C...
+ TBF[19] class 11 reserves .....C..
+ TBF[19] class 12 reserves ......C.
+ TBF[19] class 13 reserves .......C
+ TBF[20] class 14 reserves ...C....
+ TBF[20] class 15 reserves ....C...
+ TBF[20] class 16 reserves .....C..
+ TBF[20] class 17 reserves ......C.
+ TBF[20] class 18 reserves .......C
+ TBF[21] class 19 reserves ...C....
+ TBF[21] class 20 reserves ....C...
+ TBF[21] class 21 reserves .....C..
+ TBF[21] class 22 reserves ......C.
+ TBF[21] class 23 reserves .......C
+ TBF[22] class 24 reserves ...C....
+ TBF[22] class 25 reserves ....C...
+ TBF[22] class 26 reserves .....C..
+ TBF[22] class 27 reserves ......C.
+ TBF[22] class 28 reserves .......C
+ TBF[23] class 29 reserves ...C....
+ TBF[23] class 1 reserves ....C...
+ TBF[23] class 2 reserves .....C..
+ TBF[23] class 3 reserves ......C.
+ TBF[23] class 4 reserves .......C
+ TBF[24] class 5 reserves ...C....
+ TBF[24] class 6 reserves ....C...
+ TBF[24] class 7 reserves .....C..
+ TBF[24] class 8 reserves ......C.
+ TBF[24] class 9 reserves .......C
+ TBF[25] class 10 reserves ...C....
+ TBF[25] class 11 reserves ....C...
+ TBF[25] class 12 reserves .....C..
+ TBF[25] class 13 reserves ......C.
+ TBF[25] class 14 reserves .......C
+ TBF[26] class 15 reserves ...C....
+ TBF[26] class 16 reserves ....C...
+ TBF[26] class 17 reserves .....C..
+ TBF[26] class 18 reserves ......C.
+ TBF[26] class 19 reserves .......C
+ TBF[27] class 20 reserves ...C....
+ TBF[27] class 21 reserves ....C...
+ TBF[27] class 22 reserves .....C..
+ TBF[27] class 23 reserves ......C.
+ TBF[27] class 24 reserves .......C
+ TBF[28] class 25 reserves ...C....
+ TBF[28] class 26 reserves ....C...
+ TBF[28] class 27 reserves .....C..
+ TBF[28] class 28 reserves ......C.
+ TBF[28] class 29 reserves .......C
+ TBF[29] class 1 reserves ...C....
+ TBF[29] class 2 reserves ....C...
+ TBF[29] class 3 reserves .....C..
+ TBF[29] class 4 reserves ......C.
+ TBF[29] class 5 reserves .......C
+ TBF[30] class 6 reserves ...C....
+ TBF[30] class 7 reserves ....C...
+ TBF[30] class 8 reserves .....C..
+ TBF[30] class 9 reserves ......C.
+ TBF[30] class 10 reserves .......C
+ TBF[31] class 11 reserves ...C....
+ TBF[31] class 12 reserves ....C...
+ TBF[31] class 13 reserves .....C..
+ TBF[31] class 14 reserves ......C.
+ TBF[31] class 15 reserves .......C
+ TBF[0] class 1 reserves ...C....
+ TBF[0] class 2 reserves ....C...
+ TBF[0] class 3 reserves .....C..
+ TBF[0] class 4 reserves ......C.
+ TBF[0] class 5 reserves .......C
+ TBF[1] class 6 reserves ...C....
+ TBF[1] class 7 reserves ....C...
+ TBF[1] class 8 reserves .....C..
+ TBF[1] class 9 reserves ......C.
+ TBF[1] class 10 reserves .......C
+ TBF[2] class 11 reserves ...C....
+ TBF[2] class 12 reserves ....C...
+ TBF[2] class 13 reserves .....C..
+ TBF[2] class 14 reserves ......C.
+ TBF[2] class 15 reserves .......C
+ TBF[3] class 16 reserves ...C....
+ TBF[3] class 17 reserves ....C...
+ TBF[3] class 18 reserves .....C..
+ TBF[3] class 19 reserves ......C.
+ TBF[3] class 20 reserves .......C
+ TBF[4] class 21 reserves ...C....
+ TBF[4] class 22 reserves ....C...
+ TBF[4] class 23 reserves .....C..
+ TBF[4] class 24 reserves ......C.
+ TBF[4] class 25 reserves .......C
+ TBF[5] class 26 reserves ...C....
+ TBF[5] class 27 reserves ....C...
+ TBF[5] class 28 reserves .....C..
+ TBF[5] class 29 reserves ......C.
+ TBF[5] class 1 reserves .......C
+ TBF[6] class 2 reserves ...C....
+ TBF[6] class 3 reserves ....C...
+ TBF[6] class 4 reserves .....C..
+ TBF[6] class 5 reserves ......C.
+ TBF[6] class 6 reserves .......C
+ TBF[7] class 7 reserves ...C....
+ TBF[7] class 8 reserves ....C...
+ TBF[7] class 9 reserves .....C..
+ TBF[7] class 10 reserves ......C.
+ TBF[7] class 11 reserves .......C
+ TBF[8] class 12 reserves ...C....
+ TBF[8] class 13 reserves ....C...
+ TBF[8] class 14 reserves .....C..
+ TBF[8] class 15 reserves ......C.
+ TBF[8] class 16 reserves .......C
+ TBF[9] class 17 reserves ...C....
+ TBF[9] class 18 reserves ....C...
+ TBF[9] class 19 reserves .....C..
+ TBF[9] class 20 reserves ......C.
+ TBF[9] class 21 reserves .......C
+ TBF[10] class 22 reserves ...C....
+ TBF[10] class 23 reserves ....C...
+ TBF[10] class 24 reserves .....C..
+ TBF[10] class 25 reserves ......C.
+ TBF[10] class 26 reserves .......C
+ TBF[11] class 27 reserves ...C....
+ TBF[11] class 28 reserves ....C...
+ TBF[11] class 29 reserves .....C..
+ TBF[11] class 1 reserves ......C.
+ TBF[11] class 2 reserves .......C
+ TBF[12] class 3 reserves ...C....
+ TBF[12] class 4 reserves ....C...
+ TBF[12] class 5 reserves .....C..
+ TBF[12] class 6 reserves ......C.
+ TBF[12] class 7 reserves .......C
+ TBF[13] class 8 reserves ...C....
+ TBF[13] class 9 reserves ....C...
+ TBF[13] class 10 reserves .....C..
+ TBF[13] class 11 reserves ......C.
+ TBF[13] class 12 reserves .......C
+ TBF[14] class 13 reserves ...C....
+ TBF[14] class 14 reserves ....C...
+ TBF[14] class 15 reserves .....C..
+ TBF[14] class 16 reserves ......C.
+ TBF[14] class 17 reserves .......C
+ TBF[15] class 18 reserves ...C....
+ TBF[15] class 19 reserves ....C...
+ TBF[15] class 20 reserves .....C..
+ TBF[15] class 21 reserves ......C.
+ TBF[15] class 22 reserves .......C
+ TBF[16] class 23 reserves ...C....
+ TBF[16] class 24 reserves ....C...
+ TBF[16] class 25 reserves .....C..
+ TBF[16] class 26 reserves ......C.
+ TBF[16] class 27 reserves .......C
+ TBF[17] class 28 reserves ...C....
+ TBF[17] class 29 reserves ....C...
+ TBF[17] class 1 reserves .....C..
+ TBF[17] class 2 reserves ......C.
+ TBF[17] class 3 reserves .......C
+ TBF[18] class 4 reserves ...C....
+ TBF[18] class 5 reserves ....C...
+ TBF[18] class 6 reserves .....C..
+ TBF[18] class 7 reserves ......C.
+ TBF[18] class 8 reserves .......C
+ TBF[19] class 9 reserves ...C....
+ TBF[19] class 10 reserves ....C...
+ TBF[19] class 11 reserves .....C..
+ TBF[19] class 12 reserves ......C.
+ TBF[19] class 13 reserves .......C
+ TBF[20] class 14 reserves ...C....
+ TBF[20] class 15 reserves ....C...
+ TBF[20] class 16 reserves .....C..
+ TBF[20] class 17 reserves ......C.
+ TBF[20] class 18 reserves .......C
+ TBF[21] class 19 reserves ...C....
+ TBF[21] class 20 reserves ....C...
+ TBF[21] class 21 reserves .....C..
+ TBF[21] class 22 reserves ......C.
+ TBF[21] class 23 reserves .......C
+ TBF[22] class 24 reserves ...C....
+ TBF[22] class 25 reserves ....C...
+ TBF[22] class 26 reserves .....C..
+ TBF[22] class 27 reserves ......C.
+ TBF[22] class 28 reserves .......C
+ TBF[23] class 29 reserves ...C....
+ TBF[23] class 1 reserves ....C...
+ TBF[23] class 2 reserves .....C..
+ TBF[23] class 3 reserves ......C.
+ TBF[23] class 4 reserves .......C
+ TBF[24] class 5 reserves ...C....
+ TBF[24] class 6 reserves ....C...
+ TBF[24] class 7 reserves .....C..
+ TBF[24] class 8 reserves ......C.
+ TBF[24] class 9 reserves .......C
+ TBF[25] class 10 reserves ...C....
+ TBF[25] class 11 reserves ....C...
+ TBF[25] class 12 reserves .....C..
+ TBF[25] class 13 reserves ......C.
+ TBF[25] class 14 reserves .......C
+ TBF[26] class 15 reserves ...C....
+ TBF[26] class 16 reserves ....C...
+ TBF[26] class 17 reserves .....C..
+ TBF[26] class 18 reserves ......C.
+ TBF[26] class 19 reserves .......C
+ TBF[27] class 20 reserves ...C....
+ TBF[27] class 21 reserves ....C...
+ TBF[27] class 22 reserves .....C..
+ TBF[27] class 23 reserves ......C.
+ TBF[27] class 24 reserves .......C
+ TBF[28] class 25 reserves ...C....
+ TBF[28] class 26 reserves ....C...
+ TBF[28] class 27 reserves .....C..
+ TBF[28] class 28 reserves ......C.
+ TBF[28] class 29 reserves .......C
+ TBF[29] class 1 reserves ...C....
+ TBF[29] class 2 reserves ....C...
+ TBF[29] class 3 reserves .....C..
+ TBF[29] class 4 reserves ......C.
+ TBF[29] class 5 reserves .......C
+ TBF[30] class 6 reserves ...C....
+ TBF[30] class 7 reserves ....C...
+ TBF[30] class 8 reserves .....C..
+ TBF[30] class 9 reserves ......C.
+ TBF[30] class 10 reserves .......C
+ TBF[31] class 11 reserves ...C....
+ TBF[31] class 12 reserves ....C...
+ TBF[31] class 13 reserves .....C..
+ TBF[31] class 14 reserves ......C.
+ TBF[31] class 15 reserves .......C
+ Successfully allocated 160 TBFs
+Going to test assignment with many connections, algorithm B
+ TBF[0] class 1 reserves ...C....
+ TBF[1] class 2 reserves ....DC..
+ TBF[2] class 3 reserves ......DC
+ TBF[3] class 4 reserves ...DCD..
+ TBF[4] class 5 reserves ......CD
+ TBF[5] class 6 reserves ...CD...
+ TBF[6] class 7 reserves .....CD.
+ TBF[7] class 8 reserves ....DDCD
+ TBF[8] class 9 reserves ...DCD..
+ TBF[9] class 10 reserves .....DCD
+ TBF[10] class 11 reserves ...DCD..
+ TBF[11] class 12 reserves .....DCD
+ TBF[12] class 13 reserves ...CDD..
+ TBF[13] class 14 reserves ....CDDD
+ TBF[14] class 15 reserves ...CDDDD
+ TBF[15] class 16 reserves ...CDDDD
+ TBF[16] class 17 reserves ...CDDDD
+ TBF[17] class 18 reserves ...CDDDD
+ TBF[18] class 19 reserves .....DCD
+ TBF[19] class 20 reserves ...DCD..
+ TBF[20] class 21 reserves .....DCD
+ TBF[21] class 22 reserves ...DCD..
+ TBF[22] class 23 reserves .....DCD
+ TBF[23] class 24 reserves ...DCD..
+ TBF[24] class 25 reserves .....DCD
+ TBF[25] class 26 reserves ...DCD..
+ TBF[26] class 27 reserves .....DCD
+ TBF[27] class 28 reserves ...DCD..
+ TBF[28] class 29 reserves .....DCD
+ TBF[29] class 1 reserves .......C
+ TBF[30] class 2 reserves ......DC
+ TBF[31] class 3 reserves ......DC
+ TBF[0] class 1 reserves ...C....
+ TBF[1] class 2 reserves ....DC..
+ TBF[2] class 3 reserves ......DC
+ TBF[3] class 4 reserves ...DCD..
+ TBF[4] class 5 reserves ......CD
+ TBF[5] class 6 reserves ...CD...
+ TBF[6] class 7 reserves .....CD.
+ TBF[7] class 8 reserves ....DDCD
+ TBF[8] class 9 reserves ...DCD..
+ TBF[9] class 10 reserves .....DCD
+ TBF[10] class 11 reserves ...DCD..
+ TBF[11] class 12 reserves .....DCD
+ TBF[12] class 13 reserves ...CDD..
+ TBF[13] class 14 reserves ....CDDD
+ TBF[14] class 15 reserves ...CDDDD
+ TBF[15] class 16 reserves ...CDDDD
+ TBF[16] class 17 reserves ...CDDDD
+ TBF[17] class 18 reserves ...CDDDD
+ TBF[18] class 19 reserves .....DCD
+ TBF[19] class 20 reserves ...DCD..
+ TBF[20] class 21 reserves .....DCD
+ TBF[21] class 22 reserves ...DCD..
+ TBF[22] class 23 reserves .....DCD
+ TBF[23] class 24 reserves ...DCD..
+ TBF[0] class 1 reserves ...C....
+ TBF[1] class 2 reserves ....DC..
+ TBF[2] class 3 reserves ......DC
+ TBF[3] class 4 reserves ...DCD..
+ TBF[4] class 5 reserves ......CD
+ TBF[5] class 6 reserves ...CD...
+ TBF[6] class 7 reserves .....CD.
+ TBF[7] class 8 reserves ....DDCD
+ TBF[8] class 9 reserves ...DCD..
+ TBF[9] class 10 reserves .....DCD
+ TBF[10] class 11 reserves ...DCD..
+ TBF[11] class 12 reserves .....DCD
+ TBF[12] class 13 reserves ...CDD..
+ TBF[13] class 14 reserves ....CDDD
+ TBF[14] class 15 reserves ...CDDDD
+ TBF[15] class 16 reserves ...CDDDD
+ TBF[16] class 17 reserves ...CDDDD
+ TBF[17] class 18 reserves ...CDDDD
+ TBF[18] class 19 reserves .....DCD
+ TBF[19] class 20 reserves ...DCD..
+ TBF[20] class 21 reserves .....DCD
+ TBF[21] class 22 reserves ...DCD..
+ TBF[22] class 23 reserves .....DCD
+ TBF[23] class 24 reserves ...DCD..
+ TBF[24] class 25 reserves .....DCD
+ TBF[25] class 26 reserves ...DCD..
+ TBF[26] class 27 reserves .....DCD
+ TBF[27] class 28 reserves ...DCD..
+ TBF[28] class 29 reserves .....DCD
+ TBF[29] class 1 reserves .......C
+ TBF[30] class 2 reserves ......DC
+ TBF[31] class 3 reserves ......DC
+ TBF[0] class 1 reserves ...C....
+ TBF[1] class 2 reserves ...DC...
+ TBF[2] class 3 reserves ......DC
+ TBF[3] class 4 reserves ....DCD.
+ TBF[4] class 5 reserves ...CD...
+ TBF[5] class 6 reserves ...CD...
+ TBF[6] class 7 reserves ......CD
+ TBF[7] class 8 reserves ...DDCD.
+ TBF[8] class 9 reserves ...DCD..
+ TBF[9] class 10 reserves ....DCD.
+ TBF[10] class 11 reserves ...DCD..
+ TBF[11] class 12 reserves .....DCD
+ TBF[12] class 13 reserves .....CDD
+ TBF[13] class 14 reserves ...CDDD.
+ TBF[14] class 15 reserves ...CDDDD
+ TBF[15] class 16 reserves ...CDDDD
+ TBF[16] class 17 reserves ...CDDDD
+ TBF[17] class 18 reserves ...CDDDD
+ TBF[18] class 19 reserves .....DCD
+ TBF[19] class 20 reserves ...DCD..
+ TBF[20] class 21 reserves .....DCD
+ TBF[21] class 22 reserves ...DCD..
+ TBF[22] class 23 reserves .....DCD
+ TBF[23] class 24 reserves ...DCD..
+ TBF[24] class 25 reserves .....DCD
+ TBF[25] class 26 reserves ...DCD..
+ TBF[26] class 27 reserves .....DCD
+ TBF[27] class 28 reserves ...DCD..
+ TBF[28] class 29 reserves .....DCD
+ TBF[29] class 1 reserves ...C....
+ TBF[30] class 2 reserves ......DC
+ TBF[31] class 3 reserves ......DC
+ Successfully allocated 32 TBFs