<p>osmith <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/12478">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  osmith: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">VLR: send CHECK-IMEI to EIR/HLR<br><br>When check-imei-req is enabled in the VTY config, do not accept IMEIs<br>sent by the ME directly anymore. Send the IMEI to the EIR/HLR and wait<br>for its ACK or NACK.<br><br>OsmoHLR also accepts all IMEIs at this point, but this allows to<br>optionally store the IMEI in the HLR DB.<br><br>Depends: Ib240474b0c3c603ba840cf26babb38a44dfc9364 (osmo-hlr)<br>Related: OS#3733<br>Change-Id: Ife868ed71c36cdd02638072abebf61fc949080a7<br>---<br>M include/osmocom/msc/vlr.h<br>M src/libvlr/vlr.c<br>M src/libvlr/vlr_core.h<br>M src/libvlr/vlr_lu_fsm.c<br>M tests/msc_vlr/msc_vlr_test_gsm_authen.c<br>M tests/msc_vlr/msc_vlr_test_gsm_authen.err<br>M tests/msc_vlr/msc_vlr_test_gsm_ciph.c<br>M tests/msc_vlr/msc_vlr_test_gsm_ciph.err<br>M tests/msc_vlr/msc_vlr_test_no_authen.c<br>M tests/msc_vlr/msc_vlr_test_no_authen.err<br>10 files changed, 918 insertions(+), 57 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h</span><br><span>index b328b70..83c8e1b 100644</span><br><span>--- a/include/osmocom/msc/vlr.h</span><br><span>+++ b/include/osmocom/msc/vlr.h</span><br><span>@@ -65,6 +65,8 @@</span><br><span>        VLR_ULA_E_ID_IMSI,      /* IMSI recieved from MS */</span><br><span>  VLR_ULA_E_ID_IMEI,      /* IMEI received from MS */</span><br><span>  VLR_ULA_E_ID_IMEISV,    /* IMEISV received from MS */</span><br><span style="color: hsl(120, 100%, 40%);">+ VLR_ULA_E_HLR_IMEI_ACK, /* Check_IMEI_VLR result from HLR */</span><br><span style="color: hsl(120, 100%, 40%);">+  VLR_ULA_E_HLR_IMEI_NACK,/* Check_IMEI_VLR result from HLR */</span><br><span>         VLR_ULA_E_HLR_LU_RES,   /* HLR UpdateLocation result */</span><br><span>      VLR_ULA_E_UPD_HLR_COMPL,/* UpdatE_HLR_VLR result */</span><br><span>  VLR_ULA_E_LU_COMPL_SUCCESS,/* Location_Update_Completion_VLR result */</span><br><span>diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c</span><br><span>index 887602c..451c521 100644</span><br><span>--- a/src/libvlr/vlr.c</span><br><span>+++ b/src/libvlr/vlr.c</span><br><span>@@ -657,6 +657,28 @@</span><br><span>   return vlr_subscr_tx_gsup_message(vsub, &gsup_msg);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Initiate Check_IMEI_VLR Procedure (23.018 Chapter 7.1.2.9) */</span><br><span style="color: hsl(120, 100%, 40%);">+int vlr_subscr_tx_req_check_imei(const struct vlr_subscr *vsub)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        struct osmo_gsup_message gsup_msg = {0};</span><br><span style="color: hsl(120, 100%, 40%);">+      uint8_t imei_enc[GSM23003_IMEI_NUM_DIGITS+2]; /* +2: IE header */</span><br><span style="color: hsl(120, 100%, 40%);">+     int len;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Encode IMEI */</span><br><span style="color: hsl(120, 100%, 40%);">+     len = gsm48_encode_bcd_number(imei_enc, sizeof(imei_enc), 0, vsub->imei);</span><br><span style="color: hsl(120, 100%, 40%);">+  if (len < 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGVSUBP(LOGL_ERROR, vsub, "Error: cannot encode IMEI '%s'\n", vsub->imei);</span><br><span style="color: hsl(120, 100%, 40%);">+              return -ENOSPC;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_msg.imei_enc = imei_enc;</span><br><span style="color: hsl(120, 100%, 40%);">+ gsup_msg.imei_enc_len = len;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Send CHECK_IMEI_REQUEST */</span><br><span style="color: hsl(120, 100%, 40%);">+ gsup_msg.message_type = OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST;</span><br><span style="color: hsl(120, 100%, 40%);">+    OSMO_STRLCPY_ARRAY(gsup_msg.imsi, vsub->imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+     return vlr_tx_gsup_message(vsub->vlr, &gsup_msg);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Tell HLR that authentication failure occurred */</span><br><span> int vlr_subscr_tx_auth_fail_rep(const struct vlr_subscr *vsub)</span><br><span> {</span><br><span>@@ -991,6 +1013,29 @@</span><br><span>  return rc;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Handle Check_IMEI_VLR result and error from HLR */</span><br><span style="color: hsl(120, 100%, 40%);">+static int vlr_subscr_handle_check_imei(struct vlr_subscr *vsub, const struct osmo_gsup_message *gsup)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!vsub->lu_fsm) {</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGVSUBP(LOGL_ERROR, vsub, "Rx %s without LU in progress\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                         osmo_gsup_message_type_name(gsup->message_type));</span><br><span style="color: hsl(120, 100%, 40%);">+         return -ENODEV;</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 (gsup->message_type == OSMO_GSUP_MSGT_CHECK_IMEI_RESULT) {</span><br><span style="color: hsl(120, 100%, 40%);">+              if (gsup->imei_result == OSMO_GSUP_IMEI_RESULT_ACK)</span><br><span style="color: hsl(120, 100%, 40%);">+                        osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_HLR_IMEI_ACK, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+                else</span><br><span style="color: hsl(120, 100%, 40%);">+                  osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_HLR_IMEI_NACK, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+       } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGVSUBP(LOGL_ERROR, vsub, "Check_IMEI_VLR failed; gmm_cause: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                         get_value_string(gsm48_gmm_cause_names, gsup->cause));</span><br><span style="color: hsl(120, 100%, 40%);">+            osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_HLR_IMEI_NACK, NULL);</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%);">+   return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Incoming handler for GSUP from HLR.</span><br><span>  * Keep this function non-static for direct invocation by unit tests. */</span><br><span> int vlr_gsupc_read_cb(struct osmo_gsup_client *gsupc, struct msgb *msg)</span><br><span>@@ -1060,6 +1105,10 @@</span><br><span>                     gsup.message_type);</span><br><span>          rc = -GMM_CAUSE_MSGT_NOTEXIST_NOTIMPL;</span><br><span>               break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case OSMO_GSUP_MSGT_CHECK_IMEI_ERROR:</span><br><span style="color: hsl(120, 100%, 40%);">+ case OSMO_GSUP_MSGT_CHECK_IMEI_RESULT:</span><br><span style="color: hsl(120, 100%, 40%);">+                rc = vlr_subscr_handle_check_imei(vsub, &gsup);</span><br><span style="color: hsl(120, 100%, 40%);">+           break;</span><br><span>       default:</span><br><span>             /* Forward message towards MSC */</span><br><span>            rc = vlr->ops.forward_gsup_msg(vsub, &gsup);</span><br><span>diff --git a/src/libvlr/vlr_core.h b/src/libvlr/vlr_core.h</span><br><span>index c249dff..41b8800 100644</span><br><span>--- a/src/libvlr/vlr_core.h</span><br><span>+++ b/src/libvlr/vlr_core.h</span><br><span>@@ -7,5 +7,6 @@</span><br><span> int vlr_subscr_req_lu(struct vlr_subscr *vsub) __attribute__((warn_unused_result));</span><br><span> int vlr_subscr_req_sai(struct vlr_subscr *vsub, const uint8_t *auts,</span><br><span>                       const uint8_t *auts_rand) __attribute__((warn_unused_result));</span><br><span style="color: hsl(120, 100%, 40%);">+int vlr_subscr_tx_req_check_imei(const struct vlr_subscr *vsub);</span><br><span> void vlr_subscr_update_tuples(struct vlr_subscr *vsub,</span><br><span>                          const struct osmo_gsup_message *gsup);</span><br><span>diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c</span><br><span>index 8640d2b..a97e97a 100644</span><br><span>--- a/src/libvlr/vlr_lu_fsm.c</span><br><span>+++ b/src/libvlr/vlr_lu_fsm.c</span><br><span>@@ -653,6 +653,8 @@</span><br><span>  OSMO_VALUE_STRING(VLR_ULA_E_ID_IMSI),</span><br><span>        OSMO_VALUE_STRING(VLR_ULA_E_ID_IMEI),</span><br><span>        OSMO_VALUE_STRING(VLR_ULA_E_ID_IMEISV),</span><br><span style="color: hsl(120, 100%, 40%);">+       OSMO_VALUE_STRING(VLR_ULA_E_HLR_IMEI_ACK),</span><br><span style="color: hsl(120, 100%, 40%);">+    OSMO_VALUE_STRING(VLR_ULA_E_HLR_IMEI_NACK),</span><br><span>  OSMO_VALUE_STRING(VLR_ULA_E_HLR_LU_RES),</span><br><span>     OSMO_VALUE_STRING(VLR_ULA_E_UPD_HLR_COMPL),</span><br><span>  OSMO_VALUE_STRING(VLR_ULA_E_LU_COMPL_SUCCESS),</span><br><span>@@ -1229,9 +1231,17 @@</span><br><span>                                     LU_COMPL_VLR_E_NEW_TMSI_ACK, NULL);</span><br><span>           break;</span><br><span>       case VLR_ULA_E_ID_IMEI:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* Got the IMEI from ME, now send it to HLR */</span><br><span style="color: hsl(120, 100%, 40%);">+                vlr_subscr_tx_req_check_imei(lfp->vsub);</span><br><span style="color: hsl(120, 100%, 40%);">+           break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case VLR_ULA_E_HLR_IMEI_ACK:</span><br><span>                 osmo_fsm_inst_dispatch(lfp->lu_compl_vlr_fsm,</span><br><span>                                    LU_COMPL_VLR_E_IMEI_CHECK_ACK, NULL);</span><br><span>                 break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case VLR_ULA_E_HLR_IMEI_NACK:</span><br><span style="color: hsl(120, 100%, 40%);">+         osmo_fsm_inst_dispatch(lfp->lu_compl_vlr_fsm,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     LU_COMPL_VLR_E_IMEI_CHECK_NACK, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+         break;</span><br><span>       case VLR_ULA_E_LU_COMPL_SUCCESS:</span><br><span>             lu_fsm_discard_lu_compl_fsm(fi);</span><br><span> </span><br><span>@@ -1362,7 +1372,9 @@</span><br><span>                                  S(VLR_ULA_E_LU_COMPL_FAILURE) |</span><br><span>                              S(VLR_ULA_E_NEW_TMSI_ACK) |</span><br><span>                                  S(VLR_ULA_E_ID_IMEI) |</span><br><span style="color: hsl(0, 100%, 40%);">-                          S(VLR_ULA_E_ID_IMEISV),</span><br><span style="color: hsl(120, 100%, 40%);">+                               S(VLR_ULA_E_ID_IMEISV) |</span><br><span style="color: hsl(120, 100%, 40%);">+                              S(VLR_ULA_E_HLR_IMEI_ACK) |</span><br><span style="color: hsl(120, 100%, 40%);">+                           S(VLR_ULA_E_HLR_IMEI_NACK),</span><br><span>                 .out_state_mask = S(VLR_ULA_S_DONE),</span><br><span>                 .name = OSMO_STRINGIFY(VLR_ULA_S_WAIT_LU_COMPL),</span><br><span>             .action = lu_fsm_wait_lu_compl,</span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.c b/tests/msc_vlr/msc_vlr_test_gsm_authen.c</span><br><span>index 46dd9a1..f6f1ab6 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_gsm_authen.c</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.c</span><br><span>@@ -573,9 +573,15 @@</span><br><span>      EXPECT_ACCEPTED(false);</span><br><span>      thwart_rx_non_initial_requests();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   btw("MS replies with an Identity Response");</span><br><span style="color: hsl(0, 100%, 40%);">-  expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span>    ms_sends_msg("0559084a32244332244302");</span><br><span style="color: hsl(120, 100%, 40%);">+     EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   btw("HLR accepts the IMEI");</span><br><span style="color: hsl(120, 100%, 40%);">+        expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ gsup_rx("32010809710000004026f0510100", NULL);</span><br><span>     VERBOSE_ASSERT(bssap_clear_sent, == true, "%d");</span><br><span> </span><br><span>       btw("LU was successful, and the conn has already been closed");</span><br><span>@@ -600,6 +606,192 @@</span><br><span>    comment_end();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void test_gsm_authen_imei_nack()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   struct vlr_subscr *vsub;</span><br><span style="color: hsl(120, 100%, 40%);">+      const char *imsi = "901700000004620";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     comment_start();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    net->authentication_required = true;</span><br><span style="color: hsl(120, 100%, 40%);">+       net->vlr->cfg.check_imei_rqd = true;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  btw("Location Update request causes a GSUP Send Auth Info request to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+ lu_result_sent = RES_NONE;</span><br><span style="color: hsl(120, 100%, 40%);">+    gsup_expect_tx("08010809710000004026f0");</span><br><span style="color: hsl(120, 100%, 40%);">+   ms_sends_msg("0508020081680001"</span><br><span style="color: hsl(120, 100%, 40%);">+                  "30" /* <-- Revision Level == 1, i.e. is_r99 == false */</span><br><span style="color: hsl(120, 100%, 40%);">+                 "089910070000006402");</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(gsup_tx_confirmed);</span><br><span style="color: hsl(120, 100%, 40%);">+       VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS");</span><br><span style="color: hsl(120, 100%, 40%);">+       auth_request_sent = false;</span><br><span style="color: hsl(120, 100%, 40%);">+    auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b";</span><br><span style="color: hsl(120, 100%, 40%);">+      auth_request_expect_autn = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */</span><br><span style="color: hsl(120, 100%, 40%);">+       gsup_rx("0a"</span><br><span style="color: hsl(120, 100%, 40%);">+                /* imsi */</span><br><span style="color: hsl(120, 100%, 40%);">+            "0108" "09710000004026f0"</span><br><span style="color: hsl(120, 100%, 40%);">+         /* 5 auth vectors... */</span><br><span style="color: hsl(120, 100%, 40%);">+               /* TL    TL     rand */</span><br><span style="color: hsl(120, 100%, 40%);">+               "0322"  "2010" "585df1ae287f6e273dce07090d61320b"</span><br><span style="color: hsl(120, 100%, 40%);">+               /*       TL     sres       TL     kc */</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "2d8b2c3e" "2208" "61855fb81fc2a800"</span><br><span style="color: hsl(120, 100%, 40%);">+           "0322"  "2010" "12aca96fb4ffdea5c985cbafa9b6e18b"</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "20bde240" "2208" "07fa7502e07e1c00"</span><br><span style="color: hsl(120, 100%, 40%);">+           "0322"  "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42"</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "a29514ae" "2208" "e2b234f807886400"</span><br><span style="color: hsl(120, 100%, 40%);">+           "0322"  "2010" "fa8f20b781b5881329d4fea26b1a3c51"</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "5afc8d72" "2208" "2392f14f709ae000"</span><br><span style="color: hsl(120, 100%, 40%);">+           "0322"  "2010" "0fd4cc8dbe8715d1f439e304edfd68dc"</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000",</span><br><span style="color: hsl(120, 100%, 40%);">+          NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+        VERBOSE_ASSERT(auth_request_sent, == true, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject");</span><br><span style="color: hsl(120, 100%, 40%);">+        gsup_rx("06010809710000004026f0", NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+    EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+  gsup_expect_tx("04010809710000004026f0280102");</span><br><span style="color: hsl(120, 100%, 40%);">+     ms_sends_msg("05542d8b2c3e");</span><br><span style="color: hsl(120, 100%, 40%);">+       VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT");</span><br><span style="color: hsl(120, 100%, 40%);">+       gsup_rx("10010809710000004026f00804036470f1",</span><br><span style="color: hsl(120, 100%, 40%);">+               "12010809710000004026f0");</span><br><span style="color: hsl(120, 100%, 40%);">+  VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS");</span><br><span style="color: hsl(120, 100%, 40%);">+       dtap_expect_tx("051802");</span><br><span style="color: hsl(120, 100%, 40%);">+   gsup_rx("06010809710000004026f0", NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  btw("We will only do business when the IMEI is known");</span><br><span style="color: hsl(120, 100%, 40%);">+     EXPECT_CONN_COUNT(1);</span><br><span style="color: hsl(120, 100%, 40%);">+ vsub = vlr_subscr_find_by_imsi(net->vlr, imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+    OSMO_ASSERT(vsub);</span><br><span style="color: hsl(120, 100%, 40%);">+    VERBOSE_ASSERT(vsub->imei[0], == 0, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+       vlr_subscr_put(vsub);</span><br><span style="color: hsl(120, 100%, 40%);">+ EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span style="color: hsl(120, 100%, 40%);">+     ms_sends_msg("0559084a32244332244302");</span><br><span style="color: hsl(120, 100%, 40%);">+     EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ btw("HLR does not like the IMEI and sends NACK");</span><br><span style="color: hsl(120, 100%, 40%);">+   gsup_rx("32010809710000004026f0510101", NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+      EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   bss_sends_clear_complete();</span><br><span style="color: hsl(120, 100%, 40%);">+   EXPECT_CONN_COUNT(0);</span><br><span style="color: hsl(120, 100%, 40%);">+ clear_vlr();</span><br><span style="color: hsl(120, 100%, 40%);">+  comment_end();</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%);">+static void test_gsm_authen_imei_err()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        struct vlr_subscr *vsub;</span><br><span style="color: hsl(120, 100%, 40%);">+      const char *imsi = "901700000004620";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     comment_start();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    net->authentication_required = true;</span><br><span style="color: hsl(120, 100%, 40%);">+       net->vlr->cfg.check_imei_rqd = true;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  btw("Location Update request causes a GSUP Send Auth Info request to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+ lu_result_sent = RES_NONE;</span><br><span style="color: hsl(120, 100%, 40%);">+    gsup_expect_tx("08010809710000004026f0");</span><br><span style="color: hsl(120, 100%, 40%);">+   ms_sends_msg("0508020081680001"</span><br><span style="color: hsl(120, 100%, 40%);">+                  "30" /* <-- Revision Level == 1, i.e. is_r99 == false */</span><br><span style="color: hsl(120, 100%, 40%);">+                 "089910070000006402");</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(gsup_tx_confirmed);</span><br><span style="color: hsl(120, 100%, 40%);">+       VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS");</span><br><span style="color: hsl(120, 100%, 40%);">+       auth_request_sent = false;</span><br><span style="color: hsl(120, 100%, 40%);">+    auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b";</span><br><span style="color: hsl(120, 100%, 40%);">+      auth_request_expect_autn = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */</span><br><span style="color: hsl(120, 100%, 40%);">+       gsup_rx("0a"</span><br><span style="color: hsl(120, 100%, 40%);">+                /* imsi */</span><br><span style="color: hsl(120, 100%, 40%);">+            "0108" "09710000004026f0"</span><br><span style="color: hsl(120, 100%, 40%);">+         /* 5 auth vectors... */</span><br><span style="color: hsl(120, 100%, 40%);">+               /* TL    TL     rand */</span><br><span style="color: hsl(120, 100%, 40%);">+               "0322"  "2010" "585df1ae287f6e273dce07090d61320b"</span><br><span style="color: hsl(120, 100%, 40%);">+               /*       TL     sres       TL     kc */</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "2d8b2c3e" "2208" "61855fb81fc2a800"</span><br><span style="color: hsl(120, 100%, 40%);">+           "0322"  "2010" "12aca96fb4ffdea5c985cbafa9b6e18b"</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "20bde240" "2208" "07fa7502e07e1c00"</span><br><span style="color: hsl(120, 100%, 40%);">+           "0322"  "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42"</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "a29514ae" "2208" "e2b234f807886400"</span><br><span style="color: hsl(120, 100%, 40%);">+           "0322"  "2010" "fa8f20b781b5881329d4fea26b1a3c51"</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "5afc8d72" "2208" "2392f14f709ae000"</span><br><span style="color: hsl(120, 100%, 40%);">+           "0322"  "2010" "0fd4cc8dbe8715d1f439e304edfd68dc"</span><br><span style="color: hsl(120, 100%, 40%);">+                       "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000",</span><br><span style="color: hsl(120, 100%, 40%);">+          NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+        VERBOSE_ASSERT(auth_request_sent, == true, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject");</span><br><span style="color: hsl(120, 100%, 40%);">+        gsup_rx("06010809710000004026f0", NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+    EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+  gsup_expect_tx("04010809710000004026f0280102");</span><br><span style="color: hsl(120, 100%, 40%);">+     ms_sends_msg("05542d8b2c3e");</span><br><span style="color: hsl(120, 100%, 40%);">+       VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT");</span><br><span style="color: hsl(120, 100%, 40%);">+       gsup_rx("10010809710000004026f00804036470f1",</span><br><span style="color: hsl(120, 100%, 40%);">+               "12010809710000004026f0");</span><br><span style="color: hsl(120, 100%, 40%);">+  VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS");</span><br><span style="color: hsl(120, 100%, 40%);">+       dtap_expect_tx("051802");</span><br><span style="color: hsl(120, 100%, 40%);">+   gsup_rx("06010809710000004026f0", NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  btw("We will only do business when the IMEI is known");</span><br><span style="color: hsl(120, 100%, 40%);">+     EXPECT_CONN_COUNT(1);</span><br><span style="color: hsl(120, 100%, 40%);">+ vsub = vlr_subscr_find_by_imsi(net->vlr, imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+    OSMO_ASSERT(vsub);</span><br><span style="color: hsl(120, 100%, 40%);">+    VERBOSE_ASSERT(vsub->imei[0], == 0, "%d");</span><br><span style="color: hsl(120, 100%, 40%);">+       vlr_subscr_put(vsub);</span><br><span style="color: hsl(120, 100%, 40%);">+ EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span style="color: hsl(120, 100%, 40%);">+     ms_sends_msg("0559084a32244332244302");</span><br><span style="color: hsl(120, 100%, 40%);">+     EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ btw("HLR can't parse the message and returns ERR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_rx("31010809710000004026f0020160", NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+      EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   bss_sends_clear_complete();</span><br><span style="color: hsl(120, 100%, 40%);">+   EXPECT_CONN_COUNT(0);</span><br><span style="color: hsl(120, 100%, 40%);">+ clear_vlr();</span><br><span style="color: hsl(120, 100%, 40%);">+  comment_end();</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void test_gsm_authen_tmsi_imei()</span><br><span> {</span><br><span>  struct vlr_subscr *vsub;</span><br><span>@@ -676,8 +868,14 @@</span><br><span>      EXPECT_ACCEPTED(false);</span><br><span>      thwart_rx_non_initial_requests();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   btw("MS replies with an Identity Response");</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span>    ms_sends_msg("0559084a32244332244302");</span><br><span style="color: hsl(120, 100%, 40%);">+     EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   btw("HLR accepts the IMEI");</span><br><span style="color: hsl(120, 100%, 40%);">+        gsup_rx("32010809710000004026f0510100", NULL);</span><br><span> </span><br><span>         btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl");</span><br><span>       EXPECT_CONN_COUNT(1);</span><br><span>@@ -998,6 +1196,8 @@</span><br><span>         test_gsm_authen,</span><br><span>     test_gsm_authen_tmsi,</span><br><span>        test_gsm_authen_imei,</span><br><span style="color: hsl(120, 100%, 40%);">+ test_gsm_authen_imei_nack,</span><br><span style="color: hsl(120, 100%, 40%);">+    test_gsm_authen_imei_err,</span><br><span>    test_gsm_authen_tmsi_imei,</span><br><span>   test_gsm_milenage_authen,</span><br><span>    test_wrong_sres_length,</span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err</span><br><span>index fddfe07..c69fde8 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err</span><br><span>@@ -1254,16 +1254,36 @@</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span> DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(0, 100%, 40%);">-- MS replies with an Identity Response</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span>   MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span> DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span> DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span> DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span> DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR accepts the IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK</span><br><span> - sending LU Accept for IMSI-901700000004620:MSISDN-46071</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span>@@ -1275,11 +1295,12 @@</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_ACCEPTED</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_ACCEPTED}: Received Event RAN_CONN_E_UNUSED</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_ACCEPTED}: state_chg to RAN_CONN_S_RELEASING</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 2 (0x102: dtap,release)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 4</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 3</span><br><span> - BSSAP Clear --GERAN-A--> MS</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span>   bssap_clear_sent == 1</span><br><span> - LU was successful, and the conn has already been closed</span><br><span>   lu_result_sent == 1</span><br><span>@@ -1337,6 +1358,455 @@</span><br><span> full talloc report on 'msgb' (total      0 bytes in   1 blocks)</span><br><span> talloc_total_blocks(tall_bsc_ctx) == 13</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+===== test_gsm_authen_imei_nack</span><br><span style="color: hsl(120, 100%, 40%);">+- Location Update request causes a GSUP Send Auth Info request to HLR</span><br><span style="color: hsl(120, 100%, 40%);">+  MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST</span><br><span style="color: hsl(120, 100%, 40%);">+  new conn</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn{RAN_CONN_S_NEW}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DREF unknown: MSC conn use + compl_l3 == 1 (0x1: compl_l3)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8)</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: Updated ID</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: LOCATION UPDATING REQUEST: MI=IMSI-901700000004620 LU-type=IMSI-ATTACH</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: LU/new-LAC: 1/23</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: is child of RAN_conn(IMSI-901700000004620:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr unknown usage increases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR New subscr, IMSI: 901700000004620</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: Updated ID</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 08010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: Received Event RAN_CONN_E_COMPLETE_LAYER_3</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: state_chg to RAN_CONN_S_AUTH_CIPH</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620: MSC conn use - compl_l3 == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620) Received 5 auth tuples</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- will use GSM AKA (is_r99=no, at->vec.auth_types=0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+- sending GSM Auth Request for IMSI-901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and...</span><br><span style="color: hsl(120, 100%, 40%);">+- ...rand=585df1ae287f6e273dce07090d61320b</span><br><span style="color: hsl(120, 100%, 40%);">+- ...expecting sres=2d8b2c3e</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+  auth_request_sent == 1</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 11: 06010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_HLR_LU_RES</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Event VLR_ULA_E_HLR_LU_RES not permitted</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR</span><br><span style="color: hsl(120, 100%, 40%);">+  MSC <--GERAN-A-- MS: GSM48_MT_MM_AUTH_RESP</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)</span><br><span style="color: hsl(120, 100%, 40%);">+DMM IMSI-901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620) AUTH on GERAN received SRES/RES: 2d8b2c3e (4 bytes)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620) AUTH established GSM security context</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result PASSED</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_AUTHENTICATED}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_AUTHENTICATED}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth()</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph()</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4()</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_INIT}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 04010809710000004026f0280102</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0280102</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 17: 10010809710000004026f00804036470f1</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR IMSI:901700000004620 has MSISDN:46071</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=2)</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Updated ID</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 12010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 11: 06010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_DONE}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_DONE}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_INIT}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DMSC msc_tx 3 bytes to IMSI-901700000004620:MSISDN-46071 via GERAN-A</span><br><span style="color: hsl(120, 100%, 40%);">+- DTAP --GERAN-A--> MS: GSM48_MT_MM_ID_REQ: 051802</span><br><span style="color: hsl(120, 100%, 40%);">+- DTAP matches expected message</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+- We will only do business when the IMEI is known</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_count(&net->ran_conns) == 1</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+  vsub->imei[0] == 0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span style="color: hsl(120, 100%, 40%);">+  MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR does not like the IMEI and sends NACK</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: 32010809710000004026f0510101</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 32010809710000004026f0510101</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_NACK</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_NACK</span><br><span style="color: hsl(120, 100%, 40%);">+- sending LU Reject for IMSI-901700000004620:MSISDN-46071, cause 6</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_FAILURE</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+- sending LU Reject for IMSI-901700000004620:MSISDN-46071, cause 6</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_CN_CLOSE</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_RELEASING</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+- BSSAP Clear --GERAN-A--> MS</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- BSS sends BSSMAP Clear Complete</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - release == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASING}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASING}: state_chg to RAN_CONN_S_RELEASED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: Removing from parent RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL IMSI-901700000004620:MSISDN-46071: Freeing RAN connection</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF freeing VLR subscr IMSI-901700000004620:MSISDN-46071</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASED}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASED}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_count(&net->ran_conns) == 0</span><br><span style="color: hsl(120, 100%, 40%);">+===== test_gsm_authen_imei_nack: SUCCESS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+full talloc report on 'msgb' (total      0 bytes in   1 blocks)</span><br><span style="color: hsl(120, 100%, 40%);">+talloc_total_blocks(tall_bsc_ctx) == 13</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+===== test_gsm_authen_imei_err</span><br><span style="color: hsl(120, 100%, 40%);">+- Location Update request causes a GSUP Send Auth Info request to HLR</span><br><span style="color: hsl(120, 100%, 40%);">+  MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST</span><br><span style="color: hsl(120, 100%, 40%);">+  new conn</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn{RAN_CONN_S_NEW}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DREF unknown: MSC conn use + compl_l3 == 1 (0x1: compl_l3)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8)</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: Updated ID</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: LOCATION UPDATING REQUEST: MI=IMSI-901700000004620 LU-type=IMSI-ATTACH</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: LU/new-LAC: 1/23</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: is child of RAN_conn(IMSI-901700000004620:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr unknown usage increases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR New subscr, IMSI: 901700000004620</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: Updated ID</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 08010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: Received Event RAN_CONN_E_COMPLETE_LAYER_3</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_NEW}: state_chg to RAN_CONN_S_AUTH_CIPH</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620: MSC conn use - compl_l3 == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620) Received 5 auth tuples</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- will use GSM AKA (is_r99=no, at->vec.auth_types=0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+- sending GSM Auth Request for IMSI-901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and...</span><br><span style="color: hsl(120, 100%, 40%);">+- ...rand=585df1ae287f6e273dce07090d61320b</span><br><span style="color: hsl(120, 100%, 40%);">+- ...expecting sres=2d8b2c3e</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+  auth_request_sent == 1</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 11: 06010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_HLR_LU_RES</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Event VLR_ULA_E_HLR_LU_RES not permitted</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR</span><br><span style="color: hsl(120, 100%, 40%);">+  MSC <--GERAN-A-- MS: GSM48_MT_MM_AUTH_RESP</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14)</span><br><span style="color: hsl(120, 100%, 40%);">+DMM IMSI-901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620) AUTH on GERAN received SRES/RES: 2d8b2c3e (4 bytes)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620) AUTH established GSM security context</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result PASSED</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_AUTHENTICATED}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR VLR_Authenticate(IMSI-901700000004620:GERAN-A-0:LU){VLR_SUB_AS_AUTHENTICATED}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth()</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph()</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4()</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_INIT}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 04010809710000004026f0280102</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0280102</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 17: 10010809710000004026f00804036470f1</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR IMSI:901700000004620 has MSISDN:46071</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=2)</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Updated ID</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 12010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+  lu_result_sent == 0</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 11: 06010809710000004026f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_DONE}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A-0:LU){UPD_HLR_VLR_S_DONE}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_INIT}: Allocated</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DMSC msc_tx 3 bytes to IMSI-901700000004620:MSISDN-46071 via GERAN-A</span><br><span style="color: hsl(120, 100%, 40%);">+- DTAP --GERAN-A--> MS: GSM48_MT_MM_ID_REQ: 051802</span><br><span style="color: hsl(120, 100%, 40%);">+- DTAP matches expected message</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+- We will only do business when the IMEI is known</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_count(&net->ran_conns) == 1</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+  vsub->imei[0] == 0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span style="color: hsl(120, 100%, 40%);">+  MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR can't parse the message and returns ERR</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_ERROR: 31010809710000004026f0020160</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 31010809710000004026f0020160</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071) Check_IMEI_VLR failed; gmm_cause: Invalid mandatory information</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_NACK</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_NACK</span><br><span style="color: hsl(120, 100%, 40%);">+- sending LU Reject for IMSI-901700000004620:MSISDN-46071, cause 6</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_FAILURE</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+- sending LU Reject for IMSI-901700000004620:MSISDN-46071, cause 6</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_CN_CLOSE</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_RELEASING</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+- BSSAP Clear --GERAN-A--> MS</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_ERROR: vlr_gsupc_read_cb() returns 0</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- BSS sends BSSMAP Clear Complete</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - release == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASING}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASING}: state_chg to RAN_CONN_S_RELEASED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: Removing from parent RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_DONE}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL IMSI-901700000004620:MSISDN-46071: Freeing RAN connection</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF freeing VLR subscr IMSI-901700000004620:MSISDN-46071</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASED}: Freeing instance</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_RELEASED}: Deallocated</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_count(&net->ran_conns) == 0</span><br><span style="color: hsl(120, 100%, 40%);">+===== test_gsm_authen_imei_err: SUCCESS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+full talloc report on 'msgb' (total      0 bytes in   1 blocks)</span><br><span style="color: hsl(120, 100%, 40%);">+talloc_total_blocks(tall_bsc_ctx) == 13</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> ===== test_gsm_authen_tmsi_imei</span><br><span> - Location Update request causes a GSUP Send Auth Info request to HLR</span><br><span>   MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST</span><br><span>@@ -1485,22 +1955,41 @@</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span> DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(0, 100%, 40%);">-- MS replies with an Identity Response</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span>   MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span> DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span> DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span> DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span> DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR accepts the IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi()</span><br><span style="color: hsl(0, 100%, 40%);">-DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=1)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=2)</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Updated ID</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF</span><br><span> - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100, with TMSI 0x03020100</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(0, 100%, 40%);">-DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(0, 100%, 40%);">-DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span> - a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl</span><br><span>   llist_count(&net->ran_conns) == 1</span><br><span>   lu_result_sent == 1</span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c</span><br><span>index a641ec2..31b5f5d 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c</span><br><span>@@ -553,9 +553,15 @@</span><br><span>        EXPECT_ACCEPTED(false);</span><br><span>      thwart_rx_non_initial_requests();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   btw("MS replies with an Identity Response");</span><br><span style="color: hsl(0, 100%, 40%);">-  expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span>    ms_sends_msg("0559084a32244332244302");</span><br><span style="color: hsl(120, 100%, 40%);">+     EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   btw("HLR accepts the IMEI");</span><br><span style="color: hsl(120, 100%, 40%);">+        expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ gsup_rx("32010809710000004026f0510100", NULL);</span><br><span>     VERBOSE_ASSERT(bssap_clear_sent, == true, "%d");</span><br><span> </span><br><span>       btw("LU was successful, and the conn has already been closed");</span><br><span>@@ -758,8 +764,14 @@</span><br><span>     EXPECT_ACCEPTED(false);</span><br><span>      thwart_rx_non_initial_requests();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   btw("MS replies with an Identity Response");</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span>    ms_sends_msg("0559084a32244332244302");</span><br><span style="color: hsl(120, 100%, 40%);">+     EXPECT_ACCEPTED(false);</span><br><span style="color: hsl(120, 100%, 40%);">+       thwart_rx_non_initial_requests();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   btw("HLR accepts the IMEI");</span><br><span style="color: hsl(120, 100%, 40%);">+        gsup_rx("32010809710000004026f0510100", NULL);</span><br><span> </span><br><span>         btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl");</span><br><span>       EXPECT_CONN_COUNT(1);</span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err</span><br><span>index 65e182c..914683f 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err</span><br><span>@@ -1192,16 +1192,36 @@</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span> DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(0, 100%, 40%);">-- MS replies with an Identity Response</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span>   MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span> DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span> DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span> DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span> DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR accepts the IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK</span><br><span> - sending LU Accept for IMSI-901700000004620:MSISDN-46071</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span>@@ -1213,11 +1233,12 @@</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_ACCEPTED</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_ACCEPTED}: Received Event RAN_CONN_E_UNUSED</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_ACCEPTED}: state_chg to RAN_CONN_S_RELEASING</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 2 (0x102: dtap,release)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 4</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 3</span><br><span> - BSSAP Clear --GERAN-A--> MS</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span>   bssap_clear_sent == 1</span><br><span> - LU was successful, and the conn has already been closed</span><br><span>   lu_result_sent == 1</span><br><span>@@ -1651,22 +1672,41 @@</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span> DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(0, 100%, 40%);">-- MS replies with an Identity Response</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span>   MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span> DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span> DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span> DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span> DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+ran_conn_is_accepted() == false</span><br><span style="color: hsl(120, 100%, 40%);">+  requests shall be thwarted</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: unknown 0x33</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span style="color: hsl(120, 100%, 40%);">+DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR accepts the IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi()</span><br><span style="color: hsl(0, 100%, 40%);">-DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=1)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=2)</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Updated ID</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF</span><br><span> - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100, with TMSI 0x03020100</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(0, 100%, 40%);">-DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(0, 100%, 40%);">-DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span> - a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl</span><br><span>   llist_count(&net->ran_conns) == 1</span><br><span>   lu_result_sent == 1</span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.c b/tests/msc_vlr/msc_vlr_test_no_authen.c</span><br><span>index 3162149..d52d3d6 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_no_authen.c</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_no_authen.c</span><br><span>@@ -428,11 +428,15 @@</span><br><span>  EXPECT_ACCEPTED(false);</span><br><span>      thwart_rx_non_initial_requests();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   btw("MS replies with an Identity Response");</span><br><span style="color: hsl(0, 100%, 40%);">-  expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span>    /* 3GPP TS 23.003: 6.2.1 Composition of IMEI: the IMEI ends with a</span><br><span>    * spare digit that shall be sent as zero by the MS. */</span><br><span>      ms_sends_msg("0559084a32244332244302");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   btw("HLR accepts the IMEI");</span><br><span style="color: hsl(120, 100%, 40%);">+        expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ gsup_rx("32010809710000004026f0510100", NULL);</span><br><span>     VERBOSE_ASSERT(bssap_clear_sent, == true, "%d");</span><br><span> </span><br><span>       btw("LU was successful, and the conn has already been closed");</span><br><span>@@ -499,9 +503,13 @@</span><br><span>     EXPECT_ACCEPTED(false);</span><br><span>      thwart_rx_non_initial_requests();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   btw("MS replies with an Identity Response");</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span>    ms_sends_msg("0559084a32244332244302");</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ btw("HLR accepts the IMEI");</span><br><span style="color: hsl(120, 100%, 40%);">+        gsup_rx("32010809710000004026f0510100", NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl");</span><br><span>       EXPECT_CONN_COUNT(1);</span><br><span>        VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d");</span><br><span>@@ -652,9 +660,13 @@</span><br><span>        EXPECT_ACCEPTED(false);</span><br><span>      thwart_rx_non_initial_requests();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   btw("MS replies with an Identity Response");</span><br><span style="color: hsl(0, 100%, 40%);">-  expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span>    ms_sends_msg("0559084a32244332244302");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   btw("HLR accepts the IMEI");</span><br><span style="color: hsl(120, 100%, 40%);">+        expect_bssap_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ gsup_rx("32010809710000004026f0510100", NULL);</span><br><span>     VERBOSE_ASSERT(bssap_clear_sent, == true, "%d");</span><br><span> </span><br><span>       btw("LU was successful, and the conn has already been closed");</span><br><span>@@ -874,9 +886,13 @@</span><br><span>     EXPECT_ACCEPTED(false);</span><br><span>      thwart_rx_non_initial_requests();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   btw("MS replies with an Identity Response");</span><br><span style="color: hsl(120, 100%, 40%);">+        btw("MS replies with an Identity Response, VLR sends the IMEI to HLR");</span><br><span style="color: hsl(120, 100%, 40%);">+     gsup_expect_tx("30010809710000004026f050090824433224433224f0");</span><br><span>    ms_sends_msg("0559084a32244332244302");</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ btw("HLR accepts the IMEI");</span><br><span style="color: hsl(120, 100%, 40%);">+        gsup_rx("32010809710000004026f0510100", NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl");</span><br><span>       EXPECT_CONN_COUNT(1);</span><br><span>        VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d");</span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err</span><br><span>index 3e28468..3f6d8cd 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_no_authen.err</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_no_authen.err</span><br><span>@@ -933,16 +933,26 @@</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span> DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(0, 100%, 40%);">-- MS replies with an Identity Response</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span>   MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span> DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span> DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span> DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span> DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR accepts the IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK</span><br><span> - sending LU Accept for IMSI-901700000004620:MSISDN-46071</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span>@@ -954,11 +964,12 @@</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_ACCEPTED</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_ACCEPTED}: Received Event RAN_CONN_E_UNUSED</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_ACCEPTED}: state_chg to RAN_CONN_S_RELEASING</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 2 (0x102: dtap,release)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 4</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 3</span><br><span> - BSSAP Clear --GERAN-A--> MS</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span>   bssap_clear_sent == 1</span><br><span> - LU was successful, and the conn has already been closed</span><br><span>   lu_result_sent == 1</span><br><span>@@ -1116,22 +1127,31 @@</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span> DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(0, 100%, 40%);">-- MS replies with an Identity Response</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span>   MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span> DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span> DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span> DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span> DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR accepts the IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi()</span><br><span style="color: hsl(0, 100%, 40%);">-DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=1)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=2)</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Updated ID</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF</span><br><span> - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100, with TMSI 0x03020100</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(0, 100%, 40%);">-DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(0, 100%, 40%);">-DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span> - a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl</span><br><span>   llist_count(&net->ran_conns) == 1</span><br><span>   lu_result_sent == 1</span><br><span>@@ -1516,16 +1536,26 @@</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span> DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(0, 100%, 40%);">-- MS replies with an Identity Response</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span>   MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span> DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span> DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span> DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span> DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR accepts the IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK</span><br><span> - sending LU Accept for IMSI-901700000004620:MSISDN-46071</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span>@@ -1537,11 +1567,12 @@</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_ACCEPTED</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_ACCEPTED}: Received Event RAN_CONN_E_UNUSED</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_ACCEPTED}: state_chg to RAN_CONN_S_RELEASING</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 2 (0x102: dtap,release)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 3</span><br><span style="color: hsl(0, 100%, 40%);">-DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + release == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 4</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 3</span><br><span> - BSSAP Clear --GERAN-A--> MS</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 1 (0x100: release)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage decreases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span>   bssap_clear_sent == 1</span><br><span> - LU was successful, and the conn has already been closed</span><br><span>   lu_result_sent == 1</span><br><span>@@ -2091,22 +2122,31 @@</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1</span><br><span> DRLL Dispatching 04.08 message SMS:0x01 (0x9:0x1)</span><br><span> DRLL subscr IMSI-901700000004620:MSISDN-46071: Message not permitted for initial conn: SMS:0x01</span><br><span style="color: hsl(0, 100%, 40%);">-- MS replies with an Identity Response</span><br><span style="color: hsl(120, 100%, 40%);">+- MS replies with an Identity Response, VLR sends the IMEI to HLR</span><br><span>   MSC <--GERAN-A-- MS: GSM48_MT_MM_ID_RESP</span><br><span> DREF IMSI-901700000004620:MSISDN-46071: MSC conn use + dtap == 1 (0x2: dtap)</span><br><span> DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19)</span><br><span> DMM IDENTITY RESPONSE: MI=IMEI-423423423423420</span><br><span> DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP tx: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f050090824433224433224f0</span><br><span style="color: hsl(120, 100%, 40%);">+DREF IMSI-901700000004620:MSISDN-46071: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+- HLR accepts the IMEI</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR GSUP rx 14: 32010809710000004026f0510100</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071 usage increases to: 2</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi()</span><br><span style="color: hsl(0, 100%, 40%);">-DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=1)</span><br><span style="color: hsl(120, 100%, 40%);">+DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=2)</span><br><span> DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Updated ID</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A-0:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF</span><br><span> - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100, with TMSI 0x03020100</span><br><span style="color: hsl(0, 100%, 40%);">-DREF IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100: MSC conn use - dtap == 0 (0x0: )</span><br><span style="color: hsl(0, 100%, 40%);">-DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Received Event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(0, 100%, 40%);">-DMM RAN_conn(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event RAN_CONN_E_UNUSED</span><br><span style="color: hsl(120, 100%, 40%);">+DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100 usage decreases to: 1</span><br><span style="color: hsl(120, 100%, 40%);">+<-- GSUP rx OSMO_GSUP_MSGT_CHECK_IMEI_RESULT: vlr_gsupc_read_cb() returns 0</span><br><span> - a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl</span><br><span>   llist_count(&net->ran_conns) == 1</span><br><span>   lu_result_sent == 1</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12478">change 12478</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/12478"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ife868ed71c36cdd02638072abebf61fc949080a7 </div>
<div style="display:none"> Gerrit-Change-Number: 12478 </div>
<div style="display:none"> Gerrit-PatchSet: 13 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Max <msuraev@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Stefan Sperling <stsp@stsp.name> </div>
<div style="display:none"> Gerrit-Reviewer: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>