aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gprs_rlcmac_ts_alloc.cpp16
-rw-r--r--tests/alloc/AllocTest.ok418
2 files changed, 221 insertions, 213 deletions
diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp
index b9d4e41..ec228d1 100644
--- a/src/gprs_rlcmac_ts_alloc.cpp
+++ b/src/gprs_rlcmac_ts_alloc.cpp
@@ -405,13 +405,21 @@ static int find_multi_slots(struct gprs_rlcmac_bts *bts,
Trb = ms_class->rb;
Type = ms_class->type;
- /* Tta and Ttb may depend on hopping or frequency change */
- /* TODO: Set them to 1 */
- if (Ttb == MS_A || Ttb == MS_B)
+ /* MS_A maps to 0 if frequency hopping is disabled */
+ /* TODO: Set it to 1 if FH is implemented and enabled */
+ if (Ttb == MS_A)
Ttb = 0;
- if (Trb == MS_A || Trb == MS_C)
+ if (Trb == MS_A)
Trb = 0;
+ /* MS_A and MS_B are 0 iff FH is disabled and there is no Tx/Rx change.
+ * This is never the case with the current implementation, so 1 will
+ * always be used. */
+ if (Ttb == MS_B)
+ Ttb = 1;
+ if (Trb == MS_C)
+ Trb = 1;
+
LOGP(DRLCMAC, LOGL_DEBUG, "- Rx=%d Tx=%d Sum Rx+Tx=%s Tta=%s Ttb=%d "
" Tra=%d Trb=%d Type=%d\n", ms_class->rx, Tx,
(Sum == MS_NA) ? "N/A" : digit[Sum],
diff --git a/tests/alloc/AllocTest.ok b/tests/alloc/AllocTest.ok
index 79b5dbf..823595a 100644
--- a/tests/alloc/AllocTest.ok
+++ b/tests/alloc/AllocTest.ok
@@ -588,356 +588,356 @@ PDCH[1] is control_ts for DL
PDCH[1] is first common for DL
Going to test multislot assignment MS_CLASS=19
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=20
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=21
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=22
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=23
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=24
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=25
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=26
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=27
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=28
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Going to test multislot assignment MS_CLASS=29
Testing UL then DL assignment.
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing DL then UL assignment followed by update
-PDCH[5] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
-PDCH[5] is used for UL
-PDCH[5] is control_ts for UL
-PDCH[5] is first common for UL
+PDCH[6] is used for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
+PDCH[6] is used for UL
+PDCH[6] is control_ts for UL
+PDCH[6] is first common for UL
PDCH[5] is used for DL
PDCH[6] is used for DL
PDCH[7] is used for DL
-PDCH[5] is control_ts for DL
-PDCH[5] is first common for DL
+PDCH[6] is control_ts for DL
+PDCH[6] is first common for DL
Testing jolly example
-PDCH[2] is used for UL
-PDCH[2] is control_ts for UL
-PDCH[2] is first common for UL
+PDCH[3] is used for UL
+PDCH[3] is control_ts for UL
+PDCH[3] is first common for UL
PDCH[1] is used for DL
PDCH[2] is used for DL
PDCH[3] is used for DL
PDCH[4] is used for DL
-PDCH[2] is control_ts for DL
-PDCH[2] is first common for DL
+PDCH[3] is control_ts for DL
+PDCH[3] is first common for DL
Mass test: TS0(xxxxxxxO)TS7 MS_Class=0
Mass test: TS0(xxxxxxxO)TS7 MS_Class=1
Mass test: TS0(xxxxxxxO)TS7 MS_Class=2
@@ -8743,20 +8743,20 @@ Going to test assignment with many TBF, algorithm B class 1-29 (UL and DL)
TBF[15] class 16 reserves ...CDDDD
TBF[16] class 17 reserves ...DCDDD
TBF[17] class 18 reserves ...DDCDD
- TBF[18] class 19 reserves ....DDCD
- TBF[19] class 20 reserves ...DCDD.
- TBF[20] class 21 reserves ....DCDD
- TBF[21] class 22 reserves ...DCDD.
- TBF[22] class 23 reserves ....DDCD
- TBF[23] class 24 reserves ...DDCD.
- TBF[24] class 25 reserves ....DDCD
- TBF[25] class 26 reserves ...DCDD.
- TBF[26] class 27 reserves ....DCDD
- TBF[27] class 28 reserves .....DDC
+ TBF[18] class 19 reserves .....DCD
+ TBF[19] class 20 reserves ...DCD..
+ TBF[20] class 21 reserves .....DDC
+ TBF[21] class 22 reserves ...DDC..
+ TBF[22] class 23 reserves .....DCD
+ TBF[23] class 24 reserves ...DCD..
+ TBF[24] class 25 reserves .....DDC
+ TBF[25] class 26 reserves ...DDC..
+ TBF[26] class 27 reserves .....DCD
+ TBF[27] class 28 reserves ...DCD..
TBF[28] class 29 reserves .....DDC
TBF[29] class 1 reserves ...C....
TBF[30] class 2 reserves ......DC
- TBF[31] class 3 reserves ......DC
+ TBF[31] class 3 reserves ....DC..
Successfully allocated 32 UL TBFs
Going to test assignment with many TBF, algorithm A (DL and UL)
TBF[0] class 1 reserves ...C....