diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2018-05-15 15:23:59 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2018-05-16 10:34:16 +0200 |
commit | 6f4752e00c2f7db10ff3cc76d05647fcd6235982 (patch) | |
tree | 02576fe04f697e9568052b9da3aac75055a64a17 | |
parent | cb8c75bba030c7ab9f2e49b2f40292a1738f3220 (diff) |
vlr_access_req_fsm: use correct cause codes
The FSM that controls the VLR ACCESS uses cause code 9
(GSM48_REJECT_MS_IDENTITY_NOT_DERVIVABLE) to signal that the
identity of the MS is currently not known in VLR (MSC-Reboot)
However, this cause code is from the GMM domain and is interpreted
as GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER by the MS, which cauese
the MS not to make a new LOCATION UPDATE on CM SERVICE REQUEST
- use GSM48_REJECT_IMSI_UNKNOWN_IN_VLR and
GSM48_REJECT_IMSI_UNKNOWN_IN_VLR instead of
GSM48_REJECT_IMSI_UNKNOWN_IN_VLR
Change-Id: Ic058c93387f9be9af4940f8961839c02b93ee370
Closes: OS#3266
-rw-r--r-- | src/libvlr/vlr_access_req_fsm.c | 8 | ||||
-rw-r--r-- | tests/msc_vlr/msc_vlr_test_rest.err | 6 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c index dd9582195..79eb75f85 100644 --- a/src/libvlr/vlr_access_req_fsm.c +++ b/src/libvlr/vlr_access_req_fsm.c @@ -381,7 +381,7 @@ static void proc_arq_vlr_fn_init(struct osmo_fsm_inst *fi, if (!par->by_tmsi) { /* We couldn't find a subscriber even by IMSI, * Set User Error: Unidentified Subscriber */ - proc_arq_fsm_done(fi, GSM48_REJECT_MS_IDENTITY_NOT_DERVIVABLE); + proc_arq_fsm_done(fi, GSM48_REJECT_IMSI_UNKNOWN_IN_VLR); return; } else { /* TMSI was included, are we permitted to use it? */ @@ -392,7 +392,7 @@ static void proc_arq_vlr_fn_init(struct osmo_fsm_inst *fi, return; } else { /* Set User Error: Unidentified Subscriber */ - proc_arq_fsm_done(fi, GSM48_REJECT_MS_IDENTITY_NOT_DERVIVABLE); + proc_arq_fsm_done(fi, GSM48_REJECT_IMSI_UNKNOWN_IN_VLR); return; } } @@ -411,7 +411,7 @@ static void proc_arq_vlr_fn_w_obt_imsi(struct osmo_fsm_inst *fi, vsub = vlr_subscr_find_by_imsi(vlr, par->imsi); if (!vsub) { /* Set User Error: Unidentified Subscriber */ - proc_arq_fsm_done(fi, GSM48_REJECT_MS_IDENTITY_NOT_DERVIVABLE); + proc_arq_fsm_done(fi, GSM48_REJECT_IMSI_UNKNOWN_IN_VLR); return; } assoc_par_with_subscr(fi, vsub); @@ -687,7 +687,7 @@ vlr_proc_acc_req(struct osmo_fsm_inst *parent, case GSM_MI_TYPE_IMEI: /* TODO: IMEI (emergency call) */ default: - proc_arq_fsm_done(fi, GSM48_REJECT_MS_IDENTITY_NOT_DERVIVABLE); + proc_arq_fsm_done(fi, GSM48_REJECT_INVALID_MANDANTORY_INF); return; } diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index 5f2d30f30..e71295a63 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -63,10 +63,10 @@ DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(CM_SERVICE_REQ:901700000004620) DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(MS_IDENTITY_NOT_DERVIVABLE) +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(IMSI_UNKNOWN_IN_VLR) DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_DONE}: Process Access Request result: MS_IDENTITY_NOT_DERVIVABLE -- sending CM Service Reject for unknown, cause: MS_IDENTITY_NOT_DERVIVABLE +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_DONE}: Process Access Request result: IMSI_UNKNOWN_IN_VLR +- sending CM Service Reject for unknown, cause: IMSI_UNKNOWN_IN_VLR DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASING DREF unknown: MSC conn use + release == 2 (0x101: compl_l3,release) |