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

Reply via email to