<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/25628">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  daniel: Looks good to me, but someone else must approve
  laforge: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse()<br><br>The test uses get_poll_fn() to submit a UL ctrl block on the next<br>expected poll TS+FN.<br><br>During initial transmit_dl_data(), 2 POLLs for DL_ACK are set on<br>different TS, but the test only updates the clock for one of them in<br>send_ul_mac_block(). As a result, one POLL item is left in the rb_tree,<br>and later on, when send_control_ack() is called, get_poll_fn() will pick<br>that 2nd DL_ACK poll FN+TS which was left untouched (due to sending no<br>events to the PCU clock) instead of the FN+TS which was expected to be<br>allocated by PCU for DL_ASS.<br><br>Until now this was not an issue since rcv_control_ack() was not properly<br>veirfying what the poll scheduler was expecting and accepted it. This is<br>no longer the case after the follow up patch refactoring<br>rcv_control_ack() and improving its robustness.<br><br>Change-Id: I3a4b089fe66a99e73e07bd1c690cd4d67752fad9<br>---<br>M tests/tbf/TbfTest.cpp<br>M tests/tbf/TbfTest.err<br>2 files changed, 69 insertions(+), 61 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp</span><br><span>index ae12f1e..8700347 100644</span><br><span>--- a/tests/tbf/TbfTest.cpp</span><br><span>+++ b/tests/tbf/TbfTest.cpp</span><br><span>@@ -2199,6 +2199,9 @@</span><br><span>                send_dl_data(bts, tlli1, imsi, (const uint8_t *)buf, rc);</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* Drop first DL_ACK poll queued */</span><br><span style="color: hsl(120, 100%, 40%);">+   send_empty_block(dl_tbf1, dl_tbf1->control_ts, get_poll_fn(dl_tbf1, dl_tbf1->control_ts));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   /* Fake Final DL Ack/Nack */</span><br><span>         ulreq.u.MESSAGE_TYPE = MT_PACKET_DOWNLINK_ACK_NACK;</span><br><span>  Packet_Downlink_Ack_Nack_t *ack = &ulreq.u.Packet_Downlink_Ack_Nack;</span><br><span>diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err</span><br><span>index f3a4922..99e82df 100644</span><br><span>--- a/tests/tbf/TbfTest.err</span><br><span>+++ b/tests/tbf/TbfTest.err</span><br><span>@@ -3215,45 +3215,6 @@</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes</span><br><span> Detected FN jump! 2654288 -> 2654379</span><br><span style="color: hsl(0, 100%, 40%);">-PDCH(bts=0,trx=0,ts=7) FN=2654379 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span style="color: hsl(0, 100%, 40%);">-PDCH(bts=0,trx=0,ts=7) FN=2654379 ------------------------- RX : Uplink Control Block -------------------------</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack</span><br><span style="color: hsl(0, 100%, 40%);">-PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR"</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink acknowledge</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received]</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) ack:  (BSN=0)"RRRRRRRRRRRRRRRRRRRRRRRRRRRR"(BSN=27)  R=ACK I=NACK</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) DL analysis, range=0:28, lost=0, recv=28, skipped=0, bsn=0, info='RRRRRRRRRRRRRRRRRRRRRRRRRRRR....................................'</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27)  A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received.</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec</span><br><span style="color: hsl(0, 100%, 40%);">-MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here **********</span><br><span style="color: hsl(0, 100%, 40%);">-MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF</span><br><span style="color: hsl(0, 100%, 40%);">-TBF{NULL}: Allocated</span><br><span style="color: hsl(0, 100%, 40%);">-UL_ASS_TBF{NONE}: Allocated</span><br><span style="color: hsl(0, 100%, 40%);">-DL_ASS_TBF{NONE}: Allocated</span><br><span style="color: hsl(0, 100%, 40%);">-[DL] algo A <multi> (suggested TRX: 0): Alloc start</span><br><span style="color: hsl(0, 100%, 40%);">-- Skipping TS 0, because not enabled</span><br><span style="color: hsl(0, 100%, 40%);">-- Skipping TS 1, because not enabled</span><br><span style="color: hsl(0, 100%, 40%);">-- Skipping TS 2, because not enabled</span><br><span style="color: hsl(0, 100%, 40%);">-- Skipping TS 3, because not enabled</span><br><span style="color: hsl(0, 100%, 40%);">-- Skipping TS 4, because not enabled</span><br><span style="color: hsl(0, 100%, 40%);">-- Skipping TS 5, because not enabled</span><br><span style="color: hsl(0, 100%, 40%);">-- Skipping TS 6, because not enabled</span><br><span style="color: hsl(0, 100%, 40%);">-[DL] Assign downlink TS=7 TFI=1</span><br><span style="color: hsl(0, 100%, 40%);">-PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL), 2 TBFs, USFs = 01, TFIs = 00000003.</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Setting Control TS 7</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 80</span><br><span style="color: hsl(0, 100%, 40%);">-MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Attaching DL TBF: TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Trigger downlink assignment on PACCH</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Send downlink assignment on PACCH, because TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) exists</span><br><span style="color: hsl(0, 100%, 40%);">-DL_ASS_TBF(DL-TFI_0){NONE}: Received Event SCHED_ASS</span><br><span style="color: hsl(0, 100%, 40%);">-DL_ASS_TBF(DL-TFI_0){NONE}: state_chg to SEND_ASS</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_1){NULL}: Received Event ASSIGN_ADD_PACCH</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) set ass. type PACCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_1){NULL}: state_chg to ASSIGN</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) Starting timer X2001 [assignment (PACCH)] with 2 sec. 0 microsec</span><br><span> PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654283 is still reserved!</span><br><span> PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654283): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW)</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 1 => 2 (< MAX 10)</span><br><span>@@ -3323,30 +3284,51 @@</span><br><span> PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654374 is still reserved!</span><br><span> PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654374): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING)</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 22 => 23 (< MAX 10)</span><br><span style="color: hsl(0, 100%, 40%);">-DL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG</span><br><span style="color: hsl(0, 100%, 40%);">-PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH)</span><br><span style="color: hsl(0, 100%, 40%);">-+++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++</span><br><span>-------------------------- TX : Packet Downlink Assignment -------------------------</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7)</span><br><span style="color: hsl(0, 100%, 40%);">-DL_ASS_TBF(DL-TFI_0){SEND_ASS}: state_chg to WAIT_ACK</span><br><span style="color: hsl(0, 100%, 40%);">-PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE)</span><br><span style="color: hsl(120, 100%, 40%);">+PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654379): TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED)</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654379, TS=7 (curr FN 2654379)</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet|</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) N3105 0 => 1 (< MAX 8)</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(DL-TFI_0){FINISHED}: Received Event DL_ACKNACK_MISS</span><br><span> Detected FN jump! 2654379 -> 2654409</span><br><span> PDCH(bts=0,trx=0,ts=7) FN=2654409 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span> PDCH(bts=0,trx=0,ts=7) FN=2654409 ------------------------- RX : Uplink Control Block -------------------------</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) FN=2654409 Rx Packet Control Ack (reason=DL_ACK)</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) [UPLINK] DOWNLINK ASSIGNED</span><br><span style="color: hsl(0, 100%, 40%);">-DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: Received Event RX_ASS_CTRL_ACK</span><br><span style="color: hsl(0, 100%, 40%);">-DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: state_chg to NONE</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) free</span><br><span style="color: hsl(0, 100%, 40%);">-PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 01, TFIs = 00000002.</span><br><span style="color: hsl(0, 100%, 40%);">-MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE)</span><br><span style="color: hsl(0, 100%, 40%);">-********** DL-TBF ends here **********</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_0){WAIT_RELEASE}: Deallocated</span><br><span style="color: hsl(0, 100%, 40%);">-UL_ASS_TBF(DL-TFI_0){NONE}: Deallocated</span><br><span style="color: hsl(0, 100%, 40%);">-DL_ASS_TBF(DL-TFI_0){NONE}: Deallocated</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_1){ASSIGN}: Received Event ASSIGN_ACK_PACCH</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(DL-TFI_1){ASSIGN}: state_chg to FLOW</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack</span><br><span style="color: hsl(120, 100%, 40%);">+PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR"</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink acknowledge</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) ack:  (BSN=0)"RRRRRRRRRRRRRRRRRRRRRRRRRRRR"(BSN=27)  R=ACK I=NACK</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) DL analysis, range=0:28, lost=0, recv=28, skipped=0, bsn=0, info='RRRRRRRRRRRRRRRRRRRRRRRRRRRR....................................'</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27)  A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received.</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec</span><br><span style="color: hsl(120, 100%, 40%);">+MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here **********</span><br><span style="color: hsl(120, 100%, 40%);">+MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF</span><br><span style="color: hsl(120, 100%, 40%);">+TBF{NULL}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+UL_ASS_TBF{NONE}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DL_ASS_TBF{NONE}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+[DL] algo A <multi> (suggested TRX: 0): Alloc start</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 0, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 1, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 2, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 3, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 4, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 5, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 6, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+[DL] Assign downlink TS=7 TFI=1</span><br><span style="color: hsl(120, 100%, 40%);">+PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL), 2 TBFs, USFs = 01, TFIs = 00000003.</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Setting Control TS 7</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 80</span><br><span style="color: hsl(120, 100%, 40%);">+MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Attaching DL TBF: TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Trigger downlink assignment on PACCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Send downlink assignment on PACCH, because TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) exists</span><br><span style="color: hsl(120, 100%, 40%);">+DL_ASS_TBF(DL-TFI_0){NONE}: Received Event SCHED_ASS</span><br><span style="color: hsl(120, 100%, 40%);">+DL_ASS_TBF(DL-TFI_0){NONE}: state_chg to SEND_ASS</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(DL-TFI_1){NULL}: Received Event ASSIGN_ADD_PACCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) set ass. type PACCH [prev CCCH:0, PACCH:0]</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(DL-TFI_1){NULL}: state_chg to ASSIGN</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) Starting timer X2001 [assignment (PACCH)] with 2 sec. 0 microsec</span><br><span> PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654383 is still reserved!</span><br><span> PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654383): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING)</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 23 => 24 (< MAX 10)</span><br><span>@@ -3362,6 +3344,29 @@</span><br><span> PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654400 is still reserved!</span><br><span> PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654400): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING)</span><br><span> TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 27 => 28 (< MAX 10)</span><br><span style="color: hsl(120, 100%, 40%);">+DL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG</span><br><span style="color: hsl(120, 100%, 40%);">+PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH)</span><br><span>++++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++</span><br><span style="color: hsl(120, 100%, 40%);">+------------------------- TX : Packet Downlink Assignment -------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7)</span><br><span style="color: hsl(120, 100%, 40%);">+DL_ASS_TBF(DL-TFI_0){SEND_ASS}: state_chg to WAIT_ACK</span><br><span style="color: hsl(120, 100%, 40%);">+PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE)</span><br><span style="color: hsl(120, 100%, 40%);">+PDCH(bts=0,trx=0,ts=7) FN=2654413 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++</span><br><span style="color: hsl(120, 100%, 40%);">+PDCH(bts=0,trx=0,ts=7) FN=2654413 ------------------------- RX : Uplink Control Block -------------------------</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) FN=2654413 Rx Packet Control Ack (reason=DL_ASS)</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) [UPLINK] DOWNLINK ASSIGNED</span><br><span style="color: hsl(120, 100%, 40%);">+DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: Received Event RX_ASS_CTRL_ACK</span><br><span style="color: hsl(120, 100%, 40%);">+DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: state_chg to NONE</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) free</span><br><span style="color: hsl(120, 100%, 40%);">+PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 01, TFIs = 00000002.</span><br><span style="color: hsl(120, 100%, 40%);">+MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE)</span><br><span style="color: hsl(120, 100%, 40%);">+********** DL-TBF ends here **********</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(DL-TFI_0){WAIT_RELEASE}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+UL_ASS_TBF(DL-TFI_0){NONE}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+DL_ASS_TBF(DL-TFI_0){NONE}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(DL-TFI_1){ASSIGN}: Received Event ASSIGN_ACK_PACCH</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(DL-TFI_1){ASSIGN}: state_chg to FLOW</span><br><span> PDCH(bts=0,trx=0,ts=0) Received RTS on disabled TS</span><br><span> PDCH(bts=0,trx=0,ts=1) Received RTS on disabled TS</span><br><span> PDCH(bts=0,trx=0,ts=2) Received RTS on disabled TS</span><br><span>@@ -3551,7 +3556,7 @@</span><br><span> TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent).</span><br><span> PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654448 + 13 = 2654461</span><br><span> TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled DL Acknowledgement polling on PACCH (FN=2654461, TS=7)</span><br><span style="color: hsl(0, 100%, 40%);">-TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654409</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654413</span><br><span> TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on FN=2654461, TS=7</span><br><span> TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 10, CS-1): 0f 03 14 4d 43 20 50 41 43 4b 45 54 20 30 39 20 28 54 42 46 20 32 29 </span><br><span> === end test_tbf_dl_reuse ===</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/25628">change 25628</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-pcu/+/25628"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I3a4b089fe66a99e73e07bd1c690cd4d67752fad9 </div>
<div style="display:none"> Gerrit-Change-Number: 25628 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>