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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">msc: verify conn and VLR cell id in most tests<br><br>osmo-msc failed to record the Complete Layer 3 Information LAC and CI in the<br>MSC-A as well as the VLR record. Since osmo-msc<br>Iee1781985fb25b21ce27526c6a3768bf70d4dc9a and<br>I194271af2acb37b4f8cc2d106ab2fd2b0d443589, osmo-msc properly records these for<br>successful Complete Layer 3 procedures.<br><br>Incorporate verification of the LAC and CI in all tests calling f_perform_lu()<br>and f_expect_clear(). Implement by scraping the output of vty<br>    'show subscriber imsi 1234 conn'<br><br>Some tests model a failure to attach, or expire the VLR record: for those, add<br>parameter verify_cell_id to g_pars, and pass it as false, to skip checking the<br>LAC and CI.<br><br>Disable CI checking for all Iu tests globally in f_verify_vty_lac_ci(), see<br>OS#4634.<br><br>For the latest build, which does not yet record LAC and CI properly, provide<br>mp_enable_cell_id_test, which skips all cell id verification if set to false.<br>Put to effect by docker-playground I052fea208021509e12826c50474b96474e7a58c2.<br><br>Related: OS#4627<br>Depends: Iee1781985fb25b21ce27526c6a3768bf70d4dc9a (osmo-msc)<br>Change-Id: Ie410714a96353f74a52a104c56fa0a08683e0004<br>---<br>M msc/BSC_ConnectionHandler.ttcn<br>M msc/MSC_Tests.ttcn<br>2 files changed, 135 insertions(+), 26 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 007e541..cc69a68 100644</span><br><span>--- a/msc/BSC_ConnectionHandler.ttcn</span><br><span>+++ b/msc/BSC_ConnectionHandler.ttcn</span><br><span>@@ -59,6 +59,8 @@</span><br><span> </span><br><span> import from SGsAP_Emulation all;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+import from TCCConversion_Functions { function f_strstr };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* this component represents a single subscriber connection */</span><br><span> type component BSC_ConnHdlr extends RAN_ConnHdlr, MNCC_ConnHdlr, GSUP_ConnHdlr, MGCP_ConnHdlr, SMPP_ConnHdlr, CTRL_Adapter_CT, SGsAP_ConnHdlr {</span><br><span>     var BSC_ConnHdlrPars g_pars;</span><br><span>@@ -101,7 +103,8 @@</span><br><span>   integer ran_idx,</span><br><span>     boolean use_umts_aka,</span><br><span>        boolean ran_is_geran,</span><br><span style="color: hsl(0, 100%, 40%);">-   boolean use_osmux</span><br><span style="color: hsl(120, 100%, 40%);">+     boolean use_osmux,</span><br><span style="color: hsl(120, 100%, 40%);">+    boolean verify_cell_id</span><br><span> };</span><br><span> </span><br><span> /* get a one-octet bitmaks of supported algorithms based on Classmark information */</span><br><span>@@ -364,6 +367,8 @@</span><br><span>       /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span>  f_cl3_or_initial_ue(l3_info);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+     f_verify_vty_lac_ci(verify_vlr := false);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  f_mm_common();</span><br><span>       if (g_pars.net.expect_ciph or not g_pars.ran_is_geran) {</span><br><span>             /* implicit CM SERVICE ACCEPT? */</span><br><span>@@ -571,6 +576,96 @@</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+private function f_lac_ci_vty_str(BSSMAP_IE_CellIdentifier cell_id) return charstring</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ return "LAC / cell ID: "</span><br><span style="color: hsl(120, 100%, 40%);">+            & int2str(oct2int(cell_id.cellIdentification.cI_CGI.lac)) & " / "</span><br><span style="color: hsl(120, 100%, 40%);">+           & int2str(oct2int(cell_id.cellIdentification.cI_CGI.ci));</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%);">+/* Get an IMSI's info and verify that the g_pars.cell_id is reflected in the info.</span><br><span style="color: hsl(120, 100%, 40%);">+ * Verify both the "LAC / cell ID" in the VLR and the "LAC / cell ID" in the "Connection:" part, if any.</span><br><span style="color: hsl(120, 100%, 40%);">+ * If verify_vlr == false, then only verify the "Connection:" part, and fail if there is no "Connection:"; this is</span><br><span style="color: hsl(120, 100%, 40%);">+ * useful when a conn has been established, but the subscriber has not been authenticated, so the VLR does not yet</span><br><span style="color: hsl(120, 100%, 40%);">+ * reflect the new conn's cell ID.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+function f_verify_vty_lac_ci(boolean verify_vlr := true) runs on BSC_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+  if (not g_pars.ran_is_geran) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 log("Skipping f_verify_vty_lac_ci(), disabled for Iu");</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+             return;</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (not g_pars.verify_cell_id) {</span><br><span style="color: hsl(120, 100%, 40%);">+              /* Skip this verification; either the TC expects no cell id to end up being accepted, or this was</span><br><span style="color: hsl(120, 100%, 40%);">+              * disabled globally to test an older osmo-msc which doesn't store the cell id properly yet. */</span><br><span style="color: hsl(120, 100%, 40%);">+            log("Skipping f_verify_vty_lac_ci()");</span><br><span style="color: hsl(120, 100%, 40%);">+              setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+             return;</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%);">+   var charstring vty_cmd := "show subscriber imsi " & hex2str(g_pars.imsi) & " conn";</span><br><span style="color: hsl(120, 100%, 40%);">+       var charstring result := f_vty_transceive_ret(MSCVTY, vty_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+       var charstring expect_lac_ci := "LAC / cell ID: "</span><br><span style="color: hsl(120, 100%, 40%);">+           & int2str(oct2int(g_pars.cell_id.cellIdentification.cI_CGI.lac)) & " / "</span><br><span style="color: hsl(120, 100%, 40%);">+            & int2str(oct2int(g_pars.cell_id.cellIdentification.cI_CGI.ci));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        var boolean vlr_matches := false;</span><br><span style="color: hsl(120, 100%, 40%);">+     var boolean connection_present := false;</span><br><span style="color: hsl(120, 100%, 40%);">+      var boolean connection_matches := false;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* There are two occurences of LAC / cell ID: once for the VLR record, and once for the active connection. The</span><br><span style="color: hsl(120, 100%, 40%);">+         * active connection part starts with 'Connection:'. If there is no active connection, that part is omitted.</span><br><span style="color: hsl(120, 100%, 40%);">+   * So, first find out whether there is a 'Connection:' part. Then verify the LAC / cell ID above 'Connection:'</span><br><span style="color: hsl(120, 100%, 40%);">+         * and below 'Connection:', separately.</span><br><span style="color: hsl(120, 100%, 40%);">+        */</span><br><span style="color: hsl(120, 100%, 40%);">+   var integer connection_start := f_strstr(result, "Connection:");</span><br><span style="color: hsl(120, 100%, 40%);">+    connection_present := (connection_start >= 0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   var integer lac_ci_match := f_strstr(result, expect_lac_ci);</span><br><span style="color: hsl(120, 100%, 40%);">+  if (connection_present) {</span><br><span style="color: hsl(120, 100%, 40%);">+             if (lac_ci_match > connection_start) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     /* The first match is below 'Connection:', so the VLR part above it did not match. */</span><br><span style="color: hsl(120, 100%, 40%);">+                 vlr_matches := false;</span><br><span style="color: hsl(120, 100%, 40%);">+                 connection_matches := true;</span><br><span style="color: hsl(120, 100%, 40%);">+           } else if (lac_ci_match >= 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    /* The first match is above 'Connection:', so the VLR part matches. */</span><br><span style="color: hsl(120, 100%, 40%);">+                        vlr_matches := true;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                        /* Now find a match below 'Connection:' */</span><br><span style="color: hsl(120, 100%, 40%);">+                    lac_ci_match := f_strstr(result, expect_lac_ci, connection_start);</span><br><span style="color: hsl(120, 100%, 40%);">+                    connection_matches := (lac_ci_match > 0);</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%);">+              /* There is no 'Connection:', so a match, if any, is from the VLR part. */</span><br><span style="color: hsl(120, 100%, 40%);">+            vlr_matches := (lac_ci_match >= 0);</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%);">+   if (verify_vlr) {</span><br><span style="color: hsl(120, 100%, 40%);">+             if (not vlr_matches) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        setverdict(fail, vty_cmd, " shows mismatching LAC / cell ID in the VLR part, expecting: ",</span><br><span style="color: hsl(120, 100%, 40%);">+                             expect_lac_ci, " -- got: ", result);</span><br><span style="color: hsl(120, 100%, 40%);">+                     return;</span><br><span style="color: hsl(120, 100%, 40%);">+               } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                      log("f_verify_vty_lac_ci(): VLR record matches ", expect_lac_ci);</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%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (connection_present) {</span><br><span style="color: hsl(120, 100%, 40%);">+             if (not connection_matches) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 setverdict(fail, vty_cmd, " shows mismatching LAC cell ID in the 'Connection' part, expecting: ",</span><br><span style="color: hsl(120, 100%, 40%);">+                              expect_lac_ci, " -- got: ", result);</span><br><span style="color: hsl(120, 100%, 40%);">+             } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                      log("f_verify_vty_lac_ci(): Active connection matches ", expect_lac_ci);</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%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (not verify_vlr and not connection_present) {</span><br><span style="color: hsl(120, 100%, 40%);">+              setverdict(fail, "f_verify_vty_lac_ci(verify_vlr := false) called, which requires an active connection, but there is no 'Connection:' part to verify in ", result);</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_perform_lu()</span><br><span> runs on BSC_ConnHdlr {</span><br><span>  var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi)</span><br><span>@@ -589,6 +684,10 @@</span><br><span>               f_ranap_initial_ue(l3_lu);</span><br><span>   }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* at this point the conn has been established, but the subscriber has not been authenticated, so the VLR does</span><br><span style="color: hsl(120, 100%, 40%);">+         * not yet reflect this conn's cell ID. */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_verify_vty_lac_ci(verify_vlr := false);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  f_mm_imei_early();</span><br><span>   f_mm_common();</span><br><span>       f_msc_lu_hlr();</span><br><span>@@ -1574,7 +1673,7 @@</span><br><span>              }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_expect_clear(float t := 5.0) runs on BSC_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+function f_expect_clear(float t := 5.0, boolean verify_vlr_cell_id := true) runs on BSC_ConnHdlr {</span><br><span>         timer T := t;</span><br><span> </span><br><span>    T.start;</span><br><span>@@ -1586,6 +1685,11 @@</span><br><span>            mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (verify_vlr_cell_id) {</span><br><span style="color: hsl(120, 100%, 40%);">+             /* Now the conn is gone, but the VLR reflects the cell ID */</span><br><span style="color: hsl(120, 100%, 40%);">+          f_verify_vty_lac_ci();</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span> }</span><br><span> </span><br><span> function f_create_bssmap_exp_handoverRequest(integer targetPointCode) runs on BSC_ConnHdlr {</span><br><span>diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn</span><br><span>index bfac7e9..d59d165 100644</span><br><span>--- a/msc/MSC_Tests.ttcn</span><br><span>+++ b/msc/MSC_Tests.ttcn</span><br><span>@@ -167,6 +167,8 @@</span><br><span>                        rctx := 1</span><br><span>            }</span><br><span>    };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  boolean mp_enable_cell_id_test := true;</span><br><span> }</span><br><span> </span><br><span> /* altstep for the global guard timer (only used when BSSAP_DIRECT</span><br><span>@@ -368,7 +370,8 @@</span><br><span> </span><br><span> /* FIXME: move into BSC_ConnectionHandler? */</span><br><span> function f_init_pars(integer imsi_suffix, boolean sgsap := false, boolean gsup := true, integer ran_idx := 0,</span><br><span style="color: hsl(0, 100%, 40%);">-                   boolean ran_is_geran := true, boolean use_osmux := false, OCT4 gsup_sid := '20000101'O)</span><br><span style="color: hsl(120, 100%, 40%);">+               boolean ran_is_geran := true, boolean use_osmux := false, OCT4 gsup_sid := '20000101'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               boolean verify_cell_id := true)</span><br><span> runs on MTC_CT return BSC_ConnHdlrPars {</span><br><span>     var BSC_ConnHdlrNetworkPars net_pars := {</span><br><span>            kc_support := '0A'O,    /* A5/1 and A5/3 enabled */</span><br><span>@@ -404,7 +407,8 @@</span><br><span>            ran_idx := ran_idx,</span><br><span>          use_umts_aka := false,</span><br><span>               ran_is_geran := ran_is_geran,</span><br><span style="color: hsl(0, 100%, 40%);">-           use_osmux := use_osmux</span><br><span style="color: hsl(120, 100%, 40%);">+                use_osmux := use_osmux,</span><br><span style="color: hsl(120, 100%, 40%);">+               verify_cell_id := mp_enable_cell_id_test and verify_cell_id</span><br><span>  };</span><br><span>   if (not ran_is_geran) {</span><br><span>              pars.use_umts_aka := true;</span><br><span>@@ -447,9 +451,10 @@</span><br><span>    return vc_conn;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_start_handler(void_fn fn, integer imsi_suffix, integer ran_idx := 0, boolean ran_is_geran := true, boolean use_osmux := false)</span><br><span style="color: hsl(120, 100%, 40%);">+function f_start_handler(void_fn fn, integer imsi_suffix, integer ran_idx := 0, boolean ran_is_geran := true, boolean use_osmux := false,</span><br><span style="color: hsl(120, 100%, 40%);">+                   boolean verify_cell_id := true)</span><br><span> runs on MTC_CT return BSC_ConnHdlr {</span><br><span style="color: hsl(0, 100%, 40%);">-        return f_start_handler_with_pars(fn, f_init_pars(imsi_suffix, ran_idx := ran_idx, ran_is_geran := ran_is_geran, use_osmux := use_osmux));</span><br><span style="color: hsl(120, 100%, 40%);">+     return f_start_handler_with_pars(fn, f_init_pars(imsi_suffix, ran_idx := ran_idx, ran_is_geran := ran_is_geran, use_osmux := use_osmux, verify_cell_id := verify_cell_id));</span><br><span> }</span><br><span> </span><br><span> private function f_tc_lu_imsi_noauth_tmsi(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {</span><br><span>@@ -502,7 +507,7 @@</span><br><span>         var BSC_ConnHdlr vc_conn;</span><br><span>    f_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_lu_imsi_reject), 3);</span><br><span style="color: hsl(120, 100%, 40%);">+   vc_conn := f_start_handler(refers(f_tc_lu_imsi_reject), 3, verify_cell_id := false);</span><br><span>         vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -533,7 +538,7 @@</span><br><span>         var BSC_ConnHdlr vc_conn;</span><br><span>    f_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_lu_imsi_timeout_gsup), 4);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_lu_imsi_timeout_gsup), 4, verify_cell_id := false);</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -611,7 +616,7 @@</span><br><span> </span><br><span>     /* f_expect_lu_reject() already waits for T"-1" (X1, 5 seconds), but give some</span><br><span>        extra time to avoid race conditons... */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_expect_clear(7.0);</span><br><span style="color: hsl(120, 100%, 40%);">+  f_expect_clear(7.0, verify_vlr_cell_id := false);</span><br><span> </span><br><span>        setverdict(pass);</span><br><span> }</span><br><span>@@ -663,7 +668,7 @@</span><br><span> testcase TC_cmserv_imsi_unknown() runs on MTC_CT {</span><br><span>   var BSC_ConnHdlr vc_conn;</span><br><span>    f_init();</span><br><span style="color: hsl(0, 100%, 40%);">-       vc_conn := f_start_handler(refers(f_tc_cmserv_imsi_unknown), 6);</span><br><span style="color: hsl(120, 100%, 40%);">+      vc_conn := f_start_handler(refers(f_tc_cmserv_imsi_unknown), 6, verify_cell_id := false);</span><br><span>    vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -751,7 +756,7 @@</span><br><span>         f_init();</span><br><span>    f_vty_config(MSCVTY, "network", "authentication required");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_timeout), 8);</span><br><span style="color: hsl(120, 100%, 40%);">+      vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_timeout), 8, verify_cell_id := false);</span><br><span>    vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -785,7 +790,7 @@</span><br><span>         f_init();</span><br><span>    f_vty_config(MSCVTY, "network", "authentication required");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_err), 9);</span><br><span style="color: hsl(120, 100%, 40%);">+  vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_err), 9, verify_cell_id := false);</span><br><span>        vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -894,7 +899,7 @@</span><br><span>         var BSC_ConnHdlr vc_conn;</span><br><span>    f_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_lu_by_imei), 12);</span><br><span style="color: hsl(120, 100%, 40%);">+      vc_conn := f_start_handler(refers(f_tc_lu_by_imei), 12, verify_cell_id := false);</span><br><span>    vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -974,7 +979,7 @@</span><br><span>         var BSC_ConnHdlr vc_conn;</span><br><span>    f_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imsi), 14);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imsi), 14, verify_cell_id := false);</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -1000,7 +1005,7 @@</span><br><span>       var BSC_ConnHdlr vc_conn;</span><br><span>    f_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_tmsi), 15);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_tmsi), 15, verify_cell_id := false);</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -1026,7 +1031,7 @@</span><br><span>       var BSC_ConnHdlr vc_conn;</span><br><span>    f_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imei), 16);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imei), 16, verify_cell_id := false);</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -1053,7 +1058,7 @@</span><br><span>       var BSC_ConnHdlr vc_conn;</span><br><span>    f_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_emerg_call_imei_reject), 17);</span><br><span style="color: hsl(120, 100%, 40%);">+  vc_conn := f_start_handler(refers(f_tc_emerg_call_imei_reject), 17, verify_cell_id := false);</span><br><span>        vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -1195,7 +1200,7 @@</span><br><span>       f_init();</span><br><span>    f_vty_config(MSCVTY, "network", "authentication required");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     vc_conn := f_start_handler(refers(f_tc_lu_auth_2G_fail), 23);</span><br><span style="color: hsl(120, 100%, 40%);">+ vc_conn := f_start_handler(refers(f_tc_lu_auth_2G_fail), 23, verify_cell_id := false);</span><br><span>       vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -1575,7 +1580,7 @@</span><br><span>       var BSC_ConnHdlr vc_conn;</span><br><span>    f_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_gsup_cancel), 33);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_gsup_cancel), 33, verify_cell_id := false);</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -1659,7 +1664,7 @@</span><br><span>       f_vty_config(MSCVTY, "network", "authentication required");</span><br><span>      f_vty_config(MSCVTY, "network", "encryption a5 3");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), 360);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), 360, verify_cell_id := false);</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> testcase TC_lu_imsi_auth_tmsi_encr_3_1_no_cm() runs on MTC_CT {</span><br><span>@@ -1669,7 +1674,7 @@</span><br><span>        f_vty_config(MSCVTY, "network", "authentication required");</span><br><span>      f_vty_config(MSCVTY, "network", "encryption a5 3");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     pars := f_init_pars(361);</span><br><span style="color: hsl(120, 100%, 40%);">+     pars := f_init_pars(361, verify_cell_id := false);</span><br><span>   pars.send_early_cm := false;</span><br><span>         vc_conn := f_start_handler_with_pars(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), pars);</span><br><span>         vc_conn.done;</span><br><span>@@ -1684,7 +1689,7 @@</span><br><span>         * message that is reported in OS#2947 to trigger the segfault */</span><br><span>    f_vty_config(MSCVTY, "log stderr", "logging level msc debug");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), 362);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), 362, verify_cell_id := false);</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -1726,7 +1731,7 @@</span><br><span>       f_vty_config(MSCVTY, "network", "authentication required");</span><br><span>      f_vty_config(MSCVTY, "network", "encryption a5 1 3");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_13_2), 37);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_13_2), 37, verify_cell_id := false);</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -3986,7 +3991,7 @@</span><br><span>       f_init();</span><br><span>    f_vty_config(MSCVTY, "network", "encryption a5 1");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     vc_conn := f_start_handler(refers(f_tc_cipher_complete_with_invalid_cipher), 52);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_tc_cipher_complete_with_invalid_cipher), 52, verify_cell_id := false);</span><br><span>   vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -5999,7 +6004,7 @@</span><br><span> </span><br><span>   f_init();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   vc_conn := f_start_handler(refers(f_tc_mm_id_resp_no_identity), 7);</span><br><span style="color: hsl(120, 100%, 40%);">+   vc_conn := f_start_handler(refers(f_tc_mm_id_resp_no_identity), 7, verify_cell_id := false);</span><br><span>         vc_conn.done;</span><br><span> }</span><br><span> </span><br><span>@@ -6030,7 +6035,7 @@</span><br><span> </span><br><span>   /* The recent OsmoMSC keeps subscriber in its VLR unless the Paging is completed.</span><br><span>     * In this case we do not send anything and just wait for a Clear Command. */</span><br><span style="color: hsl(0, 100%, 40%);">-   f_expect_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+     f_expect_clear(verify_vlr_cell_id := false);</span><br><span> }</span><br><span> testcase TC_lu_and_expire_while_paging() runs on MTC_CT {</span><br><span>       var BSC_ConnHdlr vc_conn;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998">change 18998</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/+/18998"/><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: Ie410714a96353f74a52a104c56fa0a08683e0004 </div>
<div style="display:none"> Gerrit-Change-Number: 18998 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </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>