<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16501">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pcu: send UL CONTROL ACK triggered by DL ACK/NACK<br><br>Change-Id: Ib409394257427cfc62da08fe06ce6c001dcf608a<br>---<br>M pcu/PCU_Tests_RAW.ttcn<br>1 file changed, 15 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn</span><br><span>index e4b03c1..bc0cb7f 100644</span><br><span>--- a/pcu/PCU_Tests_RAW.ttcn</span><br><span>+++ b/pcu/PCU_Tests_RAW.ttcn</span><br><span>@@ -741,7 +741,7 @@</span><br><span>       dl_fn := pcu_msg.u.data_req.fn;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function f_rx_rlcmac_dl_block_exp_ack_nack(out RlcmacDlBlock dl_block)</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_rx_rlcmac_dl_block_exp_ack_nack(out RlcmacDlBlock dl_block, out uint32_t poll_fn)</span><br><span> runs on RAW_PCU_Test_CT {</span><br><span>    var uint32_t dl_fn;</span><br><span> </span><br><span>@@ -750,6 +750,8 @@</span><br><span>                setverdict(fail, "Failed to match Packet Uplink ACK / NACK");</span><br><span>              mtc.stop;</span><br><span>    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   poll_fn := dl_fn + f_rrbp_fn_delay(dl_block.ctrl.mac_hdr.rrbp);</span><br><span> }</span><br><span> </span><br><span> private function f_rx_rlcmac_dl_block_exp_dummy(out RlcmacDlBlock dl_block)</span><br><span>@@ -1084,6 +1086,7 @@</span><br><span>      var PCUIF_Message pcu_msg;</span><br><span>   var octetstring data;</span><br><span>        var boolean ok;</span><br><span style="color: hsl(120, 100%, 40%);">+       var uint32_t unused_fn;</span><br><span> </span><br><span>  /* Initialize the PCU interface abstraction */</span><br><span>       f_init_raw(testcasename());</span><br><span>@@ -1135,7 +1138,7 @@</span><br><span>          f_tx_rlcmac_ul_block(ul_data, lqual * 10);</span><br><span> </span><br><span>               /* Enqueue RTS.req, expect DATA.req with UL ACK from the PCU */</span><br><span style="color: hsl(0, 100%, 40%);">-         f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);</span><br><span style="color: hsl(120, 100%, 40%);">+          f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);</span><br><span> </span><br><span>          log("Rx Packet Uplink ACK / NACK with Channel Coding Command: ",</span><br><span>               dl_block.ctrl.payload.u.ul_ack_nack.gprs.ch_coding_cmd);</span><br><span>@@ -1167,6 +1170,7 @@</span><br><span>         var boolean ok;</span><br><span>      var integer lqual_cb;</span><br><span>        var ChCodingCommand last_ch_coding;</span><br><span style="color: hsl(120, 100%, 40%);">+   var uint32_t unused_fn;</span><br><span> </span><br><span>  /* Initialize the PCU interface abstraction */</span><br><span>       f_init_raw(testcasename());</span><br><span>@@ -1211,7 +1215,7 @@</span><br><span>          f_tx_rlcmac_ul_block(ul_data, lqual_cb);</span><br><span> </span><br><span>                 /* Enqueue RTS.req, expect DATA.req with UL ACK from the PCU */</span><br><span style="color: hsl(0, 100%, 40%);">-         f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);</span><br><span style="color: hsl(120, 100%, 40%);">+          f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);</span><br><span>              last_ch_coding := dl_block.ctrl.payload.u.ul_ack_nack.gprs.ch_coding_cmd;</span><br><span>    }</span><br><span> </span><br><span>@@ -1235,7 +1239,7 @@</span><br><span>                f_tx_rlcmac_ul_block(ul_data, 0); /* 0 dB, make sure we downgrade CS */</span><br><span> </span><br><span>          /* Enqueue RTS.req, expect DATA.req with UL ACK from the PCU */</span><br><span style="color: hsl(0, 100%, 40%);">-         f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);</span><br><span style="color: hsl(120, 100%, 40%);">+          f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);</span><br><span> </span><br><span>          last_ch_coding := dl_block.ctrl.payload.u.ul_ack_nack.gprs.ch_coding_cmd;</span><br><span>    }</span><br><span>@@ -1254,6 +1258,7 @@</span><br><span>    var RlcmacDlBlock dl_block;</span><br><span>  var boolean ok;</span><br><span>      var ChCodingCommand last_ch_coding;</span><br><span style="color: hsl(120, 100%, 40%);">+   var uint32_t unused_fn;</span><br><span> </span><br><span>  /* Initialize the PCU interface abstraction */</span><br><span>       f_init_raw(testcasename());</span><br><span>@@ -1295,7 +1300,7 @@</span><br><span>          f_tx_rlcmac_ul_block(ul_data, 40*10); /* 40 dB */</span><br><span> </span><br><span>                /* Enqueue RTS.req, expect DATA.req with UL ACK from the PCU */</span><br><span style="color: hsl(0, 100%, 40%);">-         f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);</span><br><span style="color: hsl(120, 100%, 40%);">+          f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);</span><br><span> </span><br><span>          last_ch_coding := dl_block.ctrl.payload.u.ul_ack_nack.gprs.ch_coding_cmd;</span><br><span>    }</span><br><span>@@ -1316,6 +1321,7 @@</span><br><span>    var PCUIF_Message pcu_msg;</span><br><span>   var octetstring data;</span><br><span>        var boolean ok;</span><br><span style="color: hsl(120, 100%, 40%);">+       var uint32_t unused_fn;</span><br><span>      var OCT4 tlli := '00000001'O;</span><br><span> </span><br><span>    /* Initialize NS/BSSGP side */</span><br><span>@@ -1347,7 +1353,7 @@</span><br><span> </span><br><span>   /* Send one UL block and make sure it is ACKED fine */</span><br><span>       f_tx_rlcmac_ul_n_blocks(ul_tbf_ass, 1);</span><br><span style="color: hsl(0, 100%, 40%);">- f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);</span><br><span style="color: hsl(120, 100%, 40%);">+  f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);</span><br><span>      /* UL block should be received in SGSN */</span><br><span>    BSSGP[0].receive(tr_BSSGP_UL_UD(tlli, mp_gb_cfg.cell_id));</span><br><span> </span><br><span>@@ -1403,7 +1409,9 @@</span><br><span> </span><br><span>   /* Send one UL block and make sure it is ACKED fine */</span><br><span>       f_tx_rlcmac_ul_n_blocks(ul_tbf_ass, 1);</span><br><span style="color: hsl(0, 100%, 40%);">- f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);</span><br><span style="color: hsl(120, 100%, 40%);">+  f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn);</span><br><span style="color: hsl(120, 100%, 40%);">+        /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_tx_rlcmac_ul_block(ts_RLCMAC_CTRL_ACK(tlli), 0, sched_fn);</span><br><span> </span><br><span>     /* UL block should be received in SGSN */</span><br><span>    BSSGP[0].receive(tr_BSSGP_UL_UD(tlli, mp_gb_cfg.cell_id));</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16501">change 16501</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/+/16501"/><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: Ib409394257427cfc62da08fe06ce6c001dcf608a </div>
<div style="display:none"> Gerrit-Change-Number: 16501 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </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: fixeria <axilirator@gmail.com> </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>