Neels Hofmeyr has submitted this change and it was merged.

Change subject: vlr: LU FSM: enable Retrieve_IMEISV_If_Required
......................................................................


vlr: LU FSM: enable Retrieve_IMEISV_If_Required

Change-Id: I121b95ad6d5ecb7603815eece2b43008de487a8a
---
M include/openbsc/vlr.h
M src/libvlr/vlr_access_req_fsm.c
M src/libvlr/vlr_lu_fsm.c
M tests/msc_vlr/msc_vlr_test_gsm_authen.err
M tests/msc_vlr/msc_vlr_test_gsm_ciph.c
M tests/msc_vlr/msc_vlr_test_gsm_ciph.err
M tests/msc_vlr/msc_vlr_test_hlr_reject.err
M tests/msc_vlr/msc_vlr_test_hlr_timeout.err
M tests/msc_vlr/msc_vlr_test_ms_timeout.err
M tests/msc_vlr/msc_vlr_test_no_authen.err
M tests/msc_vlr/msc_vlr_test_reject_concurrency.err
M tests/msc_vlr/msc_vlr_test_rest.err
M tests/msc_vlr/msc_vlr_test_umts_authen.err
M tests/msc_vlr/msc_vlr_tests.c
14 files changed, 123 insertions(+), 111 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/openbsc/vlr.h b/include/openbsc/vlr.h
index 17cb2ae..09e2ff4 100644
--- a/include/openbsc/vlr.h
+++ b/include/openbsc/vlr.h
@@ -211,7 +211,8 @@
        struct gsup_client *gsup_client;
        struct vlr_ops ops;
        struct {
-               bool retrieve_imeisv;
+               bool retrieve_imeisv_early;
+               bool retrieve_imeisv_ciphered;
                bool assign_tmsi;
                bool check_imei_rqd;
                int auth_tuple_max_use_count;
diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c
index 15f84b7..67fba56 100644
--- a/src/libvlr/vlr_access_req_fsm.c
+++ b/src/libvlr/vlr_access_req_fsm.c
@@ -286,7 +286,7 @@
 
        if (vlr_set_ciph_mode(vsub->vlr, fi, par->msc_conn_ref,
                              par->ciphering_required,
-                             vsub->vlr->cfg.retrieve_imeisv)) {
+                             vsub->vlr->cfg.retrieve_imeisv_ciphered)) {
                LOGPFSML(fi, LOGL_ERROR,
                         "Failed to send Ciphering Mode Command\n");
                proc_arq_fsm_done(fi, VLR_PR_ARQ_RES_SYSTEM_FAILURE);
diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c
index f9ccbdf..ae671c1 100644
--- a/src/libvlr/vlr_lu_fsm.c
+++ b/src/libvlr/vlr_lu_fsm.c
@@ -814,7 +814,7 @@
 
        if (vlr_set_ciph_mode(vsub->vlr, fi, lfp->msc_conn_ref,
                              lfp->ciphering_required,
-                             vsub->vlr->cfg.retrieve_imeisv)) {
+                             vsub->vlr->cfg.retrieve_imeisv_ciphered)) {
                LOGPFSML(fi, LOGL_ERROR,
                         "Failed to send Ciphering Mode Command\n");
                vlr_lu_compl_fsm_failure(fi, GSM48_REJECT_NETWORK_FAILURE);
@@ -896,13 +896,62 @@
        return buf;
 }
 
+static int _lu_fsm_associate_vsub(struct osmo_fsm_inst *fi)
+{
+       struct lu_fsm_priv *lfp = fi->priv;
+       struct vlr_instance *vlr = lfp->vlr;
+       struct vlr_subscr *vsub = NULL;
+
+       if (!lfp->imsi[0]) {
+               /* TMSI was used */
+               lfp->lu_by_tmsi = true;
+               /* TMSI clash: if a different subscriber already has this TMSI,
+                * we will find that other subscriber in the VLR. So the IMSIs
+                * would mismatch, but we don't know about it. Theoretically,
+                * an authentication process would thwart any attempt to use
+                * someone else's TMSI.
+                * TODO: Otherwise we can ask for the IMSI and verify that it
+                * matches the IMSI on record. */
+               vsub = vlr_subscr_find_or_create_by_tmsi(vlr, lfp->tmsi, NULL);
+
+               if (!vsub) {
+                       LOGPFSML(fi, LOGL_ERROR, "VLR subscriber allocation 
failed\n");
+                       lu_fsm_failure(fi, 
GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER);
+                       return -1;
+               }
+
+               vsub->sub_dataconf_by_hlr_ind = false;
+               if (assoc_lfp_with_sub(fi, vsub)) {
+                       vlr_subscr_put(vsub);
+                       return -1; /* error, fsm failure invoked in 
assoc_lfp_with_sub() */
+               }
+               vlr_subscr_put(vsub);
+       } else {
+               /* IMSI was used */
+               vsub = vlr_subscr_find_or_create_by_imsi(vlr, lfp->imsi, NULL);
+
+               if (!vsub) {
+                       LOGPFSML(fi, LOGL_ERROR, "VLR subscriber allocation 
failed\n");
+                       lu_fsm_failure(fi, 
GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER);
+                       vlr_subscr_put(vsub);
+                       return -1;
+               }
+
+               vsub->sub_dataconf_by_hlr_ind = false;
+               if (assoc_lfp_with_sub(fi, vsub)) {
+                       vlr_subscr_put(vsub);
+                       return -1; /* error, fsm failure invoked in 
assoc_lfp_with_sub() */
+               }
+               vlr_subscr_put(vsub);
+       }
+       return 0;
+}
+
 /* 4.1.2.1: Subscriber (via MSC/SGSN) requests location update */
 static void _start_lu_main(struct osmo_fsm_inst *fi)
 {
        struct lu_fsm_priv *lfp = fi->priv;
        struct vlr_instance *vlr = lfp->vlr;
-       struct vlr_subscr *vsub = NULL;
-       bool created;
 
        /* TODO: PUESBINE related handling */
 
@@ -919,61 +968,13 @@
                         lai_name(&lfp->old_lai));
        }
 
-       if (!lfp->imsi[0]) {
-               /* TMSI was used */
-               lfp->lu_by_tmsi = true;
-               /* TMSI clash: if a different subscriber already has this TMSI,
-                * we will find that other subscriber in the VLR. So the IMSIs
-                * would mismatch, but we don't know about it. Theoretically,
-                * an authentication process would thwart any attempt to use
-                * someone else's TMSI.
-                * TODO: Otherwise we can ask for the IMSI and verify that it
-                * matches the IMSI on record. */
-               vsub = vlr_subscr_find_or_create_by_tmsi(vlr, lfp->tmsi,
-                                                        &created);
-
-               if (!vsub) {
-                       LOGPFSML(fi, LOGL_ERROR,
-                                "VLR subscriber allocation failed\n");
-                       lu_fsm_failure(fi, 
GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER);
-                       return;
-               }
-
-               vsub->sub_dataconf_by_hlr_ind = false;
-               if (assoc_lfp_with_sub(fi, vsub)) {
-                       vlr_subscr_put(vsub);
-                       return; /* error */
-               }
-
-               if (created)
-                       vlr_loc_upd_want_imsi(fi);
-               else
-                       vlr_loc_upd_node1(fi);
-               /* We cannot have MSC area change, as the VLR
-                * serves only one MSC */
-               vlr_subscr_put(vsub);
-       } else {
-               /* IMSI was used */
-               vsub = vlr_subscr_find_or_create_by_imsi(vlr, lfp->imsi, NULL);
-
-               if (!vsub) {
-                       LOGPFSML(fi, LOGL_ERROR,
-                                "VLR subscriber allocation failed\n");
-                       lu_fsm_failure(fi, 
GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER);
-                       vlr_subscr_put(vsub);
-                       return;
-               }
-
-               vsub->sub_dataconf_by_hlr_ind = false;
-               if (assoc_lfp_with_sub(fi, vsub)) {
-                       vlr_subscr_put(vsub);
-                       return; /* error */
-               }
+       /* If this is a TMSI based LU, we may not have the IMSI. Make sure that
+        * we know the IMSI, either on record, or request it. */
+       if (!lfp->vsub->imsi[0])
+               vlr_loc_upd_want_imsi(fi);
+       else
                vlr_loc_upd_node1(fi);
-               vlr_subscr_put(vsub);
-       }
 }
-
 
 static void lu_fsm_idle(struct osmo_fsm_inst *fi, uint32_t event,
                        void *data)
@@ -983,8 +984,14 @@
 
        OSMO_ASSERT(event == VLR_ULA_E_UPDATE_LA);
 
-       if (1) { // FIXME
-       //if (lfp->type == VLR_LU_TYPE_PERIODIC && lfp->vsub->imeisv[0])
+       if (_lu_fsm_associate_vsub(fi))
+               return; /* error. FSM already terminated. */
+
+       OSMO_ASSERT(lfp->vsub);
+
+       /* See 3GPP TS 23.012, procedure Retrieve_IMEISV_If_Required */
+       if ((!vlr->cfg.retrieve_imeisv_early)
+           || (lfp->type == VLR_LU_TYPE_PERIODIC && lfp->vsub->imeisv[0])) {
                /* R_IMEISV_IR1 passed */
                _start_lu_main(fi);
        } else {
@@ -999,7 +1006,8 @@
 {
        switch (event) {
        case VLR_ULA_E_ID_IMEISV:
-               /* FIXME: copy IMEISV */
+               /* IMEISV was copied in vlr_subscr_rx_id_resp(), and that's
+                * where we received this event from. */
                _start_lu_main(fi);
                break;
        default:
@@ -1257,6 +1265,8 @@
                .in_event_mask = S(VLR_ULA_E_ID_IMEISV),
                .out_state_mask = S(VLR_ULA_S_WAIT_PVLR) |
                                  S(VLR_ULA_S_WAIT_IMSI) |
+                                 S(VLR_ULA_S_WAIT_AUTH) |
+                                 S(VLR_ULA_S_WAIT_HLR_UPD) |
                                  S(VLR_ULA_S_DONE),
                .name = OSMO_STRINGIFY(VLR_ULA_S_WAIT_IMEISV),
                .action = lu_fsm_wait_imeisv,
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err 
b/tests/msc_vlr/msc_vlr_test_gsm_authen.err
index 8f93435..09ff4ae 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err
+++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err
@@ -18,6 +18,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -26,7 +27,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -446,6 +446,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -454,7 +455,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -887,6 +887,7 @@
 DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA
 DREF VLR subscr MSISDN:46071 usage increases to: 2
 DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -897,7 +898,6 @@
 - sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=3 
auth_types=0x1 and...
 - ...rand=fa8f20b781b5881329d4fea26b1a3c51
 - ...expecting sres=5afc8d72
-DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DMM compl_l3: Keeping conn
 DREF MSISDN:46071: MSC conn use - 1 == 1
   auth_request_sent == 1
@@ -1073,6 +1073,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -1081,7 +1082,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -1286,6 +1286,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -1294,7 +1295,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -1529,6 +1529,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650
 DVLR New subscr, IMSI: 901700000010650
 DREF VLR subscr IMSI:901700000010650 usage increases to: 2
+DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -1537,7 +1538,6 @@
 DVLR GSUP tx: 08010809710000000156f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000010650: MSC conn use - 1 == 1
   lu_result_sent == 0
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c 
b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
index 1ebf9c6..589f7da 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
@@ -565,7 +565,7 @@
 
        /* implicit: net->authentication_required = true; */
        net->a5_encryption = VLR_CIPH_A5_1;
-       net->vlr->cfg.retrieve_imeisv = true;
+       net->vlr->cfg.retrieve_imeisv_ciphered = true;
 
        btw("Location Update request causes a GSUP Send Auth Info request to 
HLR");
        lu_result_sent = RES_NONE;
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err 
b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
index 4543ace..f43d6f1 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
@@ -18,6 +18,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -26,7 +27,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -480,6 +480,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -488,7 +489,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -979,6 +979,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -987,7 +988,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -1192,6 +1192,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -1200,7 +1201,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -1404,6 +1404,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -1412,7 +1413,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err 
b/tests/msc_vlr/msc_vlr_test_hlr_reject.err
index b72ceff..2a06d08 100644
--- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err
+++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err
@@ -18,6 +18,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -26,7 +27,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -91,6 +91,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -99,7 +100,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -166,6 +166,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -174,7 +175,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -311,6 +311,7 @@
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event 
VLR_ULA_E_UPDATE_LA
 DREF VLR subscr MSISDN:46071 usage increases to: 2
 DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -319,7 +320,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DMM compl_l3: Keeping conn
 DREF MSISDN:46071: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -459,6 +459,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -467,7 +468,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -604,6 +604,7 @@
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event 
VLR_ULA_E_UPDATE_LA
 DREF VLR subscr MSISDN:46071 usage increases to: 2
 DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -612,7 +613,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DMM compl_l3: Keeping conn
 DREF MSISDN:46071: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -679,6 +679,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -687,7 +688,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -825,6 +825,7 @@
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event 
VLR_ULA_E_UPDATE_LA
 DREF VLR subscr MSISDN:46071 usage increases to: 2
 DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -833,7 +834,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DMM compl_l3: Keeping conn
 DREF MSISDN:46071: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -898,6 +898,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -906,7 +907,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -970,6 +970,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -981,7 +982,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -1045,6 +1045,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -1056,7 +1057,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err 
b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err
index 1d2541d..c1bd9ac 100644
--- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err
+++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err
@@ -19,6 +19,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -27,7 +28,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -100,6 +100,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -111,7 +112,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err 
b/tests/msc_vlr/msc_vlr_test_ms_timeout.err
index beee070..841aa9a 100644
--- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err
+++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err
@@ -19,6 +19,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -27,7 +28,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -120,6 +120,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -128,7 +129,6 @@
 DVLR GSUP tx: 08010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0
 DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err 
b/tests/msc_vlr/msc_vlr_test_no_authen.err
index 12b6c69..651ac29 100644
--- a/tests/msc_vlr/msc_vlr_test_no_authen.err
+++ b/tests/msc_vlr/msc_vlr_test_no_authen.err
@@ -18,6 +18,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -29,7 +30,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -324,6 +324,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -335,7 +336,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -643,6 +643,7 @@
 DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA
 DREF VLR subscr MSISDN:46071 usage increases to: 2
 DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -654,7 +655,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DMM compl_l3: Keeping conn
 DREF MSISDN:46071: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -814,6 +814,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -825,7 +826,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -981,6 +981,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -992,7 +993,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err 
b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err
index 874cf5f..c51d08a 100644
--- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err
+++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err
@@ -18,6 +18,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -29,7 +30,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -168,6 +168,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -179,7 +180,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -288,6 +288,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -299,7 +300,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -413,6 +413,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -424,7 +425,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -536,6 +536,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -547,7 +548,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -721,6 +721,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -732,7 +733,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -908,6 +908,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -919,7 +920,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -1099,6 +1099,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -1110,7 +1111,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -1314,6 +1314,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -1325,7 +1326,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -1546,6 +1546,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -1557,7 +1558,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
diff --git a/tests/msc_vlr/msc_vlr_test_rest.err 
b/tests/msc_vlr/msc_vlr_test_rest.err
index 3dd7141..75ff80b 100644
--- a/tests/msc_vlr/msc_vlr_test_rest.err
+++ b/tests/msc_vlr/msc_vlr_test_rest.err
@@ -102,6 +102,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620
 DVLR New subscr, IMSI: 901700000004620
 DREF VLR subscr IMSI:901700000004620 usage increases to: 2
+DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -113,7 +114,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr IMSI:901700000004620 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000004620: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -215,6 +215,7 @@
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event 
VLR_ULA_E_UPDATE_LA
 DREF VLR subscr MSISDN:46071 usage increases to: 2
 DREF VLR subscr MSISDN:46071 usage increases to: 3
+DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth()
 DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph()
@@ -226,7 +227,6 @@
 DVLR GSUP tx: 04010809710000004026f0
 GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0
 DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to 
UPD_HLR_VLR_S_WAIT_FOR_DATA
-DREF VLR subscr MSISDN:46071 usage decreases to: 2
 DMM compl_l3: Keeping conn
 DREF MSISDN:46071: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -349,11 +349,11 @@
 DREF VLR subscr unknown usage increases to: 1
 DVLR New subscr, TMSI: 0x23422342
 DREF VLR subscr TMSI:0x23422342 usage increases to: 2
+DREF VLR subscr TMSI:0x23422342 usage decreases to: 1
 DVLR vlr_lu_fsm(591536962){VLR_ULA_S_IDLE}: vlr_loc_upd_want_imsi()
 DVLR vlr_lu_fsm(591536962){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_IMSI
 - DTAP --> MS: 051801
 - DTAP matches expected message
-DREF VLR subscr TMSI:0x23422342 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF TMSI:0x23422342: MSC conn use - 1 == 1
   lu_result_sent == 0
diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err 
b/tests/msc_vlr/msc_vlr_test_umts_authen.err
index 67c69c0..bfb4a8e 100644
--- a/tests/msc_vlr/msc_vlr_test_umts_authen.err
+++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err
@@ -18,6 +18,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650
 DVLR New subscr, IMSI: 901700000010650
 DREF VLR subscr IMSI:901700000010650 usage increases to: 2
+DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -26,7 +27,6 @@
 DVLR GSUP tx: 08010809710000000156f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000010650: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -430,6 +430,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650
 DVLR New subscr, IMSI: 901700000010650
 DREF VLR subscr IMSI:901700000010650 usage increases to: 2
+DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -438,7 +439,6 @@
 DVLR GSUP tx: 08010809710000000156f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000010650: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -842,6 +842,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650
 DVLR New subscr, IMSI: 901700000010650
 DREF VLR subscr IMSI:901700000010650 usage increases to: 2
+DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -850,7 +851,6 @@
 DVLR GSUP tx: 08010809710000000156f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000010650: MSC conn use - 1 == 1
   lu_result_sent == 0
@@ -1019,6 +1019,7 @@
 DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650
 DVLR New subscr, IMSI: 901700000010650
 DREF VLR subscr IMSI:901700000010650 usage increases to: 2
+DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1()
 DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to 
VLR_ULA_S_WAIT_AUTH
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated
@@ -1027,7 +1028,6 @@
 DVLR GSUP tx: 08010809710000000156f0
 GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0
 DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to 
VLR_SUB_AS_NEEDS_AUTH_WAIT_AI
-DREF VLR subscr IMSI:901700000010650 usage decreases to: 1
 DMM compl_l3: Keeping conn
 DREF IMSI:901700000010650: MSC conn use - 1 == 1
   lu_result_sent == 0
diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c
index 8f04593..a878be7 100644
--- a/tests/msc_vlr/msc_vlr_tests.c
+++ b/tests/msc_vlr/msc_vlr_tests.c
@@ -294,7 +294,8 @@
        net->a5_encryption = VLR_CIPH_NONE;
        net->vlr->cfg.check_imei_rqd = false;
        net->vlr->cfg.assign_tmsi = false;
-       net->vlr->cfg.retrieve_imeisv = false;
+       net->vlr->cfg.retrieve_imeisv_early = false;
+       net->vlr->cfg.retrieve_imeisv_ciphered = false;
 
        rx_from_ran = RAN_GERAN_A;
        auth_request_sent = false;

-- 
To view, visit https://gerrit.osmocom.org/3417
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I121b95ad6d5ecb7603815eece2b43008de487a8a
Gerrit-PatchSet: 1
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofm...@sysmocom.de>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofm...@sysmocom.de>

Reply via email to