<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17949">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">DIAMETER: parametrize CEA template<br><br>So far, we hard-coded the Capabilities-Exchange-Answer for<br>HSS emulation.  As we want to emulate other DIAMETER network<br>elements, let's parametrize the template as well as the respective<br>parameters for the emulation component.<br><br>Change-Id: Ie30ff1bac40ab3dc6058587f0586b643ff2b0cb6<br>---<br>M library/DIAMETER_Emulation.ttcn<br>M library/DIAMETER_Templates.ttcn<br>M mme/MME_Tests.ttcn<br>3 files changed, 18 insertions(+), 8 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/DIAMETER_Emulation.ttcn b/library/DIAMETER_Emulation.ttcn</span><br><span>index 6dd44b3..cff4d63 100644</span><br><span>--- a/library/DIAMETER_Emulation.ttcn</span><br><span>+++ b/library/DIAMETER_Emulation.ttcn</span><br><span>@@ -33,6 +33,7 @@</span><br><span> import from DIAMETER_Templates all;</span><br><span> import from Osmocom_Types all;</span><br><span> import from IPL4asp_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from Native_Functions all;</span><br><span> </span><br><span> type hexstring IMSI;</span><br><span> </span><br><span>@@ -94,7 +95,10 @@</span><br><span>         HostName remote_ip,</span><br><span>  PortNumber remote_sctp_port,</span><br><span>         HostName local_ip,</span><br><span style="color: hsl(0, 100%, 40%);">-      PortNumber local_sctp_port</span><br><span style="color: hsl(120, 100%, 40%);">+    PortNumber local_sctp_port,</span><br><span style="color: hsl(120, 100%, 40%);">+   charstring origin_host,</span><br><span style="color: hsl(120, 100%, 40%);">+       charstring origin_realm,</span><br><span style="color: hsl(120, 100%, 40%);">+      uint32_t vendor_app_id</span><br><span> }</span><br><span> </span><br><span> function tr_DIAMETER_RecvFrom_R(template PDU_DIAMETER msg)</span><br><span>@@ -312,7 +316,8 @@</span><br><span>          /* handle CER/CEA handshake */</span><br><span>               [] DIAMETER.receive(tr_DIAMETER_RecvFrom_R(tr_DIAMETER_R(cmd_code := Capabilities_Exchange))) -> value mrf {</span><br><span>                      var template (value) PDU_DIAMETER resp;</span><br><span style="color: hsl(0, 100%, 40%);">-                 resp := ts_DIA_CEA(mrf.msg.hop_by_hop_id, mrf.msg.end_to_end_id);</span><br><span style="color: hsl(120, 100%, 40%);">+                     resp := ts_DIA_CEA(mrf.msg.hop_by_hop_id, mrf.msg.end_to_end_id, p.origin_host,</span><br><span style="color: hsl(120, 100%, 40%);">+                                          p.origin_realm, f_inet_addr(p.local_ip), p.vendor_app_id);</span><br><span>                        DIAMETER.send(t_DIAMETER_Send(g_diameter_conn_id, resp));</span><br><span>                    }</span><br><span> </span><br><span>diff --git a/library/DIAMETER_Templates.ttcn b/library/DIAMETER_Templates.ttcn</span><br><span>index 11746eb..450e013 100644</span><br><span>--- a/library/DIAMETER_Templates.ttcn</span><br><span>+++ b/library/DIAMETER_Templates.ttcn</span><br><span>@@ -783,13 +783,15 @@</span><br><span> </span><br><span> /* 5.3.2 Capabilities Exchange Answer */</span><br><span> template (value) PDU_DIAMETER</span><br><span style="color: hsl(0, 100%, 40%);">-ts_DIA_CEA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id)</span><br><span style="color: hsl(120, 100%, 40%);">+ts_DIA_CEA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id,</span><br><span style="color: hsl(120, 100%, 40%);">+    template (value) charstring origin_host, template (value) charstring origin_realm,</span><br><span style="color: hsl(120, 100%, 40%);">+    template (value) octetstring host_ip, uint32_t vendor_app_id)</span><br><span> := ts_DIAMETER(flags:='00000000'B, cmd_code:=Capabilities_Exchange, hbh_id:=hbh_id, ete_id:=ete_id,</span><br><span>      avps := {</span><br><span>            ts_AVP_ResultCode(DIAMETER_SUCCESS),</span><br><span style="color: hsl(0, 100%, 40%);">-            ts_AVP_OriginHost("hss.localdomain"),</span><br><span style="color: hsl(0, 100%, 40%);">-         ts_AVP_OriginRealm("localdomain"),</span><br><span style="color: hsl(0, 100%, 40%);">-            ts_AVP_HostIpAddr('7E000004'O),</span><br><span style="color: hsl(120, 100%, 40%);">+               ts_AVP_OriginHost(origin_host),</span><br><span style="color: hsl(120, 100%, 40%);">+               ts_AVP_OriginRealm(origin_realm),</span><br><span style="color: hsl(120, 100%, 40%);">+             ts_AVP_HostIpAddr(host_ip),</span><br><span>          ts_AVP_VendorId(vendor_id_3GPP),</span><br><span>             ts_AVP_ProductName("TTCN-3 Testsuite"),</span><br><span>            ts_AVP_OriginStateId('00000001'O),</span><br><span>@@ -798,7 +800,7 @@</span><br><span>             ts_AVP_SuppVendorIdRaw(13019), /* ETSI */</span><br><span>            ts_AVP_AuthAppId('FFFFFFFF'O),</span><br><span>               ts_AVP_InbSecId('00000000'O),</span><br><span style="color: hsl(0, 100%, 40%);">-           ts_AVP_VendorSpecAppId(vendor_id_3GPP, c_DIAMETER_3GPP_S6_AID)</span><br><span style="color: hsl(120, 100%, 40%);">+                ts_AVP_VendorSpecAppId(vendor_id_3GPP, vendor_app_id)</span><br><span>        });</span><br><span> </span><br><span> </span><br><span>diff --git a/mme/MME_Tests.ttcn b/mme/MME_Tests.ttcn</span><br><span>index da45485..0516809 100644</span><br><span>--- a/mme/MME_Tests.ttcn</span><br><span>+++ b/mme/MME_Tests.ttcn</span><br><span>@@ -219,7 +219,10 @@</span><br><span>              remote_ip := mp_mme_ip,</span><br><span>              remote_sctp_port := -1,</span><br><span>              local_ip := mp_s6_local_ip,</span><br><span style="color: hsl(0, 100%, 40%);">-             local_sctp_port := mp_s6_local_port</span><br><span style="color: hsl(120, 100%, 40%);">+           local_sctp_port := mp_s6_local_port,</span><br><span style="color: hsl(120, 100%, 40%);">+          origin_host := "hss.localdomain",</span><br><span style="color: hsl(120, 100%, 40%);">+           origin_realm := "localdomain",</span><br><span style="color: hsl(120, 100%, 40%);">+              vendor_app_id := c_DIAMETER_3GPP_S6_AID</span><br><span>      };</span><br><span>   vc_DIAMETER := DIAMETER_Emulation_CT.create(id);</span><br><span>     map(vc_DIAMETER:DIAMETER, system:DIAMETER_CODEC_PT);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17949">change 17949</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/+/17949"/><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: Ie30ff1bac40ab3dc6058587f0586b643ff2b0cb6 </div>
<div style="display:none"> Gerrit-Change-Number: 17949 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>