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-16 18:51:31 +0200
commita8c2aaf6f05d5e25665e8cbb2b415c6a2ad34d8b (patch)
tree994f19e9d5ca95e8aa0d6df42d2e710dd3a2195f
parent69c9bfa0897c63b8a220bdb8db6658dc5021e5da (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.cpp56
-rw-r--r--tests/alloc/AllocTest.err409
-rw-r--r--tests/alloc/AllocTest.ok639
3 files changed, 1104 insertions, 0 deletions
diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp
index 6732058b..19ca7184 100644
--- a/tests/alloc/AllocTest.cpp
+++ b/tests/alloc/AllocTest.cpp
@@ -646,6 +646,55 @@ 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]);
+ fprintf(stderr, " Allocated %d TBFs (previously %d)\n",
+ counter1, counter2);
+
+ check_tfi_usage(&the_bts);
+
+ /* 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);
+}
+
static void test_successive_allocation()
{
test_successive_allocation(alloc_algorithm_a, 1, 1, TEST_MODE_UL_AND_DL,
@@ -685,6 +734,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 +756,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..c3852fe9 100644
--- a/tests/alloc/AllocTest.err
+++ b/tests/alloc/AllocTest.err
@@ -51,3 +51,412 @@ 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)
+ Allocated 160 TBFs (previously -1)
+- Failed to allocate a TS, no TFI or USF available
+ Allocated 35 TBFs (previously 160)
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+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)
+ Allocated 160 TBFs (previously 160)
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+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)
+ Allocated 160 TBFs (previously 160)
+No TFI available.
+No TFI available.
+- Failed to allocate a TFI
+ Allocated 32 TBFs (previously -1)
+No USF available
+ Allocated 24 TBFs (previously 32)
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+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
+ Allocated 32 TBFs (previously 32)
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+No TFI available.
+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
+ Allocated 32 TBFs (previously 32)
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