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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">library/DIAMETER_Templates: rework existing ULR/ULA templates<br><br>* Make both {hbh,ete}_id parameters last among the others;<br>* Use more elegant and consistent template formatting;<br>* Make Origin{Host,Realm} values configurable;<br>* Make DestinationRealm value configurable;<br>* Make SessionId value configurable.<br><br>Change-Id: I0585e306a87453c212c6b5ac5635181c47b34b4f<br>Related: SYS#5602<br>---<br>M library/DIAMETER_Templates.ttcn<br>M mme/MME_Tests.ttcn<br>2 files changed, 46 insertions(+), 28 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/DIAMETER_Templates.ttcn b/library/DIAMETER_Templates.ttcn</span><br><span>index fd4683e..4cd2b6b 100644</span><br><span>--- a/library/DIAMETER_Templates.ttcn</span><br><span>+++ b/library/DIAMETER_Templates.ttcn</span><br><span>@@ -106,6 +106,8 @@</span><br><span> const uint32_t c_DIAMETER_3GPP_S13_AID := 16777252;</span><br><span> const uint32_t c_DIAMETER_3GPP_S7_AID := 16777308;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+const octetstring c_def_sess_id := char2oct("ttcn3.session");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> template (value) PDU_DIAMETER</span><br><span> ts_DIAMETER(template (value) BIT8 flags,</span><br><span>             template (value) Command_Code cmd_code,</span><br><span>@@ -908,34 +910,50 @@</span><br><span> </span><br><span> /* TS 29.262 7.2.3 Update Location Request */</span><br><span> template (present) PDU_DIAMETER</span><br><span style="color: hsl(0, 100%, 40%);">-tr_DIA_ULR(hexstring imsi) := tr_DIAMETER(flags:='11000000'B, cmd_code:=Update_Location,</span><br><span style="color: hsl(0, 100%, 40%);">-                                       app_id:=int2oct(c_DIAMETER_3GPP_S6_AID, 4),</span><br><span style="color: hsl(0, 100%, 40%);">-   avps := superset(</span><br><span style="color: hsl(0, 100%, 40%);">-               tr_AVP_SessionId,</span><br><span style="color: hsl(0, 100%, 40%);">-               tr_AVP_AuthSessionState,</span><br><span style="color: hsl(0, 100%, 40%);">-                tr_AVP_OriginHost,</span><br><span style="color: hsl(0, 100%, 40%);">-              tr_AVP_OriginRealm,</span><br><span style="color: hsl(0, 100%, 40%);">-             tr_AVP_DestinationRealm,</span><br><span style="color: hsl(0, 100%, 40%);">-                tr_AVP_UserNameImsi(imsi),</span><br><span style="color: hsl(0, 100%, 40%);">-              tr_AVP_3GPP_RatType(EUTRAN),</span><br><span style="color: hsl(0, 100%, 40%);">-            tr_AVP_3GPP_UlrFlags,</span><br><span style="color: hsl(0, 100%, 40%);">-           tr_AVP_3GPP_VisitedPlmnId</span><br><span style="color: hsl(120, 100%, 40%);">+tr_DIA_ULR(/* template (present) */ hexstring imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+           template (present) octetstring sess_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+          template (present) charstring orig_host := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+         template (present) charstring orig_realm := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+        template (present) charstring dest_realm := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+        template (present) UINT32 hbh_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+        template (present) UINT32 ete_id := ?) :=</span><br><span style="color: hsl(120, 100%, 40%);">+  tr_DIAMETER(flags := '11000000'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                 cmd_code := Update_Location,</span><br><span style="color: hsl(120, 100%, 40%);">+                  app_id := int2oct(c_DIAMETER_3GPP_S6_AID, 4),</span><br><span style="color: hsl(120, 100%, 40%);">+                 hbh_id := hbh_id,</span><br><span style="color: hsl(120, 100%, 40%);">+             ete_id := ete_id,</span><br><span style="color: hsl(120, 100%, 40%);">+             avps := superset(</span><br><span style="color: hsl(120, 100%, 40%);">+                 tr_AVP_SessionId(sess_id),</span><br><span style="color: hsl(120, 100%, 40%);">+                    tr_AVP_AuthSessionState,</span><br><span style="color: hsl(120, 100%, 40%);">+                      tr_AVP_OriginHost(orig_host),</span><br><span style="color: hsl(120, 100%, 40%);">+                 tr_AVP_OriginRealm(orig_realm),</span><br><span style="color: hsl(120, 100%, 40%);">+                       tr_AVP_DestinationRealm(dest_realm),</span><br><span style="color: hsl(120, 100%, 40%);">+                  tr_AVP_UserNameImsi(imsi),</span><br><span style="color: hsl(120, 100%, 40%);">+                    tr_AVP_3GPP_RatType(EUTRAN),</span><br><span style="color: hsl(120, 100%, 40%);">+                  tr_AVP_3GPP_UlrFlags,</span><br><span style="color: hsl(120, 100%, 40%);">+                 tr_AVP_3GPP_VisitedPlmnId</span><br><span>    ));</span><br><span> </span><br><span> template (value) PDU_DIAMETER</span><br><span style="color: hsl(0, 100%, 40%);">-ts_DIA_ULA(template (value) UINT32 hbh_id, template (value) UINT32 ete_id,</span><br><span style="color: hsl(0, 100%, 40%);">-         template (value) octetstring sess_id,</span><br><span style="color: hsl(0, 100%, 40%);">-           template (value) AVP_list sub_data_content)</span><br><span style="color: hsl(0, 100%, 40%);">-:= ts_DIAMETER(flags:='01000000'B, cmd_code:=Update_Location,</span><br><span style="color: hsl(0, 100%, 40%);">-             app_id := int2oct(c_DIAMETER_3GPP_S6_AID, 4), hbh_id:=hbh_id, ete_id:=ete_id,</span><br><span style="color: hsl(0, 100%, 40%);">-   avps := {</span><br><span style="color: hsl(0, 100%, 40%);">-               ts_AVP_SessionId(sess_id),</span><br><span style="color: hsl(0, 100%, 40%);">-              ts_AVP_ResultCode(DIAMETER_SUCCESS), /* optional */</span><br><span style="color: hsl(0, 100%, 40%);">-             ts_AVP_AuthSessionState(NO_STATE_MAINTAINED),</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_3GPP_UlaFlags('00000002'O),</span><br><span style="color: hsl(0, 100%, 40%);">-              ts_AVP_3GPP_SubscriptionData(sub_data_content)</span><br><span style="color: hsl(120, 100%, 40%);">+ts_DIA_ULA(template (value) AVP_list sub_data,</span><br><span style="color: hsl(120, 100%, 40%);">+           template (value) octetstring sess_id := c_def_sess_id,</span><br><span style="color: hsl(120, 100%, 40%);">+        template (value) charstring orig_host := "hss.localdomain",</span><br><span style="color: hsl(120, 100%, 40%);">+         template (value) charstring orig_realm := "localdomain",</span><br><span style="color: hsl(120, 100%, 40%);">+    template (value) UINT32 hbh_id := '00000000'O,</span><br><span style="color: hsl(120, 100%, 40%);">+        template (value) UINT32 ete_id := '00000000'O) :=</span><br><span style="color: hsl(120, 100%, 40%);">+  ts_DIAMETER(flags:='01000000'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                   cmd_code := Update_Location,</span><br><span style="color: hsl(120, 100%, 40%);">+                  app_id := int2oct(c_DIAMETER_3GPP_S6_AID, 4),</span><br><span style="color: hsl(120, 100%, 40%);">+                 hbh_id := hbh_id,</span><br><span style="color: hsl(120, 100%, 40%);">+             ete_id := ete_id,</span><br><span style="color: hsl(120, 100%, 40%);">+             avps := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 ts_AVP_SessionId(sess_id),</span><br><span style="color: hsl(120, 100%, 40%);">+                    ts_AVP_ResultCode(DIAMETER_SUCCESS), /* optional */</span><br><span style="color: hsl(120, 100%, 40%);">+                   ts_AVP_AuthSessionState(NO_STATE_MAINTAINED),</span><br><span style="color: hsl(120, 100%, 40%);">+                 ts_AVP_OriginHost(orig_host),</span><br><span style="color: hsl(120, 100%, 40%);">+                 ts_AVP_OriginRealm(orig_realm),</span><br><span style="color: hsl(120, 100%, 40%);">+                       ts_AVP_3GPP_UlaFlags('00000002'O),</span><br><span style="color: hsl(120, 100%, 40%);">+                    ts_AVP_3GPP_SubscriptionData(sub_data)</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 f9bcf6d..2140971 100644</span><br><span>--- a/mme/MME_Tests.ttcn</span><br><span>+++ b/mme/MME_Tests.ttcn</span><br><span>@@ -493,14 +493,12 @@</span><br><span>     var PDU_DIAMETER rx_dia;</span><br><span>     [] DIAMETER.receive(tr_DIA_ULR(g_pars.ue_pars.imsi)) -> value rx_dia {</span><br><span>            var template (omit) AVP avp;</span><br><span style="color: hsl(0, 100%, 40%);">-            var octetstring sess_id;</span><br><span>             var hexstring imsi;</span><br><span>          var template (value) AVP_list sub_data;</span><br><span> </span><br><span>          /* retrieve input data */</span><br><span>            imsi := valueof(f_DIAMETER_get_imsi(rx_dia));</span><br><span>                avp := f_DIAMETER_get_avp(rx_dia, c_AVP_Code_BASE_NONE_Session_Id);</span><br><span style="color: hsl(0, 100%, 40%);">-             sess_id := valueof(avp.avp_data.avp_BASE_NONE_Session_Id);</span><br><span> </span><br><span>               sub_data := {</span><br><span>                        ts_AVP_3GPP_SubscriberStatus(SERVICE_GRANTED),</span><br><span>@@ -513,7 +511,9 @@</span><br><span>                         })</span><br><span>                   };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-          DIAMETER.send(ts_DIA_ULA(rx_dia.hop_by_hop_id, rx_dia.end_to_end_id, sess_id, sub_data));</span><br><span style="color: hsl(120, 100%, 40%);">+             DIAMETER.send(ts_DIA_ULA(sub_data, avp.avp_data.avp_BASE_NONE_Session_Id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      hbh_id := rx_dia.hop_by_hop_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       ete_id := rx_dia.end_to_end_id));</span><br><span>   }</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/26513">change 26513</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/+/26513"/><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: I0585e306a87453c212c6b5ac5635181c47b34b4f </div>
<div style="display:none"> Gerrit-Change-Number: 26513 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </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-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>