<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19770">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">stp: Support testing multi-home SCTP features with IPv4+IPv6<br><br>The IP addr module parameters are split now, IPA module has its own set<br>of configurable addresses, and M3UA its own. Moreover, in M3UA there's<br>an IPv4 and an IPv6 which can be configured, both locally and remotely.<br>If no IPv6 is set (=""), then only IPv4 will be used for the M3UA<br>connection.<br><br>Change-Id: Ib1925ed1df5cea3fa66f28b5625532d454a2c338<br>---<br>M stp/STP_Tests_Common.ttcn<br>M stp/STP_Tests_IPA.ttcn<br>M stp/STP_Tests_M3UA.ttcn<br>3 files changed, 50 insertions(+), 19 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/70/19770/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/stp/STP_Tests_Common.ttcn b/stp/STP_Tests_Common.ttcn</span><br><span>index aee5a88..a540b10 100644</span><br><span>--- a/stp/STP_Tests_Common.ttcn</span><br><span>+++ b/stp/STP_Tests_Common.ttcn</span><br><span>@@ -19,19 +19,6 @@</span><br><span> </span><br><span> import from IPL4asp_Types all;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-modulepar {</span><br><span style="color: hsl(0, 100%, 40%);">-  charstring mp_stp_ip := "127.0.0.1";</span><br><span style="color: hsl(0, 100%, 40%);">-  charstring mp_local_ip := "127.0.0.1";</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%);">-friend template (value) SctpTuple ts_SCTP(template (omit) integer ppid := 3,</span><br><span style="color: hsl(0, 100%, 40%);">-                                      template (omit) integer stream := 0) := {</span><br><span style="color: hsl(0, 100%, 40%);">-    sinfo_stream := stream,</span><br><span style="color: hsl(0, 100%, 40%);">- sinfo_ppid := ppid,</span><br><span style="color: hsl(0, 100%, 40%);">-     remSocks := omit,</span><br><span style="color: hsl(0, 100%, 40%);">-       assocId := omit</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> type component Test_CT {</span><br><span>         port TELNETasp_PT VTY;</span><br><span>       timer g_Tguard := 30.0;</span><br><span>diff --git a/stp/STP_Tests_IPA.ttcn b/stp/STP_Tests_IPA.ttcn</span><br><span>index c67bc4a..26abc80 100644</span><br><span>--- a/stp/STP_Tests_IPA.ttcn</span><br><span>+++ b/stp/STP_Tests_IPA.ttcn</span><br><span>@@ -38,6 +38,8 @@</span><br><span> type record of charstring AspNameArray;</span><br><span> </span><br><span> modulepar {</span><br><span style="color: hsl(120, 100%, 40%);">+        charstring mp_stp_ipa_ip := "127.0.0.1";</span><br><span style="color: hsl(120, 100%, 40%);">+    charstring mp_local_ipa_ip := "127.0.0.1";</span><br><span>         integer mp_stp_ipa_port := 5000;</span><br><span>     integer mp_local_ipa_port := 20000;</span><br><span>  AspNameArray mp_ipa_as_names := {"ipa-as-loadshare-sender",</span><br><span>@@ -113,7 +115,7 @@</span><br><span>            ASP only up to NR_IPA are configured. */</span><br><span>           port_offset := 100;</span><br><span>  }</span><br><span style="color: hsl(0, 100%, 40%);">-       vc_IPA[idx].start(IPA_Emulation.main_client(mp_stp_ip, mp_stp_ipa_port, mp_local_ip,</span><br><span style="color: hsl(120, 100%, 40%);">+  vc_IPA[idx].start(IPA_Emulation.main_client(mp_stp_ipa_ip, mp_stp_ipa_port, mp_local_ipa_ip,</span><br><span>                         mp_local_ipa_port + idx + port_offset, g_ccm_pars[idx]));</span><br><span> }</span><br><span> </span><br><span>diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn</span><br><span>index 68cea2a..4f2c9a5 100644</span><br><span>--- a/stp/STP_Tests_M3UA.ttcn</span><br><span>+++ b/stp/STP_Tests_M3UA.ttcn</span><br><span>@@ -35,6 +35,10 @@</span><br><span> import from STP_Tests_Common all;</span><br><span> </span><br><span> modulepar {</span><br><span style="color: hsl(120, 100%, 40%);">+      charstring mp_stp_m3ua_ip4 := "127.0.0.1";</span><br><span style="color: hsl(120, 100%, 40%);">+  charstring mp_stp_m3ua_ip6 := "::1";</span><br><span style="color: hsl(120, 100%, 40%);">+        charstring mp_local_m3ua_ip4 := "127.0.0.1";</span><br><span style="color: hsl(120, 100%, 40%);">+        charstring mp_local_m3ua_ip6 := "::1";</span><br><span>     integer mp_stp_m3ua_port := 2905;</span><br><span>    integer mp_stp_m3ua_clnt_port := 2906;</span><br><span>       integer mp_local_m3ua_port := 9999;</span><br><span>@@ -92,11 +96,41 @@</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+private template (value) Socket ts_Socket(HostName hostName, PortNumber portNumber) := {</span><br><span style="color: hsl(120, 100%, 40%);">+  hostName := hostName,</span><br><span style="color: hsl(120, 100%, 40%);">+        portNumber := portNumber</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 template (value) SctpTuple ts_SCTP(template (omit) integer ppid := 3,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     template (omit) integer stream := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+                                          template (omit) SocketList remSocks := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+  sinfo_stream := stream,</span><br><span style="color: hsl(120, 100%, 40%);">+       sinfo_ppid := ppid,</span><br><span style="color: hsl(120, 100%, 40%);">+   remSocks := remSocks,</span><br><span style="color: hsl(120, 100%, 40%);">+ assocId := omit</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> friend function f_M3UA_connect(integer i) runs on RAW_M3UA_CT {</span><br><span>     var Result res;</span><br><span style="color: hsl(0, 100%, 40%);">- res := M3UA_CodecPort_CtrlFunct.f_IPL4_connect(M3UA[i], mp_stp_ip, mp_stp_m3ua_port,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                   mp_local_ip, mp_local_m3ua_port+i, 0,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                    {sctp:=valueof(ts_SCTP)});</span><br><span style="color: hsl(120, 100%, 40%);">+    var Option opt_add_local_addrs;</span><br><span style="color: hsl(120, 100%, 40%);">+       var OptionList opt_list := {};</span><br><span style="color: hsl(120, 100%, 40%);">+        var template SocketList opt_add_remote_addrs;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       if (mp_local_m3ua_ip6 != "") {</span><br><span style="color: hsl(120, 100%, 40%);">+              opt_add_local_addrs.sctpAdditionalLocalAddresses := {mp_local_m3ua_ip6};</span><br><span style="color: hsl(120, 100%, 40%);">+              opt_list := {opt_add_local_addrs};</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%);">+   if (mp_stp_m3ua_ip6 == "") {</span><br><span style="color: hsl(120, 100%, 40%);">+                opt_add_remote_addrs := omit;</span><br><span style="color: hsl(120, 100%, 40%);">+ } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              opt_add_remote_addrs := {valueof(ts_Socket(mp_stp_m3ua_ip6, mp_stp_m3ua_port))};</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%);">+   res := M3UA_CodecPort_CtrlFunct.f_IPL4_connect(M3UA[i], mp_stp_m3ua_ip4, mp_stp_m3ua_port,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                   mp_local_m3ua_ip4, mp_local_m3ua_port+i, 0,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                   {sctp:=valueof(ts_SCTP(3, 0, opt_add_remote_addrs))},</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 opt_list);</span><br><span>    if (not ispresent(res.connId)) {</span><br><span>             setverdict(fail, "Could not connect M3UA socket, check your configuration");</span><br><span>       mtc.stop;</span><br><span>@@ -112,8 +146,16 @@</span><br><span> </span><br><span> friend function f_M3UA_listen(integer i) runs on RAW_M3UA_CT {</span><br><span>       var Result res;</span><br><span style="color: hsl(0, 100%, 40%);">- res := M3UA_CodecPort_CtrlFunct.f_IPL4_listen(M3UA[i], mp_local_ip, mp_local_m3ua_port+i,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                       {sctp:=valueof(ts_SCTP)});</span><br><span style="color: hsl(120, 100%, 40%);">+    var Option opt_add_local_addrs;</span><br><span style="color: hsl(120, 100%, 40%);">+       var OptionList opt_list := {};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      if (mp_local_m3ua_ip6 != "") {</span><br><span style="color: hsl(120, 100%, 40%);">+              opt_add_local_addrs.sctpAdditionalLocalAddresses := {mp_local_m3ua_ip6};</span><br><span style="color: hsl(120, 100%, 40%);">+              opt_list := {opt_add_local_addrs};</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%);">+   res := M3UA_CodecPort_CtrlFunct.f_IPL4_listen(M3UA[i], mp_local_m3ua_ip4, mp_local_m3ua_port+i,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     {sctp:=valueof(ts_SCTP)}, opt_list);</span><br><span>   if (not ispresent(res.connId)) {</span><br><span>             setverdict(fail, "Could not bind M3UA socket, check your configuration");</span><br><span>  mtc.stop;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19770">change 19770</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/+/19770"/><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: Ib1925ed1df5cea3fa66f28b5625532d454a2c338 </div>
<div style="display:none"> Gerrit-Change-Number: 19770 </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>