<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/12985">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface<br><br>The SNS-enabled Gb interface has no RESET/BLOCK/UNBLOCK procedures,<br>but introduces a bunch of new SNS procedures.  Most importantly the<br>SNS-SIZE and SNS-CONFIG procedures.<br><br>Change-Id: I0fe3d4579960bab0494c294ec7ab8032feed4fb2<br>Related: OS#3372<br>---<br>A pcu/PCU_Tests_RAW_SNS.ttcn<br>1 file changed, 86 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn</span><br><span>new file mode 100644</span><br><span>index 0000000..fa906a8</span><br><span>--- /dev/null</span><br><span>+++ b/pcu/PCU_Tests_RAW_SNS.ttcn</span><br><span>@@ -0,0 +1,86 @@</span><br><span style="color: hsl(120, 100%, 40%);">+module PCU_Tests_RAW_SNS {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+import from Osmocom_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from PCU_Tests all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from PCU_Tests_RAW all;</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%);">+ * Modern Gb/IP bring-up test cases using IP Sub-Network Service (SNS)</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%);">+/* PCU-originated SNS-SIZE: successful case */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_sns_po_size_success() runs on RAW_NS_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+    f_init_ns_codec();</span><br><span style="color: hsl(120, 100%, 40%);">+    f_init_pcuif();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_incoming_sns_size();</span><br><span style="color: hsl(120, 100%, 40%);">+        f_sleep(1.0);</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(pass);</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%);">+/* PCU-originated SNS-SIZE: NACK from our side */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_sns_po_size_nack() runs on RAW_NS_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec();</span><br><span style="color: hsl(120, 100%, 40%);">+    f_init_pcuif();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_incoming_sns_size(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED);</span><br><span style="color: hsl(120, 100%, 40%);">+      /* FIXME: ensure we don't get a SNS-CONFIG */</span><br><span style="color: hsl(120, 100%, 40%);">+     /* FIXME: ensure we get re-transmitted SNS-SIZE attempts */</span><br><span style="color: hsl(120, 100%, 40%);">+   f_sleep(10.0);</span><br><span style="color: hsl(120, 100%, 40%);">+        setverdict(pass);</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%);">+/* PCU-originated SNS-CONFIG: successful case */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_sns_po_config_success() runs on RAW_NS_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init_ns_codec();</span><br><span style="color: hsl(120, 100%, 40%);">+    f_init_pcuif();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_incoming_sns_size();</span><br><span style="color: hsl(120, 100%, 40%);">+        f_incoming_sns_config();</span><br><span style="color: hsl(120, 100%, 40%);">+      f_sleep(1.0);</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(pass);</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%);">+/* PCU-originated SNS-CONFIG: successful case */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_sns_po_config_nack() runs on RAW_NS_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+        f_init_ns_codec();</span><br><span style="color: hsl(120, 100%, 40%);">+    f_init_pcuif();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_incoming_sns_size();</span><br><span style="color: hsl(120, 100%, 40%);">+        f_incoming_sns_config(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED);</span><br><span style="color: hsl(120, 100%, 40%);">+    /* FIXME: ensure we get re-transmitted SNS-CONFIG attempts */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_sleep(10.0);</span><br><span style="color: hsl(120, 100%, 40%);">+        setverdict(pass);</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%);">+/* SGSN-originated SNS-SIZE: successful case */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_sns_so_config_success() runs on RAW_NS_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+    f_init_ns_codec();</span><br><span style="color: hsl(120, 100%, 40%);">+    f_init_pcuif();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_incoming_sns_size();</span><br><span style="color: hsl(120, 100%, 40%);">+        f_incoming_sns_config();</span><br><span style="color: hsl(120, 100%, 40%);">+      f_outgoing_sns_config();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */</span><br><span style="color: hsl(120, 100%, 40%);">+  as_rx_alive_tx_ack(oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+  activate(as_rx_alive_tx_ack());</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     f_outgoing_ns_alive();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Expect BVC-RESET for signaling (0) and ptp BVCI */</span><br><span style="color: hsl(120, 100%, 40%);">+ as_rx_bvc_reset_tx_ack(0, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+   as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvci, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+      as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */</span><br><span style="color: hsl(120, 100%, 40%);">+    as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+ activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci));</span><br><span style="color: hsl(120, 100%, 40%);">+        setverdict(pass);</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%);">+control {</span><br><span style="color: hsl(120, 100%, 40%);">+     execute( TC_sns_po_size_success() );</span><br><span style="color: hsl(120, 100%, 40%);">+  execute( TC_sns_po_size_nack() );</span><br><span style="color: hsl(120, 100%, 40%);">+     execute( TC_sns_po_config_success() );</span><br><span style="color: hsl(120, 100%, 40%);">+        execute( TC_sns_po_config_nack() );</span><br><span style="color: hsl(120, 100%, 40%);">+   execute( TC_sns_so_config_success() );</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></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12985">change 12985</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/12985"/><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-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I0fe3d4579960bab0494c294ec7ab8032feed4fb2 </div>
<div style="display:none"> Gerrit-Change-Number: 12985 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-CC: Daniel Willmann <dwillmann@sysmocom.de> </div>