tbf: Move TFI selection into alloc_algorithm

Currently the TFI and the TRX have to be determined before the actual TBF
allocation function is called, passing TFI and TRX number as
parameters. This does fit to TFI reuse for different slots, since
this were tightly coupled with the slot selection.

This commit just moves the TFI selection into the alloc_algorithm
functions. The tfi parameter is removed from the the TFI alloc
functions. The trx parameter is changed into use_trx to optionally
limit the trx selection (same semantics like in tfi_find_free).

Sponsored-by: On-Waves ehf
diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err
index 3c7892e..c64d4f1 100644
--- a/tests/tbf/TbfTest.err
+++ b/tests/tbf/TbfTest.err
@@ -1,7 +1,9 @@
 ********** TBF starts here **********
-Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=0
+Allocating DL TBF: MS_CLASS=0
 Creating MS object, TLLI = 0x00000000
 Slot Allocation (Algorithm A) for class 0
+Searching for first unallocated TFI: TRX=0 first TS=2
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 4, because not enabled
@@ -13,11 +15,14 @@
 PDCH(TS 2, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001.
 - Setting Control TS 2
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 04, dl_slots = 04
 The MS object cannot fully confirm an unexpected TLLI: 0x00002342, partly confirmed
 Modifying MS object, TLLI = 0x00002342, TA 0 -> 4
 ********** TBF starts here **********
-Allocating UL TBF: TFI=0 TRX=0 MS_CLASS=0
+Allocating UL TBF: MS_CLASS=0
 Slot Allocation (Algorithm A) for class 0
+Searching for first unallocated TFI: TRX=0 first TS=2
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 3, because need to reuse TS
@@ -29,6 +34,7 @@
 PDCH(TS 2, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001.
 - Setting Control TS 2
 Attaching TBF to MS object, TLLI = 0x00002342, TBF = TBF(TFI=0 TLLI=0x00002342 DIR=UL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00002342 DIR=UL STATE=NULL): trx = 0, ul_slots = 04, dl_slots = 00
 Modifying MS object, TLLI: 0x00000000 -> 0x00002342, already confirmed partly
 The MS object cannot fully confirm an unexpected TLLI: 0x00004232, partly confirmed
 Modifying MS object, TLLI: 0x00002342 -> 0x00004232, already confirmed partly
@@ -36,10 +42,12 @@
 Searching for first unallocated TFI: TRX=0 first TS=4
  Found TFI=0.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -51,6 +59,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
 The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append
@@ -77,11 +86,11 @@
 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink acknowledge
 - Final ACK received.
 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) changes state from FLOW to WAIT RELEASE
+********** TBF starts here **********
+Allocating DL TBF: MS_CLASS=45
+Slot Allocation (Algorithm A) for class 45
 Searching for first unallocated TFI: TRX=0 first TS=4
  Found TFI=1.
-********** TBF starts here **********
-Allocating DL TBF: TFI=1 TRX=0 MS_CLASS=45
-Slot Allocation (Algorithm A) for class 45
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -94,6 +103,7 @@
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL)
 Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE)
+Allocated TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) Trigger dowlink assignment on PACCH, because another LLC PDU has arrived in between
 Send dowlink assignment on PACCH, because TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) exists
 TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) changes state from NULL to ASSIGN
@@ -111,10 +121,12 @@
 Searching for first unallocated TFI: TRX=0 first TS=4
  Found TFI=0.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -126,6 +138,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
 The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append
@@ -152,11 +165,11 @@
 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) downlink acknowledge
 - Final ACK received.
 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) changes state from FLOW to WAIT RELEASE
+********** TBF starts here **********
+Allocating DL TBF: MS_CLASS=45
+Slot Allocation (Algorithm A) for class 45
 Searching for first unallocated TFI: TRX=0 first TS=4
  Found TFI=1.
-********** TBF starts here **********
-Allocating DL TBF: TFI=1 TRX=0 MS_CLASS=45
-Slot Allocation (Algorithm A) for class 45
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -169,6 +182,7 @@
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL)
 Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE)
+Allocated TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) Trigger dowlink assignment on PACCH, because another LLC PDU has arrived in between
 Send dowlink assignment on PACCH, because TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=WAIT RELEASE) exists
 TBF(TFI=1 TLLI=0xffeeddcc DIR=DL STATE=NULL) changes state from NULL to ASSIGN
@@ -186,10 +200,12 @@
 Searching for first unallocated TFI: TRX=0 first TS=4
  Found TFI=0.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -201,6 +217,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
 The MS object cannot fully confirm an unexpected TLLI: 0xffeeddcc, partly confirmed
 TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW) append
@@ -414,10 +431,12 @@
 Searching for first unallocated TFI: TRX=0 first TS=4
  Found TFI=0.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -429,14 +448,17 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
 Searching for first unallocated TFI: TRX=0 first TS=4
  Found TFI=1.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=1 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=1.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -448,6 +470,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000003.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
 The MS object cannot fully confirm an unexpected TLLI: 0xf1000001, partly confirmed
 The MS object cannot fully confirm an unexpected TLLI: 0xf1000002, partly confirmed
@@ -468,13 +491,13 @@
 Detaching TBF from MS object, TLLI = 0xf1000001, TBF = TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW)
 Destroying MS object, TLLI = 0xf1000001
 ********** TBF ends here **********
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=0.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -486,6 +509,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000000, partly confirmed
 TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000000, IMSI '' -> '001001000000000'
@@ -494,13 +518,13 @@
 TX: START TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 30 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 08 00 23 2b 2b 2b 2b 
 TBF(TFI=0 TLLI=0xc0000000 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=1.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=1 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=1.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -512,6 +536,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL), 2 TBFs, USFs = 00, TFIs = 00000003.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=1 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000001, partly confirmed
 TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000001, IMSI '' -> '001001000000001'
@@ -520,13 +545,13 @@
 TX: START TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 31 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 18 40 23 2b 2b 2b 2b 
 TBF(TFI=1 TLLI=0xc0000001 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=2.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=2 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=2.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -538,6 +563,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL), 3 TBFs, USFs = 00, TFIs = 00000007.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=2 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000002, partly confirmed
 TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000002, IMSI '' -> '001001000000002'
@@ -546,13 +572,13 @@
 TX: START TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 32 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 28 80 23 2b 2b 2b 2b 
 TBF(TFI=2 TLLI=0xc0000002 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=3.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=3 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=3.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -564,6 +590,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL), 4 TBFs, USFs = 00, TFIs = 0000000f.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=3 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000003, partly confirmed
 TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000003, IMSI '' -> '001001000000003'
@@ -572,13 +599,13 @@
 TX: START TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 33 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 38 c0 23 2b 2b 2b 2b 
 TBF(TFI=3 TLLI=0xc0000003 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=4.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=4 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=4.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -590,6 +617,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL), 5 TBFs, USFs = 00, TFIs = 0000001f.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=4 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000004, partly confirmed
 TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000004, IMSI '' -> '001001000000004'
@@ -598,13 +626,13 @@
 TX: START TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 34 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 49 00 23 2b 2b 2b 2b 
 TBF(TFI=4 TLLI=0xc0000004 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=5.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=5 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=5.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -616,6 +644,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL), 6 TBFs, USFs = 00, TFIs = 0000003f.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=5 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000005, partly confirmed
 TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000005, IMSI '' -> '001001000000005'
@@ -624,13 +653,13 @@
 TX: START TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 35 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 59 40 23 2b 2b 2b 2b 
 TBF(TFI=5 TLLI=0xc0000005 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=6.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=6 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=6.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -642,6 +671,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL), 7 TBFs, USFs = 00, TFIs = 0000007f.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=6 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000006, partly confirmed
 TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000006, IMSI '' -> '001001000000006'
@@ -650,13 +680,13 @@
 TX: START TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 36 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 69 80 23 2b 2b 2b 2b 
 TBF(TFI=6 TLLI=0xc0000006 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=7.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=7 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=7.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -668,6 +698,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL), 8 TBFs, USFs = 00, TFIs = 000000ff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=7 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000007, partly confirmed
 TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000007, IMSI '' -> '001001000000007'
@@ -676,13 +707,13 @@
 TX: START TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 37 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 79 c0 23 2b 2b 2b 2b 
 TBF(TFI=7 TLLI=0xc0000007 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=8.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=8 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=8.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -694,6 +725,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL), 9 TBFs, USFs = 00, TFIs = 000001ff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=8 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000008, partly confirmed
 TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000008, IMSI '' -> '001001000000008'
@@ -702,13 +734,13 @@
 TX: START TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 38 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 8a 00 23 2b 2b 2b 2b 
 TBF(TFI=8 TLLI=0xc0000008 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=9.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=9 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=9.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -720,6 +752,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=9 TLLI=0x00000000 DIR=DL STATE=NULL), 10 TBFs, USFs = 00, TFIs = 000003ff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=9 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=9 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000009, partly confirmed
 TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000009, IMSI '' -> '001001000000009'
@@ -728,13 +761,13 @@
 TX: START TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 30 39 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 9a 40 23 2b 2b 2b 2b 
 TBF(TFI=9 TLLI=0xc0000009 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=10.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=10 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=10.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -746,6 +779,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=10 TLLI=0x00000000 DIR=DL STATE=NULL), 11 TBFs, USFs = 00, TFIs = 000007ff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=10 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=10 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000000a, partly confirmed
 TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000000a, IMSI '' -> '001001000000010'
@@ -754,13 +788,13 @@
 TX: START TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 30 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 aa 80 23 2b 2b 2b 2b 
 TBF(TFI=10 TLLI=0xc000000a DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=11.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=11 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=11.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -772,6 +806,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=11 TLLI=0x00000000 DIR=DL STATE=NULL), 12 TBFs, USFs = 00, TFIs = 00000fff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=11 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=11 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000000b, partly confirmed
 TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000000b, IMSI '' -> '001001000000011'
@@ -780,13 +815,13 @@
 TX: START TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 31 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 ba c0 23 2b 2b 2b 2b 
 TBF(TFI=11 TLLI=0xc000000b DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=12.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=12 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=12.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -798,6 +833,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=12 TLLI=0x00000000 DIR=DL STATE=NULL), 13 TBFs, USFs = 00, TFIs = 00001fff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=12 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=12 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000000c, partly confirmed
 TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000000c, IMSI '' -> '001001000000012'
@@ -806,13 +842,13 @@
 TX: START TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 32 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 cb 00 23 2b 2b 2b 2b 
 TBF(TFI=12 TLLI=0xc000000c DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=13.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=13 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=13.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -824,6 +860,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=13 TLLI=0x00000000 DIR=DL STATE=NULL), 14 TBFs, USFs = 00, TFIs = 00003fff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=13 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=13 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000000d, partly confirmed
 TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000000d, IMSI '' -> '001001000000013'
@@ -832,13 +869,13 @@
 TX: START TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 33 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 db 40 23 2b 2b 2b 2b 
 TBF(TFI=13 TLLI=0xc000000d DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=14.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=14 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=14.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -850,6 +887,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=14 TLLI=0x00000000 DIR=DL STATE=NULL), 15 TBFs, USFs = 00, TFIs = 00007fff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=14 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=14 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000000e, partly confirmed
 TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000000e, IMSI '' -> '001001000000014'
@@ -858,13 +896,13 @@
 TX: START TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 34 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 eb 80 23 2b 2b 2b 2b 
 TBF(TFI=14 TLLI=0xc000000e DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=15.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=15 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=15.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -876,6 +914,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=15 TLLI=0x00000000 DIR=DL STATE=NULL), 16 TBFs, USFs = 00, TFIs = 0000ffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=15 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=15 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000000f, partly confirmed
 TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000000f, IMSI '' -> '001001000000015'
@@ -884,13 +923,13 @@
 TX: START TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 35 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 00 fb c0 23 2b 2b 2b 2b 
 TBF(TFI=15 TLLI=0xc000000f DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=16.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=16 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=16.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -902,6 +941,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=16 TLLI=0x00000000 DIR=DL STATE=NULL), 17 TBFs, USFs = 00, TFIs = 0001ffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=16 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=16 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000010, partly confirmed
 TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000010, IMSI '' -> '001001000000016'
@@ -910,13 +950,13 @@
 TX: START TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 36 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 0c 00 23 2b 2b 2b 2b 
 TBF(TFI=16 TLLI=0xc0000010 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=17.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=17 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=17.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -928,6 +968,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=17 TLLI=0x00000000 DIR=DL STATE=NULL), 18 TBFs, USFs = 00, TFIs = 0003ffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=17 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=17 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000011, partly confirmed
 TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000011, IMSI '' -> '001001000000017'
@@ -936,13 +977,13 @@
 TX: START TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 37 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 1c 40 23 2b 2b 2b 2b 
 TBF(TFI=17 TLLI=0xc0000011 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=18.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=18 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=18.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -954,6 +995,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=18 TLLI=0x00000000 DIR=DL STATE=NULL), 19 TBFs, USFs = 00, TFIs = 0007ffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=18 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=18 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000012, partly confirmed
 TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000012, IMSI '' -> '001001000000018'
@@ -962,13 +1004,13 @@
 TX: START TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 38 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 2c 80 23 2b 2b 2b 2b 
 TBF(TFI=18 TLLI=0xc0000012 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=19.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=19 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=19.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -980,6 +1022,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=19 TLLI=0x00000000 DIR=DL STATE=NULL), 20 TBFs, USFs = 00, TFIs = 000fffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=19 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=19 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000013, partly confirmed
 TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000013, IMSI '' -> '001001000000019'
@@ -988,13 +1031,13 @@
 TX: START TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 31 39 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 3c c0 23 2b 2b 2b 2b 
 TBF(TFI=19 TLLI=0xc0000013 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=20.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=20 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=20.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1006,6 +1049,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=20 TLLI=0x00000000 DIR=DL STATE=NULL), 21 TBFs, USFs = 00, TFIs = 001fffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=20 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=20 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000014, partly confirmed
 TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000014, IMSI '' -> '001001000000020'
@@ -1014,13 +1058,13 @@
 TX: START TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 30 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 4d 00 23 2b 2b 2b 2b 
 TBF(TFI=20 TLLI=0xc0000014 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=21.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=21 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=21.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1032,6 +1076,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=21 TLLI=0x00000000 DIR=DL STATE=NULL), 22 TBFs, USFs = 00, TFIs = 003fffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=21 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=21 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000015, partly confirmed
 TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000015, IMSI '' -> '001001000000021'
@@ -1040,13 +1085,13 @@
 TX: START TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 31 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 5d 40 23 2b 2b 2b 2b 
 TBF(TFI=21 TLLI=0xc0000015 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=22.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=22 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=22.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1058,6 +1103,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=22 TLLI=0x00000000 DIR=DL STATE=NULL), 23 TBFs, USFs = 00, TFIs = 007fffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=22 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=22 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000016, partly confirmed
 TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000016, IMSI '' -> '001001000000022'
@@ -1066,13 +1112,13 @@
 TX: START TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 32 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 6d 80 23 2b 2b 2b 2b 
 TBF(TFI=22 TLLI=0xc0000016 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=23.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=23 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=23.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1084,6 +1130,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=23 TLLI=0x00000000 DIR=DL STATE=NULL), 24 TBFs, USFs = 00, TFIs = 00ffffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=23 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=23 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000017, partly confirmed
 TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000017, IMSI '' -> '001001000000023'
@@ -1092,13 +1139,13 @@
 TX: START TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 33 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 7d c0 23 2b 2b 2b 2b 
 TBF(TFI=23 TLLI=0xc0000017 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=24.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=24 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=24.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1110,6 +1157,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=24 TLLI=0x00000000 DIR=DL STATE=NULL), 25 TBFs, USFs = 00, TFIs = 01ffffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=24 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=24 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000018, partly confirmed
 TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000018, IMSI '' -> '001001000000024'
@@ -1118,13 +1166,13 @@
 TX: START TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 34 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 8e 00 23 2b 2b 2b 2b 
 TBF(TFI=24 TLLI=0xc0000018 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=25.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=25 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=25.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1136,6 +1184,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=25 TLLI=0x00000000 DIR=DL STATE=NULL), 26 TBFs, USFs = 00, TFIs = 03ffffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=25 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=25 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0000019, partly confirmed
 TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0000019, IMSI '' -> '001001000000025'
@@ -1144,13 +1193,13 @@
 TX: START TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 35 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 9e 40 23 2b 2b 2b 2b 
 TBF(TFI=25 TLLI=0xc0000019 DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=26.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=26 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=26.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1162,6 +1211,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=26 TLLI=0x00000000 DIR=DL STATE=NULL), 27 TBFs, USFs = 00, TFIs = 07ffffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=26 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=26 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000001a, partly confirmed
 TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000001a, IMSI '' -> '001001000000026'
@@ -1170,13 +1220,13 @@
 TX: START TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 36 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 ae 80 23 2b 2b 2b 2b 
 TBF(TFI=26 TLLI=0xc000001a DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=27.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=27 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=27.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1188,6 +1238,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=27 TLLI=0x00000000 DIR=DL STATE=NULL), 28 TBFs, USFs = 00, TFIs = 0fffffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=27 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=27 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000001b, partly confirmed
 TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000001b, IMSI '' -> '001001000000027'
@@ -1196,13 +1247,13 @@
 TX: START TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 37 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 be c0 23 2b 2b 2b 2b 
 TBF(TFI=27 TLLI=0xc000001b DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=28.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=28 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=28.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1214,6 +1265,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=28 TLLI=0x00000000 DIR=DL STATE=NULL), 29 TBFs, USFs = 00, TFIs = 1fffffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=28 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=28 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000001c, partly confirmed
 TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000001c, IMSI '' -> '001001000000028'
@@ -1222,13 +1274,13 @@
 TX: START TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 38 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 cf 00 23 2b 2b 2b 2b 
 TBF(TFI=28 TLLI=0xc000001c DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=29.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=29 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=29.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1240,6 +1292,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=29 TLLI=0x00000000 DIR=DL STATE=NULL), 30 TBFs, USFs = 00, TFIs = 3fffffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=29 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=29 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000001d, partly confirmed
 TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000001d, IMSI '' -> '001001000000029'
@@ -1248,13 +1301,13 @@
 TX: START TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 32 39 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 df 40 23 2b 2b 2b 2b 
 TBF(TFI=29 TLLI=0xc000001d DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=30.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=30 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=30.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1266,6 +1319,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=30 TLLI=0x00000000 DIR=DL STATE=NULL), 31 TBFs, USFs = 00, TFIs = 7fffffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=30 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=30 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000001e, partly confirmed
 TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000001e, IMSI '' -> '001001000000030'
@@ -1274,13 +1328,13 @@
 TX: START TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 33 30 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 ef 80 23 2b 2b 2b 2b 
 TBF(TFI=30 TLLI=0xc000001e DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=31.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=31 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=31.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1292,6 +1346,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=31 TLLI=0x00000000 DIR=DL STATE=NULL), 32 TBFs, USFs = 00, TFIs = ffffffff.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=31 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=31 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc000001f, partly confirmed
 TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc000001f, IMSI '' -> '001001000000031'
@@ -1300,16 +1355,23 @@
 TX: START TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=ASSIGN) Immediate Assignment Downlink (PCH)
 Sending data request: trx=0 ts=0 sapi=3 arfcn=0 fn=0 block=0 data=30 33 31 2d 06 3f 30 0c 00 00 7d 80 00 00 00 dc 00 00 01 ff c0 23 2b 2b 2b 2b 
 TBF(TFI=31 TLLI=0xc000001f DIR=DL STATE=ASSIGN) append
-Searching for first unallocated TFI: TRX=0 first TS=4
-No TFI available.
-No PDCH resource
-Searching for first unallocated TFI: TRX=0 first TS=4
- Found TFI=0.
 ********** TBF starts here **********
-Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45
+Allocating DL TBF: MS_CLASS=45
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
 Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+No TFI available.
+- Failed to allocate a TFI
+No PDCH resource
+Destroying MS object, TLLI = 0x00000000
+********** TBF starts here **********
+Allocating DL TBF: MS_CLASS=45
+Creating MS object, TLLI = 0x00000000
+Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
+Slot Allocation (Algorithm A) for class 45
+Searching for first unallocated TFI: TRX=0 first TS=4
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1321,6 +1383,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 The MS object cannot fully confirm an unexpected TLLI: 0xc0123456, partly confirmed
 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) [DOWNLINK] START
 Modifying MS object, TLLI = 0xc0123456, IMSI '' -> '001001000123456'
@@ -1334,11 +1397,11 @@
 PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN), 0 TBFs, USFs = 00, TFIs = 00000000.
 Detaching TBF from MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=ASSIGN)
 ********** TBF ends here **********
+********** TBF starts here **********
+Allocating DL TBF: MS_CLASS=45
+Slot Allocation (Algorithm A) for class 45
 Searching for first unallocated TFI: TRX=0 first TS=4
  Found TFI=0.
-********** TBF starts here **********
-Allocating DL TBF: TFI=0 TRX=0 MS_CLASS=45
-Slot Allocation (Algorithm A) for class 45
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1350,6 +1413,7 @@
 PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001.
 - Setting Control TS 4
 Attaching TBF to MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL): trx = 0, ul_slots = 10, dl_slots = 10
 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) [DOWNLINK] START
 Send dowlink assignment for TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) on PCH, no TBF exist (IMSI=001001000123456)
 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
@@ -1386,12 +1450,12 @@
 Searching for first unallocated TFI: TRX=0 first TS=7
  Found TFI=0.
 MS requests UL TBF on RACH, so we provide one:
-Searching for first unallocated TFI: TRX=0 first TS=7
- Found TFI=0.
 ********** TBF starts here **********
-Allocating UL TBF: TFI=0 TRX=0 MS_CLASS=0
+Allocating UL TBF: MS_CLASS=0
 Creating MS object, TLLI = 0x00000000
 Slot Allocation (Algorithm A) for class 0
+Searching for first unallocated TFI: TRX=0 first TS=7
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1403,6 +1467,7 @@
 PDCH(TS 7, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001.
 - Setting Control TS 7
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL): trx = 0, ul_slots = 80, dl_slots = 00
 Modifying MS object, TLLI = 0x00000000, TA 0 -> 7
 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW
 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer 3169.
@@ -1443,12 +1508,12 @@
 ------------------------- RX : Uplink Control Block -------------------------
 MS requests UL TBF in packet resource request of single block, so we provide one:
 MS does not give us a class.
-Searching for first unallocated TFI: TRX=0 first TS=7
- Found TFI=0.
 ********** TBF starts here **********
-Allocating UL TBF: TFI=0 TRX=0 MS_CLASS=0
+Allocating UL TBF: MS_CLASS=0
 Creating MS object, TLLI = 0x00000000
 Slot Allocation (Algorithm A) for class 0
+Searching for first unallocated TFI: TRX=0 first TS=7
+ Found TFI=0.
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
 - Skipping TS 2, because not enabled
@@ -1460,6 +1525,7 @@
 PDCH(TS 7, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL), 1 TBFs, USFs = 01, TFIs = 00000001.
 - Setting Control TS 7
 Attaching TBF to MS object, TLLI = 0x00000000, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL)
+Allocated TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL): trx = 0, ul_slots = 80, dl_slots = 00
 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to ASSIGN
 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=ASSIGN) starting timer 3169.
 Modifying MS object, UL TLLI: 0x00000000 -> 0xf1223344, not yet confirmed