<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>