<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22628">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pcu: Introduce test TC_nacc_outbound_success_no_ctrl_ack<br><br>Related: OS#4909<br>Change-Id: I371033604db8ae845e7c3fb03aef1821520064d9<br>---<br>M pcu/PCU_Tests.ttcn<br>1 file changed, 59 insertions(+), 2 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/28/22628/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn</span><br><span>index 1d4e129..5f44e57 100644</span><br><span>--- a/pcu/PCU_Tests.ttcn</span><br><span>+++ b/pcu/PCU_Tests.ttcn</span><br><span>@@ -3685,7 +3685,8 @@</span><br><span> </span><br><span> /* Start NACC from MS side */</span><br><span> private function f_outbound_nacc_success(inout GprsMS ms, PCUIF_info_ind info_ind,</span><br><span style="color: hsl(0, 100%, 40%);">-                                        boolean exp_rac_ci_query := true, boolean exp_si_query := true)</span><br><span style="color: hsl(120, 100%, 40%);">+                                       boolean exp_rac_ci_query := true, boolean exp_si_query := true,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       boolean skip_final_ctrl_ack := false)</span><br><span> runs on RAW_PCU_Test_CT {</span><br><span>  var template (value) RlcmacUlCtrlMsg cell_chf_notif;</span><br><span>         var RlcmacDlBlock dl_block;</span><br><span>@@ -3745,7 +3746,7 @@</span><br><span>          f_shutdown(__BFILE__, __LINE__);</span><br><span>     }</span><br><span>    /* PKT CELL CHG CONTINUE ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (dl_block.ctrl.mac_hdr.rrbp_valid) {</span><br><span style="color: hsl(120, 100%, 40%);">+       if (not skip_final_ctrl_ack and dl_block.ctrl.mac_hdr.rrbp_valid) {</span><br><span>          sched_fn := f_rrbp_ack_fn(sched_fn, dl_block.ctrl.mac_hdr.rrbp);</span><br><span>             f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);</span><br><span>         }</span><br><span>@@ -3792,6 +3793,61 @@</span><br><span>   f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Verify Pkt Cell Change Continue is retransmitted if not CTRL ACKed */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_nacc_outbound_success_no_ctrl_ack() runs on RAW_PCU_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ var PollFnCtx pollctx;</span><br><span style="color: hsl(120, 100%, 40%);">+        var GprsMS ms;</span><br><span style="color: hsl(120, 100%, 40%);">+        var RlcmacDlBlock dl_block;</span><br><span style="color: hsl(120, 100%, 40%);">+   var uint32_t sched_fn;</span><br><span style="color: hsl(120, 100%, 40%);">+        var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default);</span><br><span style="color: hsl(120, 100%, 40%);">+        var MultislotCap_GPRS mscap_gprs := {</span><br><span style="color: hsl(120, 100%, 40%);">+         gprsmultislotclass := '00011'B,</span><br><span style="color: hsl(120, 100%, 40%);">+               gprsextendeddynalloccap := '0'B</span><br><span style="color: hsl(120, 100%, 40%);">+       };</span><br><span style="color: hsl(120, 100%, 40%);">+    var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Initialize osmo-bsc emulation neighbor resolution CTRL port */</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Initialize NS/BSSGP side */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_init_bssgp();</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Initialize GPRS MS side */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_gprs_ms();</span><br><span style="color: hsl(120, 100%, 40%);">+     ms := g_ms[0]; /* We only use first MS in this test */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Initialize the PCU interface abstraction */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_init_raw(testcasename(), info_ind);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Make sure we are not affected by full cache from previous tests */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_pcuvty_flush_neigh_caches();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Establish BSSGP connection to the PCU */</span><br><span style="color: hsl(120, 100%, 40%);">+   f_bssgp_establish();</span><br><span style="color: hsl(120, 100%, 40%);">+  f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Send PACKET RESOURCE REQUEST */</span><br><span style="color: hsl(120, 100%, 40%);">+    pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap));</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Start NACC from MS side, avoid sending final CTRL ACK */</span><br><span style="color: hsl(120, 100%, 40%);">+   f_outbound_nacc_success(ms, info_ind, skip_final_ctrl_ack := true);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Wait until we receive something non-dummy */</span><br><span style="color: hsl(120, 100%, 40%);">+       dl_block := f_skip_dummy(0, sched_fn);</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Make sure it is a Pkt Cell Chg Continue (retransmitted)*/</span><br><span style="color: hsl(120, 100%, 40%);">+  if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) {</span><br><span style="color: hsl(120, 100%, 40%);">+               setverdict(fail, "Rx unexpected DL block: ", dl_block);</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* PKT CELL CHG CONTINUE ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */</span><br><span style="color: hsl(120, 100%, 40%);">+     if (dl_block.ctrl.mac_hdr.rrbp_valid) {</span><br><span style="color: hsl(120, 100%, 40%);">+               sched_fn := f_rrbp_ack_fn(sched_fn, dl_block.ctrl.mac_hdr.rrbp);</span><br><span style="color: hsl(120, 100%, 40%);">+              f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);</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%);">+   f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Verify PCU handles outbound Network Assisted Cell Change Cell Change (NACC, TS 44.060 sec 8.8) twice, the second time using the caches  */</span><br><span> testcase TC_nacc_outbound_success_twice() runs on RAW_PCU_Test_CT {</span><br><span>         var PollFnCtx pollctx;</span><br><span>@@ -4249,6 +4305,7 @@</span><br><span> </span><br><span>   execute( TC_pcuif_info_ind_subsequent() );</span><br><span>   execute( TC_nacc_outbound_success() );</span><br><span style="color: hsl(120, 100%, 40%);">+        execute( TC_nacc_outbound_success_no_ctrl_ack() );</span><br><span>   execute( TC_nacc_outbound_success_twice() );</span><br><span>         execute( TC_nacc_outbound_success_twice_nocache() );</span><br><span>         execute( TC_nacc_outbound_rac_ci_resolve_conn_refused() );</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22628">change 22628</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/+/22628"/><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: I371033604db8ae845e7c3fb03aef1821520064d9 </div>
<div style="display:none"> Gerrit-Change-Number: 22628 </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>