lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/15492
Change subject: vlr_auth_fsm: on SAI use the GSUP provided GMM cause code ...................................................................... vlr_auth_fsm: on SAI use the GSUP provided GMM cause code The HLR might respond with a specific GMM cause code. E.g. roaming not allowed which needs to be passed down the layers. Change-Id: I9af515dc52834b7c57c42fc3a76ee2c682734e2a --- M src/libvlr/vlr_auth_fsm.c 1 file changed, 11 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/92/15492/1 diff --git a/src/libvlr/vlr_auth_fsm.c b/src/libvlr/vlr_auth_fsm.c index 6026510..d66d1f3 100644 --- a/src/libvlr/vlr_auth_fsm.c +++ b/src/libvlr/vlr_auth_fsm.c @@ -331,6 +331,7 @@ struct auth_fsm_priv *afp = fi->priv; struct vlr_subscr *vsub = afp->vsub; struct osmo_gsup_message *gsup = data; + enum gsm48_reject_value gsm48_rej; if (event == VLR_AUTH_E_HLR_SAI_NACK) LOGPFSM(fi, "GSUP: rx Auth Info Error cause: %d: %s\n", @@ -340,9 +341,9 @@ /* We are in what corresponds to the * Wait_For_Authentication_Sets state of TS 23.018 OAS_VLR */ if ((event == VLR_AUTH_E_HLR_SAI_ACK && !gsup->num_auth_vectors) - || (event == VLR_AUTH_E_HLR_SAI_NACK && - gsup->cause != GMM_CAUSE_IMSI_UNKNOWN) - || (event == VLR_AUTH_E_HLR_SAI_ABORT)) { + || (event == VLR_AUTH_E_HLR_SAI_NACK && + gsup->cause != GMM_CAUSE_IMSI_UNKNOWN) + || (event == VLR_AUTH_E_HLR_SAI_ABORT)) { if (vsub->vlr->cfg.auth_reuse_old_sets_on_error && vlr_subscr_has_auth_tuple(vsub, -1)) { /* To re-use an old tuple, disable the max_reuse_count @@ -350,21 +351,21 @@ afp->auth_tuple_max_reuse_count = -1; goto pass; } - /* result = procedure error */ - auth_fsm_term(fi, GSM48_REJECT_NETWORK_FAILURE); - return; } switch (event) { case VLR_AUTH_E_HLR_SAI_ACK: + if (!gsup->num_auth_vectors) { + auth_fsm_term(fi, GSM48_REJECT_NETWORK_FAILURE); + return; + } vlr_subscr_update_tuples(vsub, gsup); goto pass; break; case VLR_AUTH_E_HLR_SAI_NACK: - auth_fsm_term(fi, - gsup->cause == GMM_CAUSE_IMSI_UNKNOWN? - GSM48_REJECT_IMSI_UNKNOWN_IN_HLR - : GSM48_REJECT_NETWORK_FAILURE); + case VLR_AUTH_E_HLR_SAI_ABORT: + vlr_gmm_cause_to_mm_cause(gsup->cause, &gsm48_rej); + auth_fsm_term(fi, gsm48_rej); break; } -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/15492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I9af515dc52834b7c57c42fc3a76ee2c682734e2a Gerrit-Change-Number: 15492 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus <lyn...@fe80.eu> Gerrit-MessageType: newchange