diff --git a/TODO-RELEASE b/TODO-RELEASE index dde4b72f2..17dc17a83 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,3 +8,5 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 +libosmocore osmo_mobile_identity Depends on libosmocore > 1.3.0 +osmo-msc Mobile Identity Coding OsmoMSC is stricter in rejecting invalid coding of Mobile Identity IEs diff --git a/include/osmocom/msc/gsm_04_08.h b/include/osmocom/msc/gsm_04_08.h index 661da42b3..bfc8027db 100644 --- a/include/osmocom/msc/gsm_04_08.h +++ b/include/osmocom/msc/gsm_04_08.h @@ -54,8 +54,6 @@ int decode_bcd_number(char *output, int output_len, const uint8_t *bcd_lv, int h_len); int send_siemens_mrpci(struct gsm_lchan *lchan, uint8_t *classmark2_lv); -int gsm48_extract_mi(uint8_t *classmark2, int length, char *mi_string, uint8_t *mi_type); -int gsm48_paging_extract_mi(struct gsm48_pag_resp *pag, int length, char *mi_string, uint8_t *mi_type); int gsm48_lchan_modify(struct gsm_lchan *lchan, uint8_t lchan_mode); int gsm48_rx_rr_modif_ack(struct msgb *msg); diff --git a/include/osmocom/msc/msub.h b/include/osmocom/msc/msub.h index 2418febcf..14f3e76ce 100644 --- a/include/osmocom/msc/msub.h +++ b/include/osmocom/msc/msub.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include @@ -64,7 +66,7 @@ int _msub_role_dispatch(struct msub *msub, enum msc_role to_role, uint32_t to_ro const char *file, int line); int msub_tx_an_apdu(struct msub *msub, enum msc_role from_role, enum msc_role to_role, struct an_apdu *an_apdu); -void msub_update_id_from_mi(struct msub *msub, const uint8_t mi[], uint8_t mi_len); +void msub_update_id_from_mi(struct msub *msub, const struct osmo_mobile_identity *mi); void msub_update_id(struct msub *msub); void msub_update_id_for_vsub(struct vlr_subscr *for_vsub); diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h index 615c6c874..83f83c717 100644 --- a/include/osmocom/msc/vlr.h +++ b/include/osmocom/msc/vlr.h @@ -23,6 +23,7 @@ LOGP(DVLR, level, "SUBSCR(%s) " fmt, vlr_subscr_name(vsub), ## args) struct log_target; +struct osmo_mobile_identity; #define VLR_SUBSCRIBER_NO_EXPIRATION 0 #define VLR_SUBSCRIBER_LU_EXPIRATION_INTERVAL 60 /* in seconds */ @@ -302,7 +303,7 @@ void vlr_loc_update_cancel(struct osmo_fsm_inst *fi, /* tell the VLR that the RAN connection is gone */ int vlr_subscr_disconnected(struct vlr_subscr *vsub); bool vlr_subscr_expire(struct vlr_subscr *vsub); -int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const uint8_t *mi, size_t mi_len); +int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const struct osmo_mobile_identity *mi); int vlr_subscr_rx_auth_resp(struct vlr_subscr *vsub, bool is_r99, bool is_utran, const uint8_t *res, uint8_t res_len); int vlr_subscr_rx_auth_fail(struct vlr_subscr *vsub, const uint8_t *auts); @@ -440,7 +441,7 @@ vlr_proc_acc_req(struct osmo_fsm_inst *parent, void *parent_event_data, struct vlr_instance *vlr, void *msc_conn_ref, enum vlr_parq_type type, enum osmo_cm_service_type cm_service_type, - const uint8_t *mi_lv, + const struct osmo_mobile_identity *mi, const struct osmo_location_area_id *lai, bool authentication_required, bool ciphering_required, diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index d612e40ea..a70c4b918 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -116,13 +116,15 @@ static int gsm0408_loc_upd_acc(struct msc_a *msc_a, uint32_t send_tmsi) struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 LOC UPD ACC"); struct gsm48_hdr *gh; struct gsm48_loc_area_id *lai; - uint8_t *mid; struct gsm_network *net = msc_a_net(msc_a); struct vlr_subscr *vsub = msc_a_vsub(msc_a); struct osmo_location_area_id laid = { .plmn = net->plmn, .lac = vsub->cgi.lai.lac, }; + uint8_t *l; + int rc; + struct osmo_mobile_identity mi = {}; gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); gh->proto_discr = GSM48_PDISC_MM; @@ -135,23 +137,28 @@ static int gsm0408_loc_upd_acc(struct msc_a *msc_a, uint32_t send_tmsi) /* we did not allocate a TMSI to the MS, so we need to * include the IMSI in order for the MS to delete any * old TMSI that might still be allocated */ - uint8_t mi[10]; - int len; - len = gsm48_generate_mid_from_imsi(mi, vsub->imsi); - mid = msgb_put(msg, len); - memcpy(mid, mi, len); + mi.type = GSM_MI_TYPE_IMSI; + OSMO_STRLCPY_ARRAY(mi.imsi, vsub->imsi); DEBUGP(DMM, "-> %s LOCATION UPDATE ACCEPT\n", vlr_subscr_name(vsub)); } else { /* Include the TMSI, which means that the MS will send a * TMSI REALLOCATION COMPLETE, and we should wait for * that until T3250 expiration */ - mid = msgb_put(msg, GSM48_MID_TMSI_LEN); - gsm48_generate_mid_from_tmsi(mid, send_tmsi); + mi.type = GSM_MI_TYPE_TMSI; + mi.tmsi = send_tmsi; DEBUGP(DMM, "-> %s LOCATION UPDATE ACCEPT (TMSI = 0x%08x)\n", vlr_subscr_name(vsub), send_tmsi); } + l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc < 0) { + msgb_free(msg); + return -EINVAL; + } + *l = rc; + /* TODO: Follow-on proceed */ /* TODO: CTS permission */ /* TODO: Equivalent PLMNs */ @@ -180,10 +187,11 @@ static int mm_tx_identity_req(struct msc_a *msc_a, uint8_t id_type) static int mm_rx_id_resp(struct msc_a *msc_a, struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); - uint8_t *mi = gh->data+1; + uint8_t *mi_data = gh->data+1; uint8_t mi_len = gh->data[0]; - uint8_t mi_type; struct vlr_subscr *vsub = msc_a_vsub(msc_a); + struct osmo_mobile_identity mi; + int rc; if (!vsub) { LOGP(DMM, LOGL_ERROR, @@ -198,26 +206,26 @@ static int mm_rx_id_resp(struct msc_a *msc_a, struct msgb *msg) return -EINVAL; } - /* Make sure we got what we expected */ - mi_type = mi[0] & GSM_MI_TYPE_MASK; - if (mi_type == GSM_MI_TYPE_NONE) { - LOGP(DMM, LOGL_NOTICE, "MM Identity Response contains no identity, " - "perhaps the MS has no Mobile Identity type %s?\n", - gsm48_mi_type_name(msc_a->mm_id_req_type)); + rc = osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + if (rc) { + LOGP(DMM, LOGL_ERROR, "Failure to decode Mobile Identity in MM Identity Response (rc=%d)\n", rc); return -EINVAL; - } else if (mi_type != msc_a->mm_id_req_type) { + } + + /* Make sure we got what we expected */ + if (mi.type != msc_a->mm_id_req_type) { LOGP(DMM, LOGL_NOTICE, "MM Identity Response contains unexpected " "Mobile Identity type %s (extected %s)\n", - gsm48_mi_type_name(mi_type), + gsm48_mi_type_name(mi.type), gsm48_mi_type_name(msc_a->mm_id_req_type)); return -EINVAL; } - DEBUGP(DMM, "IDENTITY RESPONSE: MI=%s\n", osmo_mi_name(mi, mi_len)); + DEBUGP(DMM, "IDENTITY RESPONSE: %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, gh->data); - return vlr_subscr_rx_id_resp(vsub, mi, mi_len); + return vlr_subscr_rx_id_resp(vsub, &mi); } /* 9.2.5 CM service accept */ @@ -311,8 +319,6 @@ static int mm_rx_loc_upd_req(struct msc_a *msc_a, struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); struct gsm48_loc_upd_req *lu; - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; enum vlr_lu_type vlr_lu_type = VLR_LU_TYPE_REGULAR; uint32_t tmsi; char *imsi; @@ -321,6 +327,15 @@ static int mm_rx_loc_upd_req(struct msc_a *msc_a, struct msgb *msg) bool is_utran; struct gsm_network *net = msc_a_net(msc_a); struct vlr_subscr *vsub; + struct osmo_mobile_identity mi; + int rc; + + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, + "Failed to decode Mobile Identity in Location Updating Request\n"); + return -EINVAL; + } lu = (struct gsm48_loc_upd_req *) gh->data; @@ -328,7 +343,7 @@ static int mm_rx_loc_upd_req(struct msc_a *msc_a, struct msgb *msg) LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "Cannot accept another LU, conn already busy establishing authenticity;" " extraneous LOCATION UPDATING REQUEST: MI=%s LU-type=%s\n", - osmo_mi_name(lu->mi, lu->mi_len), osmo_lu_type_name(lu->type)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), osmo_lu_type_name(lu->type)); return -EINVAL; } @@ -336,17 +351,18 @@ static int mm_rx_loc_upd_req(struct msc_a *msc_a, struct msgb *msg) LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "Cannot accept another LU, conn already established;" " extraneous LOCATION UPDATING REQUEST: MI=%s LU-type=%s\n", - osmo_mi_name(lu->mi, lu->mi_len), osmo_lu_type_name(lu->type)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), osmo_lu_type_name(lu->type)); return -EINVAL; } msc_a->complete_layer3_type = COMPLETE_LAYER3_LU; - msub_update_id_from_mi(msc_a->c.msub, lu->mi, lu->mi_len); + + msub_update_id_from_mi(msc_a->c.msub, &mi); LOG_MSC_A_CAT(msc_a, DMM, LOGL_DEBUG, "LOCATION UPDATING REQUEST: MI=%s LU-type=%s\n", - osmo_mi_name(lu->mi, lu->mi_len), osmo_lu_type_name(lu->type)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), osmo_lu_type_name(lu->type)); - osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, &lu->mi_len); + osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, &mi); switch (lu->type) { case GSM48_LUPD_NORMAL: @@ -368,15 +384,13 @@ static int mm_rx_loc_upd_req(struct msc_a *msc_a, struct msgb *msg) /* TODO: 10.5.7.8 Device properties */ /* TODO: 10.5.1.15 MS network feature support */ - mi_type = lu->mi[0] & GSM_MI_TYPE_MASK; - gsm48_mi_to_string(mi_string, sizeof(mi_string), lu->mi, lu->mi_len); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: tmsi = GSM_RESERVED_TMSI; - imsi = mi_string; + imsi = mi.imsi; break; case GSM_MI_TYPE_TMSI: - tmsi = tmsi_from_string(mi_string); + tmsi = mi.tmsi; imsi = NULL; break; default: @@ -654,37 +668,30 @@ int gsm48_tx_mm_auth_rej(struct msc_a *msc_a) static int msc_vlr_tx_cm_serv_rej(void *msc_conn_ref, enum osmo_cm_service_type cm_service_type, enum gsm48_reject_value cause); -static int cm_serv_reuse_conn(struct msc_a *msc_a, const uint8_t *mi_lv, enum osmo_cm_service_type cm_serv_type) +static int cm_serv_reuse_conn(struct msc_a *msc_a, const struct osmo_mobile_identity *mi, enum osmo_cm_service_type cm_serv_type) { - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; - uint32_t tmsi; struct gsm_network *net = msc_a_net(msc_a); struct vlr_subscr *vsub = msc_a_vsub(msc_a); - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi_lv+1, mi_lv[0]); - mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - if (vlr_subscr_matches_imsi(vsub, mi_string)) + if (vlr_subscr_matches_imsi(vsub, mi->imsi)) goto accept_reuse; break; case GSM_MI_TYPE_TMSI: - tmsi = osmo_load32be(mi_lv+2); - if (vlr_subscr_matches_tmsi(vsub, tmsi)) + if (vlr_subscr_matches_tmsi(vsub, mi->tmsi)) goto accept_reuse; break; case GSM_MI_TYPE_IMEI: - if (vlr_subscr_matches_imei(vsub, mi_string)) + if (vlr_subscr_matches_imei(vsub, mi->imei)) goto accept_reuse; break; default: break; } - LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "CM Service Request with mismatching mobile identity: %s %s\n", - gsm48_mi_type_name(mi_type), mi_string); + LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "CM Service Request with mismatching mobile identity: %s\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, mi)); msc_vlr_tx_cm_serv_rej(msc_a, cm_serv_type, GSM48_REJECT_ILLEGAL_MS); return -EINVAL; @@ -714,10 +721,10 @@ int gsm48_rx_mm_serv_req(struct msc_a *msc_a, struct msgb *msg) struct gsm48_service_request *req; struct gsm48_classmark2 *cm2; uint8_t *cm2_buf, cm2_len; - uint8_t *mi_buf, mi_len; - uint8_t *mi, mi_type; bool is_utran; struct vlr_subscr *vsub; + struct osmo_mobile_identity mi; + int rc; /* Make sure that both header and CM Service Request fit into the buffer */ if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*req)) { @@ -726,6 +733,12 @@ int gsm48_rx_mm_serv_req(struct msc_a *msc_a, struct msgb *msg) return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); } + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOG_MSC_A(msc_a, LOGL_ERROR, "Rx CM SERVICE REQUEST: unable to decode Mobile Identity\n"); + return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); + } + gh = (struct gsm48_hdr *) msgb_l3(msg); req = (struct gsm48_service_request *) gh->data; @@ -742,18 +755,6 @@ int gsm48_rx_mm_serv_req(struct msc_a *msc_a, struct msgb *msg) return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); } - /* MI (Mobile Identity) LV follows the Classmark2 */ - mi_buf = cm2_buf + cm2_len; - mi_len = mi_buf[0]; - mi = mi_buf + 1; - - /* Prevent buffer overrun: check the length of MI */ - if (mi_buf + mi_len > msg->tail) { - LOG_MSC_A(msc_a, LOGL_ERROR, "Rx CM SERVICE REQUEST: Mobile Identity " - "length=%u is too big\n", cm2_len); - return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); - } - if (msc_a_is_establishing_auth_ciph(msc_a)) { LOG_MSC_A(msc_a, LOGL_ERROR, "Cannot accept CM Service Request, conn already busy establishing authenticity\n"); @@ -762,12 +763,11 @@ int gsm48_rx_mm_serv_req(struct msc_a *msc_a, struct msgb *msg) } msc_a->complete_layer3_type = COMPLETE_LAYER3_CM_SERVICE_REQ; - msub_update_id_from_mi(msc_a->c.msub, mi, mi_len); + msub_update_id_from_mi(msc_a->c.msub, &mi); LOG_MSC_A_CAT(msc_a, DMM, LOGL_DEBUG, "Rx CM SERVICE REQUEST cm_service_type=%s\n", osmo_cm_service_type_name(req->cm_service_type)); - mi_type = (mi && mi_len) ? (mi[0] & GSM_MI_TYPE_MASK) : GSM_MI_TYPE_NONE; - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: case GSM_MI_TYPE_TMSI: /* continue below */ @@ -781,7 +781,7 @@ int gsm48_rx_mm_serv_req(struct msc_a *msc_a, struct msgb *msg) } /* fall-through for non-emergency setup */ default: - LOG_MSC_A(msc_a, LOGL_ERROR, "MI type is not expected: %s\n", gsm48_mi_type_name(mi_type)); + LOG_MSC_A(msc_a, LOGL_ERROR, "MI type is not expected: %s\n", gsm48_mi_type_name(mi.type)); return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); } @@ -789,9 +789,9 @@ int gsm48_rx_mm_serv_req(struct msc_a *msc_a, struct msgb *msg) return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_SRV_OPT_NOT_SUPPORTED); if (msc_a_is_accepted(msc_a)) - return cm_serv_reuse_conn(msc_a, mi_buf, req->cm_service_type); + return cm_serv_reuse_conn(msc_a, &mi, req->cm_service_type); - osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, mi_buf); + osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, &mi); msc_a_get(msc_a, msc_a_cm_service_type_to_use(req->cm_service_type)); @@ -801,7 +801,7 @@ int gsm48_rx_mm_serv_req(struct msc_a *msc_a, struct msgb *msg) net->vlr, msc_a, VLR_PR_ARQ_T_CM_SERV_REQ, req->cm_service_type, - mi-1, &msc_a->via_cell.lai, + &mi, &msc_a->via_cell.lai, is_utran || net->authentication_required, is_utran ? net->uea_encryption : net->a5_encryption_mask > 0x01, req->cipher_key_seq, @@ -824,18 +824,9 @@ int gsm48_rx_mm_serv_req(struct msc_a *msc_a, struct msgb *msg) /* Receive a CM Re-establish Request */ static int gsm48_rx_cm_reest_req(struct msc_a *msc_a, struct msgb *msg) { - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; - struct gsm48_hdr *gh = msgb_l3(msg); - - uint8_t classmark2_len = gh->data[1]; - uint8_t *classmark2 = gh->data+2; - uint8_t mi_len = *(classmark2 + classmark2_len); - uint8_t *mi = (classmark2 + classmark2_len + 1); - - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - mi_type = mi[0] & GSM_MI_TYPE_MASK; - DEBUGP(DMM, "<- CM RE-ESTABLISH REQUEST MI(%s)=%s\n", gsm48_mi_type_name(mi_type), mi_string); + struct osmo_mobile_identity mi; + osmo_mobile_identity_decode_from_l3(&mi, msg, false); + DEBUGP(DMM, "<- CM RE-ESTABLISH REQUEST %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); /* we don't support CM call re-establishment */ return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_SRV_OPT_NOT_SUPPORTED); @@ -847,39 +838,41 @@ static int gsm48_rx_mm_imsi_detach_ind(struct msc_a *msc_a, struct msgb *msg) struct gsm48_hdr *gh = msgb_l3(msg); struct gsm48_imsi_detach_ind *idi = (struct gsm48_imsi_detach_ind *) gh->data; - uint8_t mi_type = idi->mi[0] & GSM_MI_TYPE_MASK; - char mi_string[GSM48_MI_SIZE]; + struct osmo_mobile_identity mi; struct vlr_subscr *vsub = NULL; - gsm48_mi_to_string(mi_string, sizeof(mi_string), idi->mi, idi->mi_len); - DEBUGP(DMM, "IMSI DETACH INDICATION: MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); + int rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOGP(DMM, LOGL_ERROR, "IMSI DETACH INDICATION: cannot decode Mobile Identity\n"); + return -EINVAL; + } + + DEBUGP(DMM, "IMSI DETACH INDICATION: %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH]); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_TMSI: - vsub = vlr_subscr_find_by_tmsi(net->vlr, - tmsi_from_string(mi_string), __func__); + vsub = vlr_subscr_find_by_tmsi(net->vlr, mi.tmsi, __func__); break; case GSM_MI_TYPE_IMSI: - vsub = vlr_subscr_find_by_imsi(net->vlr, mi_string, __func__); + vsub = vlr_subscr_find_by_imsi(net->vlr, mi.imsi, __func__); break; case GSM_MI_TYPE_IMEI: case GSM_MI_TYPE_IMEISV: /* no sim card... FIXME: what to do ? */ - LOGP(DMM, LOGL_ERROR, "MI(%s)=%s: unimplemented mobile identity type\n", - gsm48_mi_type_name(mi_type), mi_string); + LOGP(DMM, LOGL_ERROR, "%s: unimplemented mobile identity type\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); break; default: - LOGP(DMM, LOGL_ERROR, "MI(%s)=%s: unknown mobile identity type\n", - gsm48_mi_type_name(mi_type), mi_string); + LOGP(DMM, LOGL_ERROR, "%s: unknown mobile identity type\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); break; } if (!vsub) { - LOGP(DMM, LOGL_ERROR, "IMSI DETACH for unknown subscriber MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); + LOGP(DMM, LOGL_ERROR, "IMSI DETACH for unknown subscriber %s\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); } else { LOGP(DMM, LOGL_INFO, "IMSI DETACH for %s\n", vlr_subscr_name(vsub)); msub_set_vsub(msc_a->c.msub, vsub); @@ -1148,9 +1141,10 @@ static int gsm48_rx_rr_pag_resp(struct msc_a *msc_a, struct msgb *msg) uint8_t classmark2_len = gh->data[1]; uint8_t *classmark2_buf = gh->data+2; struct gsm48_classmark2 *cm2 = (void*)classmark2_buf; - uint8_t *mi_lv = classmark2_buf + classmark2_len; bool is_utran; struct vlr_subscr *vsub; + struct osmo_mobile_identity mi; + int rc; if (msc_a_is_establishing_auth_ciph(msc_a)) { LOG_MSC_A_CAT(msc_a, DRR, LOGL_ERROR, @@ -1163,9 +1157,15 @@ static int gsm48_rx_rr_pag_resp(struct msc_a *msc_a, struct msgb *msg) return 0; } + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOG_MSC_A_CAT(msc_a, DRR, LOGL_ERROR, "Paging Response: cannot decode Mobile Identity\n"); + return -EINVAL; + } + msc_a->complete_layer3_type = COMPLETE_LAYER3_PAGING_RESP; - msub_update_id_from_mi(msc_a->c.msub, mi_lv + 1, *mi_lv); - LOG_MSC_A_CAT(msc_a, DRR, LOGL_DEBUG, "Rx PAGING RESPONSE\n"); + msub_update_id_from_mi(msc_a->c.msub, &mi); + LOG_MSC_A_CAT(msc_a, DRR, LOGL_DEBUG, "Rx PAGING RESPONSE %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); msc_a_get(msc_a, MSC_A_USE_PAGING_RESPONSE); @@ -1173,7 +1173,7 @@ static int gsm48_rx_rr_pag_resp(struct msc_a *msc_a, struct msgb *msg) vlr_proc_acc_req(msc_a->c.fi, MSC_A_EV_AUTHENTICATED, MSC_A_EV_CN_CLOSE, NULL, net->vlr, msc_a, - VLR_PR_ARQ_T_PAGING_RESP, 0, mi_lv, &msc_a->via_cell.lai, + VLR_PR_ARQ_T_PAGING_RESP, 0, &mi, &msc_a->via_cell.lai, is_utran || net->authentication_required, is_utran ? net->uea_encryption : net->a5_encryption_mask > 0x01, pr->key_seq, @@ -1200,30 +1200,37 @@ static int gsm48_rx_rr_ciphering_mode_complete(struct msc_a *msc_a, struct msgb struct gsm48_hdr *gh = msgb_l3(msg); unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); struct tlv_parsed tp; - struct tlv_p_entry *mi; + struct tlv_p_entry *mi_tlv; + struct osmo_mobile_identity mi; tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); - mi = TLVP_GET(&tp, GSM48_IE_MOBILE_ID); + mi_tlv = TLVP_GET(&tp, GSM48_IE_MOBILE_ID); /* IMEI(SV) is optional for this message */ - if (!mi) + if (!mi_tlv) return 0; - if (!mi->len) + if (!mi_tlv->len) return -EINVAL; - if ((mi->val[0] & GSM_MI_TYPE_MASK) != GSM_MI_TYPE_IMEISV) { + + if (osmo_mobile_identity_decode(&mi, mi_tlv->val, mi_tlv->len, false)) { + LOGP(DMM, LOGL_ERROR, "RR Ciphering Mode Complete contains invalid Mobile Identity %s\n", + osmo_hexdump(mi_tlv->val, mi_tlv->len)); + return -EINVAL; + } + if (mi.type != GSM_MI_TYPE_IMEISV) { LOGP(DMM, LOGL_ERROR, "RR Ciphering Mode Complete contains " "unexpected Mobile Identity type %s\n", - gsm48_mi_type_name(mi->val[0] & GSM_MI_TYPE_MASK)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); return -EINVAL; } LOG_MSC_A(msc_a, LOGL_DEBUG, "RR Ciphering Mode Complete contains Mobile Identity: %s\n", - osmo_mi_name(mi->val, mi->len)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); if (!vsub) return 0; - return vlr_subscr_rx_id_resp(vsub, mi->val, mi->len); + return vlr_subscr_rx_id_resp(vsub, &mi); } static int gsm48_rx_rr_app_info(struct msc_a *msc_a, struct msgb *msg) @@ -1460,27 +1467,3 @@ struct msgb *gsm48_create_loc_upd_rej(uint8_t cause) gh->data[0] = cause; return msg; } - -int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type) -{ - /* Check the size for the classmark */ - if (length < 1 + *classmark2_lv) - return -1; - - uint8_t *mi_lv = classmark2_lv + *classmark2_lv + 1; - if (length < 2 + *classmark2_lv + mi_lv[0]) - return -2; - - *mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - return gsm48_mi_to_string(mi_string, GSM48_MI_SIZE, mi_lv+1, *mi_lv); -} - -int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length, - char *mi_string, uint8_t *mi_type) -{ - static const uint32_t classmark_offset = - offsetof(struct gsm48_pag_resp, classmark2); - uint8_t *classmark2_lv = (uint8_t *) &resp->classmark2; - return gsm48_extract_mi(classmark2_lv, length - classmark_offset, - mi_string, mi_type); -} diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index bc5b7ea93..4d856d0f8 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -1100,9 +1100,9 @@ const struct value_string complete_layer3_type_names[] = { /* Compose an ID almost like gsm48_mi_to_string(), but print the MI type along, and print a TMSI as hex. */ -void msc_a_update_id_from_mi(struct msc_a *msc_a, const uint8_t mi[], uint8_t mi_len) +void msc_a_update_id_from_mi(struct msc_a *msc_a, const struct osmo_mobile_identity *mi) { - _msc_a_update_id(msc_a, "%s", osmo_mi_name(mi, mi_len)); + _msc_a_update_id(msc_a, "%s", osmo_mobile_identity_to_str_c(OTC_SELECT, mi)); } /* Update msc_a->fi id string from current msc_a->vsub and msc_a->complete_layer3_type. */ diff --git a/src/libmsc/msub.c b/src/libmsc/msub.c index 2021ed827..112703a13 100644 --- a/src/libmsc/msub.c +++ b/src/libmsc/msub.c @@ -488,9 +488,9 @@ static void _msub_update_id(struct msub *msub, const char *subscr_name) } /* Compose an ID almost like gsm48_mi_to_string(), but print the MI type along, and print a TMSI as hex. */ -void msub_update_id_from_mi(struct msub *msub, const uint8_t mi[], uint8_t mi_len) +void msub_update_id_from_mi(struct msub *msub, const struct osmo_mobile_identity *mi) { - _msub_update_id(msub, osmo_mi_name(mi, mi_len)); + _msub_update_id(msub, osmo_mobile_identity_to_str_c(OTC_SELECT, mi)); } /* Update msub->fi id string from current msub->vsub and msub->complete_layer3_type. */ diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index cb228ef9b..28f99ceee 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -497,7 +497,6 @@ static int ran_a_decode_handover_request(struct ran_dec *ran_dec, const struct m struct gsm0808_encrypt_info encr_info; struct gsm0808_speech_codec_list scl; struct geran_encr geran_encr = {}; - char imsi[OSMO_IMSI_BUF_SIZE]; struct osmo_sockaddr_str rtp_ran_local; if (!ie_channel_type) { @@ -608,8 +607,12 @@ static int ran_a_decode_handover_request(struct ran_dec *ran_dec, const struct m } if (ie_imsi) { - gsm48_mi_to_string(imsi, sizeof(imsi), ie_imsi->val, ie_imsi->len); - r->imsi = imsi; + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, ie_imsi->val, ie_imsi->len, false) + || mi.type != GSM_MI_TYPE_IMSI) + LOG_RAN_A_DEC_MSG(LOGL_ERROR, "IE IMSI: cannot decode IMSI identity\n"); + else + r->imsi = mi.imsi; } if (ie_aoip_transp_addr) { diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c index 422ce7294..b792e466f 100644 --- a/src/libmsc/sgs_iface.c +++ b/src/libmsc/sgs_iface.c @@ -373,7 +373,7 @@ static void sgs_tx_loc_upd_resp_cb(struct sgs_lu_response *response) struct sgs_mme_ctx *mme; uint8_t new_id[2 + GSM48_TMSI_LEN]; uint8_t *new_id_ptr = new_id; - unsigned int new_id_len = 0; + int new_id_len = 0; uint8_t resp_msg_type; /* Determine message type that is sent next (needed for logging) */ @@ -398,9 +398,13 @@ static void sgs_tx_loc_upd_resp_cb(struct sgs_lu_response *response) /* Handle LU accept/reject */ if (response->accepted) { if (vsub->tmsi_new != GSM_RESERVED_TMSI) { - new_id_len = gsm48_generate_mid_from_tmsi(new_id, vsub->tmsi_new); - new_id_ptr = new_id + 2; - new_id_len -= 2; + struct osmo_mobile_identity tmsi_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = vsub->tmsi_new, + }; + new_id_len = osmo_mobile_identity_encode_buf(new_id, sizeof(new_id), &tmsi_mi, false); + if (new_id_len > 0) + new_id_ptr = new_id; } resp = gsm29118_create_lu_ack(vsub->imsi, &vsub->sgs.lai, new_id_ptr, new_id_len); sgs_tx(mme->conn, resp); @@ -958,12 +962,16 @@ int sgs_iface_rx(struct sgs_connection *sgc, struct msgb *msg) } if (TLVP_PRESENT(&tp, SGSAP_IE_IMSI)) { - gsm48_mi_to_string(imsi, sizeof(imsi), TLVP_VAL(&tp, SGSAP_IE_IMSI), TLVP_LEN(&tp, SGSAP_IE_IMSI)); - if (strlen(imsi) < GSM23003_IMSI_MIN_DIGITS) { + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, + TLVP_VAL(&tp, SGSAP_IE_IMSI), + TLVP_LEN(&tp, SGSAP_IE_IMSI), false) + || mi.type != GSM_MI_TYPE_IMSI) { TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_INVALID_MAND_IE, - "SGsAP Message %s with short IMSI, dropping\n"); + "SGsAP Message %s with invalid IMSI, dropping\n"); goto error; } + OSMO_STRLCPY_ARRAY(imsi, mi.imsi); } /* Some messages contain an MME-NAME as mandatore IE, parse it right here. The diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 019e6577e..3a44d3090 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -1117,64 +1117,49 @@ int vlr_gsup_rx(struct gsup_client_mux *gcm, void *data, const struct osmo_gsup_ } /* MSC->VLR: Subscriber has provided IDENTITY RESPONSE */ -int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, - const uint8_t *mi, size_t mi_len) +int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const struct osmo_mobile_identity *mi) { - char mi_string[GSM48_MI_SIZE]; - uint8_t mi_type = mi[0] & GSM_MI_TYPE_MASK; - - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - /* update the vlr_subscr with the given identity */ - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - if (strlen(mi_string) >= sizeof(vsub->imsi)) { - LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP too long (>%zu bytes): %s\n", - sizeof(vsub->imsi) - 1, mi_string); - return -ENOSPC; /* ignore message; do not avance LU FSM */ - } else if (vsub->imsi[0] - && !vlr_subscr_matches_imsi(vsub, mi_string)) { + if (vsub->imsi[0] + && !vlr_subscr_matches_imsi(vsub, mi->imsi)) { LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP differs:" - " %s\n", mi_string); + " %s\n", mi->imsi); /* XXX Should we return an error, e.g. -EINVAL ? */ } else - vlr_subscr_set_imsi(vsub, mi_string); + vlr_subscr_set_imsi(vsub, mi->imsi); break; case GSM_MI_TYPE_IMEI: - vlr_subscr_set_imei(vsub, mi_string); + vlr_subscr_set_imei(vsub, mi->imei); break; case GSM_MI_TYPE_IMEISV: - vlr_subscr_set_imeisv(vsub, mi_string); + vlr_subscr_set_imeisv(vsub, mi->imeisv); break; default: return -EINVAL; } if (vsub->auth_fsm) { - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - osmo_fsm_inst_dispatch(vsub->auth_fsm, - VLR_AUTH_E_MS_ID_IMSI, mi_string); + return osmo_fsm_inst_dispatch(vsub->auth_fsm, + VLR_AUTH_E_MS_ID_IMSI, (void*)mi->imsi); break; } } if (vsub->lu_fsm) { - uint32_t event = 0; - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - event = VLR_ULA_E_ID_IMSI; - break; + return osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_ID_IMSI, (void*)mi->imsi); case GSM_MI_TYPE_IMEI: - event = VLR_ULA_E_ID_IMEI; - break; + return osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_ID_IMEI, (void*)mi->imei); case GSM_MI_TYPE_IMEISV: - event = VLR_ULA_E_ID_IMEISV; - break; + return osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_ID_IMEISV, (void*)mi->imeisv); default: return -EINVAL; } - osmo_fsm_inst_dispatch(vsub->lu_fsm, event, mi_string); } return 0; diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c index 73f895505..73f343570 100644 --- a/src/libvlr/vlr_access_req_fsm.c +++ b/src/libvlr/vlr_access_req_fsm.c @@ -632,7 +632,7 @@ vlr_proc_acc_req(struct osmo_fsm_inst *parent, void *parent_event_data, struct vlr_instance *vlr, void *msc_conn_ref, enum vlr_parq_type type, enum osmo_cm_service_type cm_service_type, - const uint8_t *mi_lv, + const struct osmo_mobile_identity *mi, const struct osmo_location_area_id *lai, bool authentication_required, bool ciphering_required, @@ -641,8 +641,6 @@ vlr_proc_acc_req(struct osmo_fsm_inst *parent, { struct osmo_fsm_inst *fi; struct proc_arq_priv *par; - char mi_string[GSM48_MI_SIZE]; - uint8_t mi_type; fi = osmo_fsm_inst_alloc_child(&proc_arq_vlr_fsm, parent, parent_event_failure); @@ -678,16 +676,14 @@ vlr_proc_acc_req(struct osmo_fsm_inst *parent, LOGPFSML(fi, LOGL_ERROR, "Authentication off on UTRAN network. Good luck.\n"); - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi_lv+1, mi_lv[0]); - mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - osmo_strlcpy(par->imsi, mi_string, sizeof(par->imsi)); + OSMO_STRLCPY_ARRAY(par->imsi, mi->imsi); par->by_tmsi = false; break; case GSM_MI_TYPE_TMSI: par->by_tmsi = true; - par->tmsi = osmo_load32be(mi_lv+2); + par->tmsi = mi->tmsi; break; case GSM_MI_TYPE_IMEI: /* TODO: IMEI (emergency call) */ diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 288040f8d..fc33b38ba 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -458,7 +458,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -990,7 +990,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1598,7 +1598,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2242,7 +2242,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2630,7 +2630,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -3038,7 +3038,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index b65165952..a8c79847e 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -695,7 +695,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) @@ -1166,7 +1166,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index ad2b80cd0..70423557c 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -352,7 +352,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -538,7 +538,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -983,7 +983,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE TMSI-0x03020100 DREF msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP) @@ -1361,7 +1361,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 +DMM IMSI DETACH INDICATION: TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1575,7 +1575,7 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1673,7 +1673,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1887,7 +1887,7 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2152,7 +2152,7 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2418,7 +2418,7 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2557,7 +2557,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 +DMM IMSI DETACH INDICATION: TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2929,7 +2929,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP) @@ -3115,7 +3115,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index d4b450be1..e75309618 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -388,7 +388,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -606,7 +606,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1088,7 +1088,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE TMSI-0x03020100 DREF msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP) @@ -1306,7 +1306,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 +DMM IMSI DETACH INDICATION: TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1527,7 +1527,7 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1625,7 +1625,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1909,7 +1909,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2130,7 +2130,7 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2269,7 +2269,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 +DMM IMSI DETACH INDICATION: TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2666,7 +2666,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP) @@ -2866,7 +2866,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -3292,7 +3292,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -3510,7 +3510,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-42342 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -3936,7 +3936,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -4132,7 +4132,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-42342 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 6ccc82a46..66ea0bb1a 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -646,7 +646,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 5 (attached,SMS-receiver,SMS,Paging,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 6 (attached,SMS-receiver,SMS,Paging,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 335043125..2ee21daba 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -264,7 +264,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -405,7 +405,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -762,7 +762,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE TMSI-0x03020100 DREF msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP) @@ -1088,7 +1088,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 +DMM IMSI DETACH INDICATION: TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1259,7 +1259,7 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1339,7 +1339,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1510,7 +1510,7 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1625,7 +1625,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1714,7 +1714,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: - rx_from_ms: n DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -1846,7 +1846,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1935,7 +1935,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: - rx_from_ms: n DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2078,7 +2078,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2167,7 +2167,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: - rx_from_ms: n DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2366,7 +2366,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_S DREF msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-5234234234234276 +DMM IDENTITY RESPONSE: IMEI-SV-5234234234234276 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=5234234234234276 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=52342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2544,7 +2544,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 +DMM IMSI DETACH INDICATION: TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2633,7 +2633,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: - rx_from_ms: n DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2813,7 +2813,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 8953c1d4a..48086a737 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -803,7 +803,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AU DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: + rx_from_ms: now used by 2 (cm_service_sms,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 3 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_subscr_cancel_attach_fsm: now used by 4 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind,vlr_subscr_cancel_attach_fsm) @@ -1044,7 +1044,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AU DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: + rx_from_ms: now used by 3 (2*cm_service_sms,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 3 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_subscr_cancel_attach_fsm: now used by 4 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind,vlr_subscr_cancel_attach_fsm) @@ -1480,7 +1480,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -1780,7 +1780,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -1893,7 +1893,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AU DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: + rx_from_ms: now used by 2 (cm_service_sms,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 3 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_subscr_cancel_attach_fsm: now used by 4 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind,vlr_subscr_cancel_attach_fsm) @@ -2104,7 +2104,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index 4121a264f..ad8d82287 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -358,7 +358,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -466,7 +466,7 @@ DBSSAP msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode error ( DREF msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMSI-901700000004620 +DMM IDENTITY RESPONSE: IMSI-901700000004620 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 DVLR vlr_lu_fsm(TMSI-0x23422342:GERAN-A:LU){VLR_ULA_S_WAIT_IMSI}: Received Event VLR_ULA_E_ID_IMSI DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index db158d657..cd4cf5cec 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -399,7 +399,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index 3e5dbae88..53cce7938 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -369,7 +369,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP) @@ -556,7 +556,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -975,7 +975,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) @@ -1164,7 +1164,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1599,7 +1599,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) @@ -1796,7 +1796,7 @@ DMSC dummy_msc_i{0}: is child of msub_fsm DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn)