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