<p>lynxis lazus has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">WIP: Introduce NS test cases<br><br>Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b<br>---<br>M library/Osmocom_Gb_Types.ttcn<br>A ns/NS_Tests.default<br>A ns/NS_Tests.fr.cfg<br>A ns/NS_Tests.ttcn<br>A ns/NS_Tests.udp.cfg<br>A ns/expected-results.xml<br>A ns/gen_links.sh<br>A ns/osmo-ns.fr.cfg<br>A ns/osmo-ns.udp.cfg<br>A ns/regen_makefile.sh<br>10 files changed, 683 insertions(+), 0 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/91/22091/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn</span><br><span>index c532772..c02e61e 100644</span><br><span>--- a/library/Osmocom_Gb_Types.ttcn</span><br><span>+++ b/library/Osmocom_Gb_Types.ttcn</span><br><span>@@ -14,6 +14,14 @@</span><br><span>       type uint16_t Nsei;</span><br><span>  type uint16_t BssgpBvci;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  type enumerated OsmoNsDialect {</span><br><span style="color: hsl(120, 100%, 40%);">+               NS2_DIALECT_UNDEF               ('00'H),</span><br><span style="color: hsl(120, 100%, 40%);">+              NS2_DIALECT_STATIC_ALIVE        ('01'H),</span><br><span style="color: hsl(120, 100%, 40%);">+              NS2_DIALECT_STATIC_RESETBLOCK   ('02'H),</span><br><span style="color: hsl(120, 100%, 40%);">+              NS2_DIALECT_IPACCESS            ('03'H),</span><br><span style="color: hsl(120, 100%, 40%);">+              NS2_DIALECT_SNS                 ('04'H)</span><br><span style="color: hsl(120, 100%, 40%);">+       };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         /* TS 48.016 10.3.7 */</span><br><span>       type enumerated NsPduType {</span><br><span>          NS_PDUT_NS_UNITDATA     ('00000000'B),</span><br><span>diff --git a/ns/NS_Tests.default b/ns/NS_Tests.default</span><br><span>new file mode 100644</span><br><span>index 0000000..951c1c2</span><br><span>--- /dev/null</span><br><span>+++ b/ns/NS_Tests.default</span><br><span>@@ -0,0 +1,27 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[ORDERED_INCLUDE]</span><br><span style="color: hsl(120, 100%, 40%);">+# Common configuration, shared between test suites</span><br><span style="color: hsl(120, 100%, 40%);">+"../Common.cfg"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[LOGGING]</span><br><span style="color: hsl(120, 100%, 40%);">+#*.FileMask := LOG_ALL</span><br><span style="color: hsl(120, 100%, 40%);">+ConsoleMask := ERROR | WARNING | TESTCASE | TIMEROP_START | USER</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[MODULE_PARAMETERS]</span><br><span style="color: hsl(120, 100%, 40%);">+Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoNSdummy";</span><br><span style="color: hsl(120, 100%, 40%);">+StatsD_Checker.mp_enable_stats := true;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[TESTPORT_PARAMETERS]</span><br><span style="color: hsl(120, 100%, 40%);">+*.NSVTY.CTRL_MODE := "client"</span><br><span style="color: hsl(120, 100%, 40%);">+*.NSVTY.CTRL_HOSTNAME := "127.0.0.1"</span><br><span style="color: hsl(120, 100%, 40%);">+*.NSVTY.CTRL_PORTNUM := "4240"</span><br><span style="color: hsl(120, 100%, 40%);">+*.NSVTY.CTRL_LOGIN_SKIPPED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.NSVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.NSVTY.CTRL_READMODE := "buffered"</span><br><span style="color: hsl(120, 100%, 40%);">+*.NSVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.NSVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.NSVTY.PROMPT1 := "OsmoNSdummy> "</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.PROMPT1 := "OsmoNSdummy> "</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[MAIN_CONTROLLER]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[EXECUTE]</span><br><span>diff --git a/ns/NS_Tests.fr.cfg b/ns/NS_Tests.fr.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..91fb5c5</span><br><span>--- /dev/null</span><br><span>+++ b/ns/NS_Tests.fr.cfg</span><br><span>@@ -0,0 +1,57 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[ORDERED_INCLUDE]</span><br><span style="color: hsl(120, 100%, 40%);">+# Common configuration, shared between test suites</span><br><span style="color: hsl(120, 100%, 40%);">+"../Common.cfg"</span><br><span style="color: hsl(120, 100%, 40%);">+# testsuite specific configuration, not expected to change</span><br><span style="color: hsl(120, 100%, 40%);">+"./NS_Tests.default"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[LOGGING]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[MODULE_PARAMETERS]</span><br><span style="color: hsl(120, 100%, 40%);">+NS_Tests.mp_dialect := NS2_DIALECT_IPACCESS</span><br><span style="color: hsl(120, 100%, 40%);">+NS_Tests.mp_nsconfig := {</span><br><span style="color: hsl(120, 100%, 40%);">+      nsei := 2001,</span><br><span style="color: hsl(120, 100%, 40%);">+ role_sgsn := false,</span><br><span style="color: hsl(120, 100%, 40%);">+   handle_sns := false,</span><br><span style="color: hsl(120, 100%, 40%);">+  nsvc := {</span><br><span style="color: hsl(120, 100%, 40%);">+             {</span><br><span style="color: hsl(120, 100%, 40%);">+                     provider := {</span><br><span style="color: hsl(120, 100%, 40%);">+                         fr := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       netdev := "hdlc1",</span><br><span style="color: hsl(120, 100%, 40%);">+                                  dlci := 16</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%);">+                    nsvci := 1</span><br><span style="color: hsl(120, 100%, 40%);">+            }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                  provider := {</span><br><span style="color: hsl(120, 100%, 40%);">+                         fr := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       netdev := "hdlc2",</span><br><span style="color: hsl(120, 100%, 40%);">+                                  dlci := 17</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%);">+                    nsvci := 2</span><br><span style="color: hsl(120, 100%, 40%);">+            }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                  provider := {</span><br><span style="color: hsl(120, 100%, 40%);">+                         fr := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       netdev := "hdlc3",</span><br><span style="color: hsl(120, 100%, 40%);">+                                  dlci := 18</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%);">+                    nsvci := 3</span><br><span style="color: hsl(120, 100%, 40%);">+            }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                  provider := {</span><br><span style="color: hsl(120, 100%, 40%);">+                         fr := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       netdev := "hdlc4",</span><br><span style="color: hsl(120, 100%, 40%);">+                                  dlci := 19</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%);">+                    nsvci := 4</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%);">+[TESTPORT_PARAMETERS]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[MAIN_CONTROLLER]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[EXECUTE]</span><br><span style="color: hsl(120, 100%, 40%);">+NS_Tests.control</span><br><span>diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn</span><br><span>new file mode 100644</span><br><span>index 0000000..26bef20</span><br><span>--- /dev/null</span><br><span>+++ b/ns/NS_Tests.ttcn</span><br><span>@@ -0,0 +1,338 @@</span><br><span style="color: hsl(120, 100%, 40%);">+module NS_Tests {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Osmocom NS test suite for NS over framerelay or udp ip.access style in TTCN-3</span><br><span style="color: hsl(120, 100%, 40%);">+ * (C) 2021 sysmocom s.f.m.c. GmbH <info@sysmocom.de</span><br><span style="color: hsl(120, 100%, 40%);">+ * Author: Alexander Couzens <lynxis@fe80.eu></span><br><span style="color: hsl(120, 100%, 40%);">+ * All rights reserved.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Released under the terms of GNU General Public License, Version 2 or</span><br><span style="color: hsl(120, 100%, 40%);">+ * (at your option) any later version.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * SPDX-License-Identifier: GPL-2.0-or-later</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%);">+import from General_Types all;</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 Osmocom_Gb_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from NS_CodecPort all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from NS_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from BSSGP_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from UD_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from NS_CodecPort_CtrlFunct all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from NS_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from Native_Functions all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from IPL4asp_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAW_NS all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from Osmocom_VTY_Functions all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from TELNETasp_PortType all;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+modulepar {</span><br><span style="color: hsl(120, 100%, 40%);">+   OsmoNsDialect mp_dialect := NS2_DIALECT_IPACCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+     NSConfiguration mp_nsconfig := {</span><br><span style="color: hsl(120, 100%, 40%);">+              nsei := 96,</span><br><span style="color: hsl(120, 100%, 40%);">+           role_sgsn := false,</span><br><span style="color: hsl(120, 100%, 40%);">+           handle_sns := false,</span><br><span style="color: hsl(120, 100%, 40%);">+          nsvc := {</span><br><span style="color: hsl(120, 100%, 40%);">+                     {</span><br><span style="color: hsl(120, 100%, 40%);">+                             provider := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                 ip := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                               address_family := AF_INET,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            local_udp_port := 21000,</span><br><span style="color: hsl(120, 100%, 40%);">+                                              local_ip := "127.0.0.1",</span><br><span style="color: hsl(120, 100%, 40%);">+                                            remote_udp_port := 23000,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             remote_ip := "127.0.0.1"</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%);">+                            nsvci := 97</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+type component RAW_Test_CT extends RAW_NS_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+       port TELNETasp_PT NSVTY;</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%);">+private function f_init_vty() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+    map(self:NSVTY, system:NSVTY);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_set_prompts(NSVTY);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_transceive(NSVTY, "enable");</span><br><span style="color: hsl(120, 100%, 40%);">+  f_vty_transceive(NSVTY, "nsvc nsei " & int2str(mp_nsconfig.nsei) & " force-unconfigured");</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%);">+/* ensure no matching message is received within 'tout' */</span><br><span style="color: hsl(120, 100%, 40%);">+function f_ensure_no_ns(integer idx := 0, boolean answer_alive := false, float tout := 3.0)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+   var PDU_NS nrf;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     timer T := tout;</span><br><span style="color: hsl(120, 100%, 40%);">+      var default d := activate(ax_rx_fail_on_any_ns(idx));</span><br><span style="color: hsl(120, 100%, 40%);">+ T.start;</span><br><span style="color: hsl(120, 100%, 40%);">+      alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [answer_alive] as_rx_alive_tx_ack();</span><br><span style="color: hsl(120, 100%, 40%);">+  [] T.timeout {</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%);">+     deactivate(d);</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%);">+function f_fails_except_reset(integer idx := 0, float tout := 15.0)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+       var PDU_NS nrf;</span><br><span style="color: hsl(120, 100%, 40%);">+       timer T := 15.0;</span><br><span style="color: hsl(120, 100%, 40%);">+      T.start;</span><br><span style="color: hsl(120, 100%, 40%);">+      alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [] NSCP[idx].receive(tr_NS_RESET(*, *, *)) {</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%);">+     [] NSCP[idx].receive(PDU_NS: ?) -> value nrf {</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(fail, "Received unexpected NS: ", nrf);</span><br><span style="color: hsl(120, 100%, 40%);">+          mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] T.timeout {</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_tx_reset() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+  f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 10.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* do a NS Reset procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_outgoing_ns_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      f_sleep(1.0);</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%);">+testcase TC_tx_reset_tx_alive() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 10.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* do a NS Reset procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_outgoing_ns_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* check outgoing NS procedure */</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%);">+      f_sleep(1.0);</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%);">+testcase TC_tx_reset_rx_alive() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 10.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* do a NS Reset procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_outgoing_ns_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* check outgoing NS procedure */</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        f_sleep(1.0);</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%);">+/* 48.016 7.2 unblock procedure</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN  -> NS: reset</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN <-  NS: reset ack</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN  -> NS: unblock</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN <-  NS: unblock ack</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_tx_unblock() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 30.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* do a NS Reset procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_outgoing_ns_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+        /* send alive acks */</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_unblock();</span><br><span style="color: hsl(120, 100%, 40%);">+      f_sleep(1.0);</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%);">+/* 48.016 7.2 tx unblock retries</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN  -> NS: reset</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN <-  NS: reset ack</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN  -> NS: unblock</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN <-  NS: unblock ack</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN  -> NS: unblock</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN <-  NS: unblock ack</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN  -> NS: unblock</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN <-  NS: unblock ack</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_tx_unblock_retries() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 30.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* do a NS Reset procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_outgoing_ns_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+        /* send alive acks */</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_unblock();</span><br><span style="color: hsl(120, 100%, 40%);">+      f_outgoing_ns_unblock();</span><br><span style="color: hsl(120, 100%, 40%);">+      f_outgoing_ns_unblock();</span><br><span style="color: hsl(120, 100%, 40%);">+      f_sleep(1.0);</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%);">+/* 48.016 7.2 block procedure</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN  -> NS: reset</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN <-  NS: reset ack</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN  -> NS: unblock</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN <-  NS: unblock ack</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN  -> NS: block</span><br><span style="color: hsl(120, 100%, 40%);">+ * TTCN <-  NS: block ack</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_tx_block() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+  f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 30.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* do a NS Reset procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_outgoing_ns_reset();</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_unblock();</span><br><span style="color: hsl(120, 100%, 40%);">+      f_sleep(1.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       f_outgoing_ns_block(NS_CAUSE_EQUIPMENT_FAILURE);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_sleep(1.0);</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%);">+/* 48.016 7.4.1 ignore unexpected NS_ALIVE ACK */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_no_reset_alive_ack() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 30.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   NSCP[0].send(t_NS_ALIVE_ACK);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_fails_except_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_sleep(1.0);</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%);">+/* 48.016 7.3.1 NS_RESET ack with wrong nsei */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_reset_ack_wrong_nsei() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 30.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   NSCP[0].receive(tr_NS_RESET(*, g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei));</span><br><span style="color: hsl(120, 100%, 40%);">+     NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei + 20));</span><br><span style="color: hsl(120, 100%, 40%);">+  f_fails_except_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_sleep(1.0);</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%);">+/* 48.016 7.3.1 NS_RESET ack with wrong nsvci */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_reset_ack_wrong_nsvci() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+       f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 30.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   NSCP[0].receive(tr_NS_RESET(*, g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei));</span><br><span style="color: hsl(120, 100%, 40%);">+     NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig[0].nsvc[0].nsvci + 20, g_nsconfig[0].nsei));</span><br><span style="color: hsl(120, 100%, 40%);">+  f_fails_except_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_sleep(1.0);</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%);">+/* 48.016 7.3.1 NS_RESET ack with wrong nsvci + nsei */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_reset_ack_wrong_nsei_nsvci() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+   f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 30.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   NSCP[0].receive(tr_NS_RESET(*, g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei));</span><br><span style="color: hsl(120, 100%, 40%);">+     NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig[0].nsvc[0].nsvci + 20, g_nsconfig[0].nsei + 20));</span><br><span style="color: hsl(120, 100%, 40%);">+     f_fails_except_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_sleep(1.0);</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%);">+/* 48.016 7.3.1 ignore unexpected NS_RESET_ACK after NS_RESET+ALIVE */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_ignore_reset_ack() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 30.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* do a NS Reset procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_outgoing_ns_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* check outgoing NS procedure */</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%);">+     NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei));</span><br><span style="color: hsl(120, 100%, 40%);">+       f_ensure_no_ns(answer_alive := true, tout := 15.0);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_sleep(1.0);</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%);">+/* 48.016 7.4 test procedure for frame relay with a single nsvci */</span><br><span style="color: hsl(120, 100%, 40%);">+function f_alive_retries_single(boolean reset := false) runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      f_init_vty();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_ns_codec(mp_nsconfig, guard_secs := 60.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* do a NS Reset procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_outgoing_ns_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* wait for one alive and answer it */</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%);">+  NSCP[0].receive(t_NS_ALIVE);</span><br><span style="color: hsl(120, 100%, 40%);">+  NSCP[0].receive(t_NS_ALIVE);</span><br><span style="color: hsl(120, 100%, 40%);">+  NSCP[0].receive(t_NS_ALIVE);</span><br><span style="color: hsl(120, 100%, 40%);">+  NSCP[0].receive(t_NS_ALIVE);</span><br><span style="color: hsl(120, 100%, 40%);">+  if (reset) {</span><br><span style="color: hsl(120, 100%, 40%);">+          NSCP[0].receive(tr_NS_RESET(*, g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei));</span><br><span style="color: hsl(120, 100%, 40%);">+     } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              f_ensure_no_ns(tout := 10.0);</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%);">+   setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_sleep(1.0);</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%);">+testcase TC_alive_retries_single_reset() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+    f_alive_retries_single(reset := true);</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%);">+testcase TC_alive_retries_single_no_resp() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_alive_retries_single(reset := 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%);">+control {</span><br><span style="color: hsl(120, 100%, 40%);">+       execute( TC_tx_reset() );</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 48.016 7.2 Block procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+      execute( TC_tx_block() );</span><br><span style="color: hsl(120, 100%, 40%);">+     // execute( TC_block_other_nsvc() ); // reset, unblock, sleep(1), block over another nsvci </span><br><span style="color: hsl(120, 100%, 40%);">+   /* 48.016 7.2 Unblock procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+    execute( TC_tx_unblock() );</span><br><span style="color: hsl(120, 100%, 40%);">+   execute( TC_tx_unblock_retries() );</span><br><span style="color: hsl(120, 100%, 40%);">+   // execute( TC_rx_unblock_tx_unblock() ); // wait for an rx unblock pdu, send an unblock pdu, expect unblock ack pdu</span><br><span style="color: hsl(120, 100%, 40%);">+  // execute( TC_unblockable() ); // block a NS-VCI via vty, try block procedure</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* 48.016 7.2.1 Block Abnormal Condition */</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 48.016 7.2.1 Unblock Abnormal Condition */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* 48.016 7.3.1 Abnormal Condition */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK) {</span><br><span style="color: hsl(120, 100%, 40%);">+            execute( TC_reset_ack_wrong_nsei() );</span><br><span style="color: hsl(120, 100%, 40%);">+         execute( TC_reset_ack_wrong_nsvci() );</span><br><span style="color: hsl(120, 100%, 40%);">+                execute( TC_reset_ack_wrong_nsei_nsvci() );</span><br><span style="color: hsl(120, 100%, 40%);">+           // execute( TC_reset_retries() );</span><br><span style="color: hsl(120, 100%, 40%);">+             // execute( TC_reset_wrong_nsvci() );</span><br><span style="color: hsl(120, 100%, 40%);">+         // execute( TC_reset_wrong_nsei() );</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+     execute( TC_ignore_reset_ack() );</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 48.016 7.4 Test procedure on frame relay */</span><br><span style="color: hsl(120, 100%, 40%);">+        execute( TC_tx_reset_tx_alive() );</span><br><span style="color: hsl(120, 100%, 40%);">+    execute( TC_tx_reset_rx_alive() );</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* 48.016 7.4.1 Abnormal Condition */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK) {</span><br><span style="color: hsl(120, 100%, 40%);">+            // execute( TC_alive_retries_multi() ); // check if alive retries works and block over an alive nsvc</span><br><span style="color: hsl(120, 100%, 40%);">+          execute( TC_alive_retries_single_reset() );</span><br><span style="color: hsl(120, 100%, 40%);">+   } else if (mp_dialect == NS2_DIALECT_IPACCESS) {</span><br><span style="color: hsl(120, 100%, 40%);">+              execute( TC_alive_retries_single_no_resp() );</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+     execute( TC_no_reset_alive_ack() );</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>diff --git a/ns/NS_Tests.udp.cfg b/ns/NS_Tests.udp.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..ad87c2e</span><br><span>--- /dev/null</span><br><span>+++ b/ns/NS_Tests.udp.cfg</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[ORDERED_INCLUDE]</span><br><span style="color: hsl(120, 100%, 40%);">+# Common configuration, shared between test suites</span><br><span style="color: hsl(120, 100%, 40%);">+"../Common.cfg"</span><br><span style="color: hsl(120, 100%, 40%);">+# testsuite specific configuration, not expected to change</span><br><span style="color: hsl(120, 100%, 40%);">+"./NS_Tests.default"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[LOGGING]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[MODULE_PARAMETERS]</span><br><span style="color: hsl(120, 100%, 40%);">+NS_Tests.mp_nsconfig := {</span><br><span style="color: hsl(120, 100%, 40%);">+      nsei := 1234,</span><br><span style="color: hsl(120, 100%, 40%);">+ nsvc := {</span><br><span style="color: hsl(120, 100%, 40%);">+             {</span><br><span style="color: hsl(120, 100%, 40%);">+                     provider := {</span><br><span style="color: hsl(120, 100%, 40%);">+                         ip := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       address_family := AF_INET,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    local_ip := "127.0.0.1",</span><br><span style="color: hsl(120, 100%, 40%);">+                                    local_udp_port := 22000,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      remote_ip := "127.0.0.1",</span><br><span style="color: hsl(120, 100%, 40%);">+                                   remote_udp_port := 23000</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%);">+                    nsvci := 1234</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%);">+[TESTPORT_PARAMETERS]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[MAIN_CONTROLLER]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[EXECUTE]</span><br><span style="color: hsl(120, 100%, 40%);">+NS_Tests.control</span><br><span>diff --git a/ns/expected-results.xml b/ns/expected-results.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..459744d</span><br><span>--- /dev/null</span><br><span>+++ b/ns/expected-results.xml</span><br><span>@@ -0,0 +1,4 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0"?></span><br><span style="color: hsl(120, 100%, 40%);">+<testsuite name='Titan' tests='1' failures='0' errors='0' skipped='0' inconc='0' time='MASKED'></span><br><span style="color: hsl(120, 100%, 40%);">+  <testcase classname='NS_Tests' name='TC_NS_connect_reset' time='MASKED'/></span><br><span style="color: hsl(120, 100%, 40%);">+</testsuite></span><br><span>diff --git a/ns/gen_links.sh b/ns/gen_links.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..0b38d99</span><br><span>--- /dev/null</span><br><span>+++ b/ns/gen_links.sh</span><br><span>@@ -0,0 +1,61 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/bash</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+BASEDIR=../deps</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+. ../gen_links.sh.inc</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.TestPorts.UNIX_DOMAIN_SOCKETasp/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="UD_PT.cc  UD_PT.hh  UD_PortType.ttcn  UD_Types.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="Socket_API_Definitions.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.TestPorts.IPL4asp/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="IPL4asp_Functions.ttcn  IPL4asp_PT.cc  IPL4asp_PT.hh IPL4asp_PortType.ttcn  IPL4asp_Types.ttcn  IPL4asp_discovery.cc IPL4asp_protocol_L234.hh"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.ProtocolModules.NS_v7.3.0/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="NS_Types.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.ProtocolModules.BSSGP_v13.0.0/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="BSSGP_EncDec.cc  BSSGP_Types.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.ProtocolModules.MobileL3_v13.4.0/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="MobileL3_CC_Types.ttcn MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types.ttcn MobileL3_MM_Types.ttcn MobileL3_RRM_Types.ttcn MobileL3_SMS_Types.ttcn MobileL3_SS_Types.ttcn MobileL3_Types.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.ProtocolModules.LLC_v7.1.0/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="LLC_EncDec.cc LLC_Types.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.ProtocolModules.SNDCP_v7.0.0/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="SNDCP_Types.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.TestPorts.AF_PACKET/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="AF_PACKET_PT.cc AF_PACKET_PT.hh AF_PACKET_PortType.ttcn AF_PACKET_PortTypes.ttcn "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="FrameRelay_Types.ttcn FrameRelay_CodecPort.ttcn FrameRelay_Emulation.ttcn Q931_Types.ttcn Q933_Types.ttcn "</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=$BASEDIR/titan.TestPorts.TELNETasp/src</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="TELNETasp_PT.cc  TELNETasp_PT.hh  TELNETasp_PortType.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DIR=../library</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcn "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcnpp "</span><br><span style="color: hsl(120, 100%, 40%);">+gen_links $DIR $FILES</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ignore_pp_results</span><br><span>diff --git a/ns/osmo-ns.fr.cfg b/ns/osmo-ns.fr.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..d1109ab</span><br><span>--- /dev/null</span><br><span>+++ b/ns/osmo-ns.fr.cfg</span><br><span>@@ -0,0 +1,55 @@</span><br><span style="color: hsl(120, 100%, 40%);">+log gsmtap 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level set-all debug</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+log stderr</span><br><span style="color: hsl(120, 100%, 40%);">+ logging filter all 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print level 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category-hex 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print file basename last</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print extended-timestamp 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level set-all debug</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+stats interval 0</span><br><span style="color: hsl(120, 100%, 40%);">+stats reporter statsd</span><br><span style="color: hsl(120, 100%, 40%);">+ prefix TTCN3</span><br><span style="color: hsl(120, 100%, 40%);">+ level subscriber</span><br><span style="color: hsl(120, 100%, 40%);">+ remote-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ remote-port 8125</span><br><span style="color: hsl(120, 100%, 40%);">+ flush-period 1</span><br><span style="color: hsl(120, 100%, 40%);">+ mtu 1024</span><br><span style="color: hsl(120, 100%, 40%);">+ enable</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ns</span><br><span style="color: hsl(120, 100%, 40%);">+ bind fr hdlcnet1</span><br><span style="color: hsl(120, 100%, 40%);">+  fr hdlcnet1 frnet</span><br><span style="color: hsl(120, 100%, 40%);">+ bind fr hdlcnet2</span><br><span style="color: hsl(120, 100%, 40%);">+  fr hdlcnet2 frnet</span><br><span style="color: hsl(120, 100%, 40%);">+ bind fr hdlcnet3</span><br><span style="color: hsl(120, 100%, 40%);">+  fr hdlcnet3 frnet</span><br><span style="color: hsl(120, 100%, 40%);">+ bind fr hdlcnet4</span><br><span style="color: hsl(120, 100%, 40%);">+  fr hdlcnet4 frnet</span><br><span style="color: hsl(120, 100%, 40%);">+ bind fr hdlcnet5</span><br><span style="color: hsl(120, 100%, 40%);">+  fr hdlcnet5 frnet</span><br><span style="color: hsl(120, 100%, 40%);">+ bind fr hdlcnet6</span><br><span style="color: hsl(120, 100%, 40%);">+  fr hdlcnet6 frnet</span><br><span style="color: hsl(120, 100%, 40%);">+ bind fr hdlcnet7</span><br><span style="color: hsl(120, 100%, 40%);">+  fr hdlcnet7 frnet</span><br><span style="color: hsl(120, 100%, 40%);">+ bind fr hdlcnet8</span><br><span style="color: hsl(120, 100%, 40%);">+  fr hdlcnet8 frnet</span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2001</span><br><span style="color: hsl(120, 100%, 40%);">+  nsvc fr hdlcnet1 dlci 16 nsvci 1</span><br><span style="color: hsl(120, 100%, 40%);">+  nsvc fr hdlcnet2 dlci 17 nsvci 2</span><br><span style="color: hsl(120, 100%, 40%);">+  nsvc fr hdlcnet3 dlci 18 nsvci 3</span><br><span style="color: hsl(120, 100%, 40%);">+  nsvc fr hdlcnet4 dlci 19 nsvci 4</span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2002</span><br><span style="color: hsl(120, 100%, 40%);">+  nsvc fr hdlcnet5 dlci 20 nsvci 5</span><br><span style="color: hsl(120, 100%, 40%);">+  nsvc fr hdlcnet6 dlci 21 nsvci 6</span><br><span style="color: hsl(120, 100%, 40%);">+ nse 2003</span><br><span style="color: hsl(120, 100%, 40%);">+  nsvc fr hdlcnet7 dlci 22 nsvci 7</span><br><span style="color: hsl(120, 100%, 40%);">+  nsvc fr hdlcnet8 dlci 23 nsvci 8</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/ns/osmo-ns.udp.cfg b/ns/osmo-ns.udp.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..d7c70b4</span><br><span>--- /dev/null</span><br><span>+++ b/ns/osmo-ns.udp.cfg</span><br><span>@@ -0,0 +1,91 @@</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+! OsmoNSdummy (1.4.0.326-f57c-dirty) configuration saved from vty</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%);">+log stderr</span><br><span style="color: hsl(120, 100%, 40%);">+ logging filter all 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging color 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category-hex 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print extended-timestamp 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print level 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print file basename</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level force-all info</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lglobal debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level llapd debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level linp debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lmux debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lmi debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lmib debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lsms debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lctrl debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lgtp debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lstats debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lgsup debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level loap debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lss7 debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lsccp debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lsua debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lm3ua debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lmgcp debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level ljibuf debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lrspro debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lns debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lbssgp debug</span><br><span style="color: hsl(120, 100%, 40%);">+log gsmtap 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging filter all 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging color 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category-hex 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging timestamp 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print file 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lglobal debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level llapd debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level linp debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lmux debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lmi debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lmib debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lsms debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lctrl debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lgtp debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lstats debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lgsup debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level loap debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lss7 debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lsccp debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lsua debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lm3ua debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lmgcp debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level ljibuf debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lrspro debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lns debug</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level lbssgp debug</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+stats reporter statsd</span><br><span style="color: hsl(120, 100%, 40%);">+  disable</span><br><span style="color: hsl(120, 100%, 40%);">+  remote-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+  remote-port 8125</span><br><span style="color: hsl(120, 100%, 40%);">+  mtu 1024</span><br><span style="color: hsl(120, 100%, 40%);">+  level subscriber</span><br><span style="color: hsl(120, 100%, 40%);">+  prefix TTCN3</span><br><span style="color: hsl(120, 100%, 40%);">+  flush-period 1</span><br><span style="color: hsl(120, 100%, 40%);">+  enable</span><br><span style="color: hsl(120, 100%, 40%);">+stats interval 0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+ns</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tns-block 3</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tns-block-retries 3</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tns-reset 3</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tns-reset-retries 3</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tns-test 12</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tns-alive 3</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tns-alive-retries 3</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tsns-prov 3</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tsns-size-retries 3</span><br><span style="color: hsl(120, 100%, 40%);">+ timer tsns-config-retries 3</span><br><span style="color: hsl(120, 100%, 40%);">+ bind udp local</span><br><span style="color: hsl(120, 100%, 40%);">+  listen 127.0.0.1 23000</span><br><span style="color: hsl(120, 100%, 40%);">+  accept-ipaccess</span><br><span>diff --git a/ns/regen_makefile.sh b/ns/regen_makefile.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..dc96587</span><br><span>--- /dev/null</span><br><span>+++ b/ns/regen_makefile.sh</span><br><span>@@ -0,0 +1,9 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/bash</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc "</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="AF_PACKET_PT.cc AF_PACKET_PT.hh "</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+export CPPFLAGS_TTCN3="-DBSSGP_EM_L3 -DNS_EMULATION_FR"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+../regen-makefile.sh NS_Tests.ttcn $FILES</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091">change 22091</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/+/22091"/><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: Ic619a374b88879d3116f8f28afb14401c3e3192b </div>
<div style="display:none"> Gerrit-Change-Number: 22091 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>