<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22856">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pcu: Convert f_handle_pkt_neighbor_cell_data impl to use alt statements<br><br>Change-Id: Iac9306cdcf16d9eaa750f6ca10f0c9df6f2c7453<br>---<br>M pcu/GPRS_Components.ttcn<br>M pcu/PCU_Tests.ttcn<br>2 files changed, 111 insertions(+), 73 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/22856/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn</span><br><span>index 34b7e79..e59c18d 100644</span><br><span>--- a/pcu/GPRS_Components.ttcn</span><br><span>+++ b/pcu/GPRS_Components.ttcn</span><br><span>@@ -533,6 +533,17 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+altstep as_ms_rx_fail_dummy(inout GprsMS ms, template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on MS_BTS_IFACE_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ var BTS_PDTCH_Block data_msg;</span><br><span style="color: hsl(120, 100%, 40%);">+ [] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH),</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_RLCMAC_DUMMY_CTRL())) -> value data_msg {</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "Unexpected Dummy Ctrl block ", data_msg);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> altstep as_ms_rx_pkt_ass_pacch(inout GprsMS ms, out uint32_t poll_fn,</span><br><span> template RlcmacDlBlock t_pkt_ass := ?,</span><br><span> template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum,</span><br><span>@@ -807,6 +818,101 @@</span><br><span> BTS.send(pcu_msg_cnf);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+altstep as_ms_rx_pkt_neighbor_cell_data(inout GprsMS ms, octetstring exp_si,</span><br><span style="color: hsl(120, 100%, 40%);">+ inout uint5_t exp_container_idx /* := 0 */,</span><br><span style="color: hsl(120, 100%, 40%);">+ inout integer si_offset /* := 0 */,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on MS_BTS_IFACE_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ var integer len;</span><br><span style="color: hsl(120, 100%, 40%);">+ var octetstring exp_si_chunk;</span><br><span style="color: hsl(120, 100%, 40%);">+ var GlobalTfi gtfi := { is_dl_tfi := false, tfi := ms.ul_tbf.tfi };</span><br><span style="color: hsl(120, 100%, 40%);">+ var BTS_PDTCH_Block data_msg;</span><br><span style="color: hsl(120, 100%, 40%);">+ var boolean do_repeat := true;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ [] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH),</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_NEIGH_CELL_DATA(gtfi, exp_container_idx))</span><br><span style="color: hsl(120, 100%, 40%);">+ )) -> value data_msg {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ var PacketNeighbourCellData neigh_data := data_msg.dl_block.ctrl.payload.u.neighbour_cell_data;</span><br><span style="color: hsl(120, 100%, 40%);">+ var PacketNeighbourCellDataContainer cont := neigh_data.container_list[0];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (cont.cd_length == 31) { /* continues on next message */</span><br><span style="color: hsl(120, 100%, 40%);">+ len := lengthof(cont.container_data);</span><br><span style="color: hsl(120, 100%, 40%);">+ exp_si_chunk := substr(exp_si, si_offset, len);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (cont.container_data != exp_si_chunk) {</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ",</span><br><span style="color: hsl(120, 100%, 40%);">+ cont.container_data, " vs exp ", exp_si_chunk);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ si_offset := si_offset + len;</span><br><span style="color: hsl(120, 100%, 40%);">+ } else if (cont.cd_length == 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ /* we are done */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (si_offset != lengthof(exp_si)) {</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "Rx unexpectd SI length ", si_offset,</span><br><span style="color: hsl(120, 100%, 40%);">+ " vs exp ", lengthof(exp_si));</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ do_repeat := false;</span><br><span style="color: hsl(120, 100%, 40%);">+ } else { /* data length, last message */</span><br><span style="color: hsl(120, 100%, 40%);">+ len := cont.cd_length;</span><br><span style="color: hsl(120, 100%, 40%);">+ exp_si_chunk := substr(exp_si, si_offset, len);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (cont.container_data != exp_si_chunk) {</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ",</span><br><span style="color: hsl(120, 100%, 40%);">+ cont.container_data, " vs exp ", exp_si_chunk);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ si_offset := si_offset + len;</span><br><span style="color: hsl(120, 100%, 40%);">+ /* we are done */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (si_offset != lengthof(exp_si)) {</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "Rx unexpectd SI length ", si_offset,</span><br><span style="color: hsl(120, 100%, 40%);">+ " vs exp ", lengthof(exp_si));</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ do_repeat := false;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ exp_container_idx := exp_container_idx + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (do_repeat) {</span><br><span style="color: hsl(120, 100%, 40%);">+ BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ sapi := PCU_IF_SAPI_PDTCH, fn := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+ arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)),</span><br><span style="color: hsl(120, 100%, 40%);">+ block_nr := nr.blk_nr));</span><br><span style="color: hsl(120, 100%, 40%);">+ repeat;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Handle groups of PKT NEIGHBOUR CELL DATA packets */</span><br><span style="color: hsl(120, 100%, 40%);">+function f_ms_handle_pkt_neighbor_cell_data(inout GprsMS ms, octetstring exp_si)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on MS_BTS_IFACE_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ var uint5_t exp_container_idx := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ var integer si_offset := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ var BTS_PDTCH_Block data_msg;</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ sapi := PCU_IF_SAPI_PDTCH, fn := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+ arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)),</span><br><span style="color: hsl(120, 100%, 40%);">+ block_nr := nr.blk_nr));</span><br><span style="color: hsl(120, 100%, 40%);">+ alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [exp_container_idx == 0] as_ms_rx_ignore_dummy(ms, nr);</span><br><span style="color: hsl(120, 100%, 40%);">+ [exp_container_idx > 0] as_ms_rx_fail_dummy(ms, nr);</span><br><span style="color: hsl(120, 100%, 40%);">+ [] as_ms_rx_pkt_neighbor_cell_data(ms, exp_si, exp_container_idx, si_offset, nr);</span><br><span style="color: hsl(120, 100%, 40%);">+ [] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH),</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_RLCMAC_DL_CTRL(?, ?)</span><br><span style="color: hsl(120, 100%, 40%);">+ )) -> value data_msg {</span><br><span style="color: hsl(120, 100%, 40%);">+ var GlobalTfi gtfi := { is_dl_tfi := false, tfi := ms.ul_tbf.tfi };</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "Rx unexpected DL block: ", data_msg.dl_block, " vs exp ",</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_NEIGH_CELL_DATA(gtfi, exp_container_idx)));</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> ////////////////////////</span><br><span> // Low level APIs</span><br><span> ////////////////////////</span><br><span>diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn</span><br><span>index cd7a4ec..a937bf4 100644</span><br><span>--- a/pcu/PCU_Tests.ttcn</span><br><span>+++ b/pcu/PCU_Tests.ttcn</span><br><span>@@ -3544,74 +3544,6 @@</span><br><span> return dl_block;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Handle groups of PKT NEIGHBOUR CELL DATA packets */</span><br><span style="color: hsl(0, 100%, 40%);">-private function f_handle_pkt_neighbor_cell_data(inout GprsMS ms, octetstring exp_si)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on RAW_PCU_Test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">- var RlcmacDlBlock dl_block;</span><br><span style="color: hsl(0, 100%, 40%);">- var uint32_t sched_fn;</span><br><span style="color: hsl(0, 100%, 40%);">- var integer i := 0;</span><br><span style="color: hsl(0, 100%, 40%);">- var uint5_t exp_container_idx := 0;</span><br><span style="color: hsl(0, 100%, 40%);">- var integer si_offset := 0;</span><br><span style="color: hsl(0, 100%, 40%);">- var integer len;</span><br><span style="color: hsl(0, 100%, 40%);">- var octetstring exp_si_chunk;</span><br><span style="color: hsl(0, 100%, 40%);">- var GlobalTfi gtfi := { is_dl_tfi := false, tfi := ms.ul_tbf.tfi };</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- dl_block := f_skip_dummy(50, sched_fn);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- while (true) {</span><br><span style="color: hsl(0, 100%, 40%);">- var template RlcmacDlCtrlMsg exp_msg; exp_msg :=</span><br><span style="color: hsl(0, 100%, 40%);">- tr_RlcMacDlCtrl_PKT_NEIGH_CELL_DATA(gtfi, exp_container_idx);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Make sure last Dl block is a Pkt Neighbour Cell Data */</span><br><span style="color: hsl(0, 100%, 40%);">- if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, exp_msg))) {</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail, "Rx unexpected DL block: ", dl_block, " vs exp ", tr_RLCMAC_DL_CTRL(?, exp_msg));</span><br><span style="color: hsl(0, 100%, 40%);">- f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- var PacketNeighbourCellData neigh_data := dl_block.ctrl.payload.u.neighbour_cell_data;</span><br><span style="color: hsl(0, 100%, 40%);">- var PacketNeighbourCellDataContainer cont := neigh_data.container_list[0];</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if (cont.cd_length == 31) { /* continues on next message */</span><br><span style="color: hsl(0, 100%, 40%);">- len := lengthof(cont.container_data);</span><br><span style="color: hsl(0, 100%, 40%);">- exp_si_chunk := substr(exp_si, si_offset, len);</span><br><span style="color: hsl(0, 100%, 40%);">- if (cont.container_data != exp_si_chunk) {</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ",</span><br><span style="color: hsl(0, 100%, 40%);">- cont.container_data, " vs exp ", exp_si_chunk);</span><br><span style="color: hsl(0, 100%, 40%);">- f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- si_offset := si_offset + len;</span><br><span style="color: hsl(0, 100%, 40%);">- } else if (cont.cd_length == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* we are done */</span><br><span style="color: hsl(0, 100%, 40%);">- if (si_offset != lengthof(exp_si)) {</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail, "Rx unexpectd SI length ", si_offset,</span><br><span style="color: hsl(0, 100%, 40%);">- " vs exp ", lengthof(exp_si));</span><br><span style="color: hsl(0, 100%, 40%);">- f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span style="color: hsl(0, 100%, 40%);">- } else { /* data length, last message */</span><br><span style="color: hsl(0, 100%, 40%);">- len := cont.cd_length;</span><br><span style="color: hsl(0, 100%, 40%);">- exp_si_chunk := substr(exp_si, si_offset, len);</span><br><span style="color: hsl(0, 100%, 40%);">- if (cont.container_data != exp_si_chunk) {</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ",</span><br><span style="color: hsl(0, 100%, 40%);">- cont.container_data, " vs exp ", exp_si_chunk);</span><br><span style="color: hsl(0, 100%, 40%);">- f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(0, 100%, 40%);">- return;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- si_offset := si_offset + len;</span><br><span style="color: hsl(0, 100%, 40%);">- /* we are done */</span><br><span style="color: hsl(0, 100%, 40%);">- if (si_offset != lengthof(exp_si)) {</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail, "Rx unexpectd SI length ", si_offset,</span><br><span style="color: hsl(0, 100%, 40%);">- " vs exp ", lengthof(exp_si));</span><br><span style="color: hsl(0, 100%, 40%);">- f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- exp_container_idx := exp_container_idx + 1;</span><br><span style="color: hsl(0, 100%, 40%);">- f_rx_rlcmac_dl_block(dl_block, sched_fn);</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- return;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> private function f_outbound_nacc_rim_tx_resp(PCUIF_info_ind info_ind)</span><br><span> runs on RAW_PCU_Test_CT {</span><br><span> var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1),</span><br><span>@@ -3693,7 +3625,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Announce SI back to MS, continue NACC procedure */</span><br><span style="color: hsl(0, 100%, 40%);">- f_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_ms_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span> </span><br><span> /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */</span><br><span> f_rx_rlcmac_dl_block(dl_block, sched_fn);</span><br><span>@@ -4213,7 +4145,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Announce SI back to MS, continue NACC procedure */</span><br><span style="color: hsl(0, 100%, 40%);">- f_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_ms_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span> </span><br><span> /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */</span><br><span> f_rx_rlcmac_dl_block(dl_block, sched_fn);</span><br><span>@@ -4296,7 +4228,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Announce SI back to MS, continue NACC procedure */</span><br><span style="color: hsl(0, 100%, 40%);">- f_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_ms_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span> </span><br><span> /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */</span><br><span> f_rx_rlcmac_dl_block(dl_block, sched_fn);</span><br><span>@@ -4379,7 +4311,7 @@</span><br><span> as_outbound_nacc_rim_resolve(info_ind);</span><br><span> </span><br><span> /* Announce SI back to MS, continue NACC procedure */</span><br><span style="color: hsl(0, 100%, 40%);">- f_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_ms_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span> </span><br><span> /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */</span><br><span> f_rx_rlcmac_dl_block(dl_block, sched_fn);</span><br><span>@@ -4464,7 +4396,7 @@</span><br><span> as_outbound_nacc_rim_resolve(info_ind);</span><br><span> </span><br><span> /* Announce SI back to MS, continue NACC procedure */</span><br><span style="color: hsl(0, 100%, 40%);">- f_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_ms_handle_pkt_neighbor_cell_data(ms, si_default);</span><br><span> </span><br><span> /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */</span><br><span> f_rx_rlcmac_dl_block(dl_block, sched_fn);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22856">change 22856</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-ttcn3-hacks/+/22856"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iac9306cdcf16d9eaa750f6ca10f0c9df6f2c7453 </div>
<div style="display:none"> Gerrit-Change-Number: 22856 </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-MessageType: newchange </div>