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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">msc: Introduce test TC_lu_imsi_timeout_tmsi_realloc<br><br>Related: OS#4336, OS#4337<br>Change-Id: I603b2b2b1ae7edd6360ea38c6bbbfedc46e9fa5d<br>---<br>M msc/BSC_ConnectionHandler.ttcn<br>M msc/MSC_Tests.ttcn<br>M msc/MSC_Tests_Iu.ttcn<br>M msc/expected-results.xml<br>4 files changed, 78 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn</span><br><span>index cd1a114..1ce0b69 100644</span><br><span>--- a/msc/BSC_ConnectionHandler.ttcn</span><br><span>+++ b/msc/BSC_ConnectionHandler.ttcn</span><br><span>@@ -642,13 +642,13 @@</span><br><span>    setverdict(pass);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_expect_lu_reject() runs on BSC_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+function f_expect_lu_reject(template OCT1 cause := ?) runs on BSC_ConnHdlr {</span><br><span>         var PDU_DTAP_MT dtap_mt;</span><br><span>     timer T := 5.0;</span><br><span> </span><br><span>  T.start;</span><br><span>     alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {</span><br><span style="color: hsl(120, 100%, 40%);">+  [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej(cause))) {</span><br><span>          setverdict(pass);</span><br><span>            }</span><br><span>    [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt {</span><br><span>diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn</span><br><span>index e2728d3..05d0ef6 100644</span><br><span>--- a/msc/MSC_Tests.ttcn</span><br><span>+++ b/msc/MSC_Tests.ttcn</span><br><span>@@ -561,6 +561,61 @@</span><br><span>        vc_conn.done;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Proceed with LU but never receive an TMSI Realloc from MS after LU Accept (OS#4337).</span><br><span style="color: hsl(120, 100%, 40%);">+ * TS 24.008 sec 4.3.1.5 states MSC should simply release all MM connections.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+friend function f_tc_lu_imsi_timeout_tmsi_realloc(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init_handler(pars);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+      var PDU_DTAP_MT dtap_mt;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* tell GSUP dispatcher to send this IMSI to us */</span><br><span style="color: hsl(120, 100%, 40%);">+    f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(120, 100%, 40%);">+   if (g_pars.ran_is_geran) {</span><br><span style="color: hsl(120, 100%, 40%);">+            f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+              if (g_pars.send_early_cm) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span style="color: hsl(120, 100%, 40%);">+           }</span><br><span style="color: hsl(120, 100%, 40%);">+     } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              f_ranap_initial_ue(l3_lu);</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%);">+   f_mm_imei_early();</span><br><span style="color: hsl(120, 100%, 40%);">+    f_mm_common();</span><br><span style="color: hsl(120, 100%, 40%);">+        f_msc_lu_hlr();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_mm_imei();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) -> value dtap_mt {}</span><br><span style="color: hsl(120, 100%, 40%);">+     [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          setverdict(fail, "Expected LU ACK, but received LU REJ");</span><br><span style="color: hsl(120, 100%, 40%);">+           mtc.stop;</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%);">+   /* currently (due to bug OS#4337), an extra LU reject is received before</span><br><span style="color: hsl(120, 100%, 40%);">+         terminating the connection. Enabling following line makes the test</span><br><span style="color: hsl(120, 100%, 40%);">+    pass: */</span><br><span style="color: hsl(120, 100%, 40%);">+   //f_expect_lu_reject('16'O); /* Cause: congestion */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* f_expect_lu_reject() already waits for T"-1" (X1, 5 seconds), but give some</span><br><span style="color: hsl(120, 100%, 40%);">+         extra time to avoid race conditons... */</span><br><span style="color: hsl(120, 100%, 40%);">+   f_expect_clear(7.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_lu_imsi_timeout_tmsi_realloc() runs on MTC_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     var BSC_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   vc_conn := f_start_handler(refers(f_tc_lu_imsi_timeout_tmsi_realloc), 5);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> /* Send CM SERVICE REQ for IMSI that has never performed LU before */</span><br><span> friend function f_tc_cmserv_imsi_unknown(charstring id, BSC_ConnHdlrPars pars)</span><br><span>@@ -5719,6 +5774,7 @@</span><br><span>    execute( TC_lu_imsi_timeout_gsup() );</span><br><span>        execute( TC_lu_imsi_auth_tmsi() );</span><br><span>   execute( TC_lu_imsi_auth3g_tmsi() );</span><br><span style="color: hsl(120, 100%, 40%);">+  execute( TC_lu_imsi_timeout_tmsi_realloc() );</span><br><span>        execute( TC_cmserv_imsi_unknown() );</span><br><span>         execute( TC_lu_and_mo_call() );</span><br><span>      execute( TC_lu_auth_sai_timeout() );</span><br><span>diff --git a/msc/MSC_Tests_Iu.ttcn b/msc/MSC_Tests_Iu.ttcn</span><br><span>index 9ea0c76..b80005e 100644</span><br><span>--- a/msc/MSC_Tests_Iu.ttcn</span><br><span>+++ b/msc/MSC_Tests_Iu.ttcn</span><br><span>@@ -56,6 +56,15 @@</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_iu_lu_imsi_timeout_tmsi_realloc() runs on MTC_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+        var BSC_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init(3);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_vty_config(MSCVTY, "network", "authentication required");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_lu_imsi_timeout_tmsi_realloc), 1005, ran_idx := 2, ran_is_geran := false);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> testcase TC_iu_cmserv_imsi_unknown() runs on MTC_CT {</span><br><span>  var BSC_ConnHdlr vc_conn;</span><br><span>    f_init(3);</span><br><span>@@ -424,6 +433,7 @@</span><br><span>     execute( TC_iu_lu_imsi_reject() );</span><br><span>   execute( TC_iu_lu_imsi_timeout_gsup() );</span><br><span>     execute( TC_iu_lu_imsi_auth3g_tmsi() );</span><br><span style="color: hsl(120, 100%, 40%);">+       execute( TC_iu_lu_imsi_timeout_tmsi_realloc() );</span><br><span>     execute( TC_iu_cmserv_imsi_unknown() );</span><br><span>      execute( TC_iu_lu_and_mo_call() );</span><br><span>   execute( TC_iu_lu_auth_sai_timeout() );</span><br><span>diff --git a/msc/expected-results.xml b/msc/expected-results.xml</span><br><span>index 96af4a4..f94c781 100644</span><br><span>--- a/msc/expected-results.xml</span><br><span>+++ b/msc/expected-results.xml</span><br><span>@@ -7,6 +7,11 @@</span><br><span>   <testcase classname='MSC_Tests' name='TC_lu_imsi_timeout_gsup' time='MASKED'/></span><br><span>   <testcase classname='MSC_Tests' name='TC_lu_imsi_auth_tmsi' time='MASKED'/></span><br><span>   <testcase classname='MSC_Tests' name='TC_lu_imsi_auth3g_tmsi' time='MASKED'/></span><br><span style="color: hsl(120, 100%, 40%);">+  <testcase classname='MSC_Tests' name='TC_lu_imsi_timeout_tmsi_realloc' time='MASKED'></span><br><span style="color: hsl(120, 100%, 40%);">+    <failure type='fail-verdict'>Timeout waiting for ClearCommand/Release</span><br><span style="color: hsl(120, 100%, 40%);">+      MSC_Tests.ttcn:MASKED TC_lu_imsi_timeout_tmsi_realloc testcase</span><br><span style="color: hsl(120, 100%, 40%);">+    </failure></span><br><span style="color: hsl(120, 100%, 40%);">+  </testcase></span><br><span>   <testcase classname='MSC_Tests' name='TC_cmserv_imsi_unknown' time='MASKED'/></span><br><span>   <testcase classname='MSC_Tests' name='TC_lu_and_mo_call' time='MASKED'/></span><br><span>   <testcase classname='MSC_Tests' name='TC_lu_auth_sai_timeout' time='MASKED'/></span><br><span>@@ -126,6 +131,11 @@</span><br><span>     </failure></span><br><span>   </testcase></span><br><span>   <testcase classname='MSC_Tests_Iu' name='TC_iu_lu_imsi_auth3g_tmsi' time='MASKED'/></span><br><span style="color: hsl(120, 100%, 40%);">+  <testcase classname='MSC_Tests_Iu' name='TC_iu_lu_imsi_timeout_tmsi_realloc' time='MASKED'></span><br><span style="color: hsl(120, 100%, 40%);">+    <failure type='fail-verdict'>Timeout waiting for ClearCommand/Release</span><br><span style="color: hsl(120, 100%, 40%);">+      MSC_Tests_Iu.ttcn:MASKED TC_iu_lu_imsi_timeout_tmsi_realloc testcase</span><br><span style="color: hsl(120, 100%, 40%);">+    </failure></span><br><span style="color: hsl(120, 100%, 40%);">+  </testcase></span><br><span>   <testcase classname='MSC_Tests_Iu' name='TC_iu_cmserv_imsi_unknown' time='MASKED'></span><br><span>     <failure type='fail-verdict'>Tguard timeout</span><br><span>       MSC_Tests_Iu.ttcn:MASKED MSC_Tests_Iu control part</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16648">change 16648</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/+/16648"/><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: I603b2b2b1ae7edd6360ea38c6bbbfedc46e9fa5d </div>
<div style="display:none"> Gerrit-Change-Number: 16648 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@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: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>