<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15939">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">msc: fix Iu mo call<br><br>Change-Id: I0ead36333ab665147b8d222070ea5cf8afc555ec<br>---<br>M library/ranap/RANAP_Templates.ttcn<br>M msc/BSC_ConnectionHandler.ttcn<br>2 files changed, 48 insertions(+), 31 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/39/15939/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/ranap/RANAP_Templates.ttcn b/library/ranap/RANAP_Templates.ttcn</span><br><span>index df4ea03..c616231 100644</span><br><span>--- a/library/ranap/RANAP_Templates.ttcn</span><br><span>+++ b/library/ranap/RANAP_Templates.ttcn</span><br><span>@@ -1305,7 +1305,7 @@</span><br><span> protocolIEs := {</span><br><span> {</span><br><span> id := id_RAB_SetupOrModifyList,</span><br><span style="color: hsl(0, 100%, 40%);">- criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+ criticality := ?,</span><br><span> value_ := {</span><br><span> rAB_SetupOrModifyList := rab_sml</span><br><span> }</span><br><span>diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn</span><br><span>index 23697da..b11d24b 100644</span><br><span>--- a/msc/BSC_ConnectionHandler.ttcn</span><br><span>+++ b/msc/BSC_ConnectionHandler.ttcn</span><br><span>@@ -1091,6 +1091,20 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_optional_mgcp_dlcx(CallParameters cpars) runs on BSC_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+ var MgcpCommand mgcp_cmd;</span><br><span style="color: hsl(120, 100%, 40%);">+ var boolean respond_to_dlcx := not (isbound(cpars.mgw_drop_dlcx) and valueof(cpars.mgw_drop_dlcx));</span><br><span style="color: hsl(120, 100%, 40%);">+ [] MGCP.receive(tr_DLCX(?)) -> value mgcp_cmd {</span><br><span style="color: hsl(120, 100%, 40%);">+ log("as_optional_mgcp_dlcx: rx MGCP DLCX");</span><br><span style="color: hsl(120, 100%, 40%);">+ if (respond_to_dlcx) {</span><br><span style="color: hsl(120, 100%, 40%);">+ MGCP.send(ts_DLCX_ACK2(mgcp_cmd.line.trans_id));</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Without this 'repeat', currently active other interleave and alt series exit as soon as a</span><br><span style="color: hsl(120, 100%, 40%);">+ * DLCX is handled. */</span><br><span style="color: hsl(120, 100%, 40%);">+ repeat;</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%);">+</span><br><span> function f_mo_call_establish(inout CallParameters cpars)</span><br><span> runs on BSC_ConnHdlr {</span><br><span> </span><br><span>@@ -1099,6 +1113,7 @@</span><br><span> var template MgcpResponse mgcp_resp;</span><br><span> var boolean respond_to_dlcx;</span><br><span> var PDU_BSSAP bssap;</span><br><span style="color: hsl(120, 100%, 40%);">+ var RANAP_PDU ranap;</span><br><span> var MgcpOsmuxCID osmux_cid;</span><br><span> </span><br><span> cpars.mo_call := true;</span><br><span>@@ -1193,11 +1208,29 @@</span><br><span> }</span><br><span> BSSAP.send(bssap);</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- /*</span><br><span style="color: hsl(0, 100%, 40%);">- [!g_pars.ran_is_geran] BSSAP.receive(tr_RANAP_RabAssReq(rab_sml)) {</span><br><span style="color: hsl(0, 100%, 40%);">- //BSSAP.send(ts_RANAP_RabAssResp(rab_sml)); FIXME</span><br><span style="color: hsl(120, 100%, 40%);">+ [] BSSAP.receive(tr_RANAP_RabAssReq(*)) -> value ranap {</span><br><span style="color: hsl(120, 100%, 40%);">+ log("f_mo_call_establish 4.iu: rx RANAP RAB Assignment Request");</span><br><span style="color: hsl(120, 100%, 40%);">+ var RAB_SetupOrModifiedList l := {</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%);">+ id := id_RAB_SetupOrModifiedItem,</span><br><span style="color: hsl(120, 100%, 40%);">+ criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+ value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+ rAB_SetupOrModifiedItem := {</span><br><span style="color: hsl(120, 100%, 40%);">+ rAB_ID := int2bit(23, 8),</span><br><span style="color: hsl(120, 100%, 40%);">+ transportLayerAddress := hex2bit( '350001c0a8021500000000000000000000000000'H),</span><br><span style="color: hsl(120, 100%, 40%);">+ iuTransportAssociation := {</span><br><span style="color: hsl(120, 100%, 40%);">+ bindingID := '040c0000'O</span><br><span style="color: hsl(120, 100%, 40%);">+ },</span><br><span style="color: hsl(120, 100%, 40%);">+ dl_dataVolumes := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+ iE_Extensions := omit</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%);">+ }</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%);">+ BSSAP.send(ts_RANAP_RabAssResp(l));</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span> </span><br><span> /* MDCX setting up the RAN side remote RTP address received from Assignment Complete */</span><br><span> [] MGCP.receive(tr_MDCX) -> value mgcp_cmd {</span><br><span>@@ -1315,48 +1348,32 @@</span><br><span> respond_to_dlcx := not (isbound(cpars.mgw_drop_dlcx) and valueof(cpars.mgw_drop_dlcx));</span><br><span> </span><br><span> var default mdcx := activate(as_optional_mgcp_mdcx(cpars.mgw_conn_2.mgw_rtp_ip, cpars.mgw_conn_2.mgw_rtp_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ var default dlcx := activate(as_optional_mgcp_dlcx(cpars));</span><br><span> </span><br><span> /* clearing of radio channel */</span><br><span style="color: hsl(0, 100%, 40%);">- interleave {</span><br><span style="color: hsl(0, 100%, 40%);">- //[g_pars.ran_is_geran] BSSAP.receive(t_clear) {</span><br><span style="color: hsl(0, 100%, 40%);">- [] BSSAP.receive(t_clear) {</span><br><span style="color: hsl(120, 100%, 40%);">+ alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [g_pars.ran_is_geran] BSSAP.receive(t_clear) {</span><br><span> log("f_call_hangup 5: rx BSSAP Clear Command");</span><br><span> BSSAP.send(ts_BSSMAP_ClearComplete);</span><br><span> BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND);</span><br><span> log("f_call_hangup 6: rx SCCP DISC");</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(pass);</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- /*</span><br><span style="color: hsl(0, 100%, 40%);">- [!g_pars.ran_is_geran] BSSAP.receive(t_iurel) {</span><br><span style="color: hsl(120, 100%, 40%);">+ [not g_pars.ran_is_geran] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)) {</span><br><span style="color: hsl(120, 100%, 40%);">+ log("f_call_hangup 5.iu: rx Iu Release Command");</span><br><span> BSSAP.send(ts_RANAP_IuReleaseComplete);</span><br><span> BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND);</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%);">- [] MGCP.receive(tr_DLCX(?)) -> value mgcp_cmd {</span><br><span style="color: hsl(0, 100%, 40%);">- log("f_call_hangup 7: rx MGCP DLCX");</span><br><span style="color: hsl(0, 100%, 40%);">- if (respond_to_dlcx) {</span><br><span style="color: hsl(0, 100%, 40%);">- MGCP.send(ts_DLCX_ACK2(mgcp_cmd.line.trans_id));</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- dlcx_contained_ci := f_MgcpCmd_contains_par(mgcp_cmd, "I");</span><br><span style="color: hsl(120, 100%, 40%);">+ log("f_call_hangup 6.iu: rx SCCP DISC");</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(pass);</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* Two DLCXes expected, one for RAN and one for CN side.</span><br><span style="color: hsl(0, 100%, 40%);">- * Unless the first DLCX did not contain a CI, in which case it was a wildcard DLCX for both. */</span><br><span style="color: hsl(0, 100%, 40%);">- if (dlcx_contained_ci) {</span><br><span style="color: hsl(0, 100%, 40%);">- MGCP.receive(tr_DLCX(?)) -> value mgcp_cmd {</span><br><span style="color: hsl(0, 100%, 40%);">- log("f_call_hangup 8: rx MGCP DLCX");</span><br><span style="color: hsl(0, 100%, 40%);">- if (respond_to_dlcx) {</span><br><span style="color: hsl(0, 100%, 40%);">- MGCP.send(ts_DLCX_ACK2(mgcp_cmd.line.trans_id));</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%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+ f_sleep(1.0);</span><br><span> f_create_mgcp_delete_ep(cpars.mgcp_ep);</span><br><span> log("f_call_hangup 9: done");</span><br><span> </span><br><span> deactivate(mdcx);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+ deactivate(dlcx);</span><br><span> }</span><br><span> </span><br><span> function f_mt_call(inout CallParameters cpars)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15939">change 15939</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/+/15939"/><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: I0ead36333ab665147b8d222070ea5cf8afc555ec </div>
<div style="display:none"> Gerrit-Change-Number: 15939 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>