<p>lynxis lazus has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-msc/+/15492">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">vlr_auth_fsm: on SAI use the GSUP provided GMM cause code<br><br>The HLR might respond with a specific GMM cause code. E.g. roaming not<br>allowed which needs to be passed down the layers.<br><br>Change-Id: I9af515dc52834b7c57c42fc3a76ee2c682734e2a<br>---<br>M src/libvlr/vlr_auth_fsm.c<br>1 file changed, 11 insertions(+), 10 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/92/15492/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libvlr/vlr_auth_fsm.c b/src/libvlr/vlr_auth_fsm.c</span><br><span>index 6026510..d66d1f3 100644</span><br><span>--- a/src/libvlr/vlr_auth_fsm.c</span><br><span>+++ b/src/libvlr/vlr_auth_fsm.c</span><br><span>@@ -331,6 +331,7 @@</span><br><span>   struct auth_fsm_priv *afp = fi->priv;</span><br><span>     struct vlr_subscr *vsub = afp->vsub;</span><br><span>      struct osmo_gsup_message *gsup = data;</span><br><span style="color: hsl(120, 100%, 40%);">+        enum gsm48_reject_value gsm48_rej;</span><br><span> </span><br><span>       if (event == VLR_AUTH_E_HLR_SAI_NACK)</span><br><span>                LOGPFSM(fi, "GSUP: rx Auth Info Error cause: %d: %s\n",</span><br><span>@@ -340,9 +341,9 @@</span><br><span>      /* We are in what corresponds to the</span><br><span>          * Wait_For_Authentication_Sets state of TS 23.018 OAS_VLR */</span><br><span>        if ((event == VLR_AUTH_E_HLR_SAI_ACK && !gsup->num_auth_vectors)</span><br><span style="color: hsl(0, 100%, 40%);">-         || (event == VLR_AUTH_E_HLR_SAI_NACK &&</span><br><span style="color: hsl(0, 100%, 40%);">-             gsup->cause != GMM_CAUSE_IMSI_UNKNOWN)</span><br><span style="color: hsl(0, 100%, 40%);">-           || (event == VLR_AUTH_E_HLR_SAI_ABORT)) {</span><br><span style="color: hsl(120, 100%, 40%);">+         || (event == VLR_AUTH_E_HLR_SAI_NACK &&</span><br><span style="color: hsl(120, 100%, 40%);">+                   gsup->cause != GMM_CAUSE_IMSI_UNKNOWN)</span><br><span style="color: hsl(120, 100%, 40%);">+         || (event == VLR_AUTH_E_HLR_SAI_ABORT)) {</span><br><span>            if (vsub->vlr->cfg.auth_reuse_old_sets_on_error</span><br><span>                    && vlr_subscr_has_auth_tuple(vsub, -1)) {</span><br><span>                        /* To re-use an old tuple, disable the max_reuse_count</span><br><span>@@ -350,21 +351,21 @@</span><br><span>                       afp->auth_tuple_max_reuse_count = -1;</span><br><span>                     goto pass;</span><br><span>           }</span><br><span style="color: hsl(0, 100%, 40%);">-               /* result = procedure error */</span><br><span style="color: hsl(0, 100%, 40%);">-          auth_fsm_term(fi, GSM48_REJECT_NETWORK_FAILURE);</span><br><span style="color: hsl(0, 100%, 40%);">-                return;</span><br><span>      }</span><br><span> </span><br><span>        switch (event) {</span><br><span>     case VLR_AUTH_E_HLR_SAI_ACK:</span><br><span style="color: hsl(120, 100%, 40%);">+          if (!gsup->num_auth_vectors) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     auth_fsm_term(fi, GSM48_REJECT_NETWORK_FAILURE);</span><br><span style="color: hsl(120, 100%, 40%);">+                      return;</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span>            vlr_subscr_update_tuples(vsub, gsup);</span><br><span>                goto pass;</span><br><span>           break;</span><br><span>       case VLR_AUTH_E_HLR_SAI_NACK:</span><br><span style="color: hsl(0, 100%, 40%);">-           auth_fsm_term(fi,</span><br><span style="color: hsl(0, 100%, 40%);">-                             gsup->cause == GMM_CAUSE_IMSI_UNKNOWN?</span><br><span style="color: hsl(0, 100%, 40%);">-                               GSM48_REJECT_IMSI_UNKNOWN_IN_HLR</span><br><span style="color: hsl(0, 100%, 40%);">-                                : GSM48_REJECT_NETWORK_FAILURE);</span><br><span style="color: hsl(120, 100%, 40%);">+        case VLR_AUTH_E_HLR_SAI_ABORT:</span><br><span style="color: hsl(120, 100%, 40%);">+                vlr_gmm_cause_to_mm_cause(gsup->cause, &gsm48_rej);</span><br><span style="color: hsl(120, 100%, 40%);">+            auth_fsm_term(fi, gsm48_rej);</span><br><span>                break;</span><br><span>       }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-msc/+/15492">change 15492</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-msc/+/15492"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I9af515dc52834b7c57c42fc3a76ee2c682734e2a </div>
<div style="display:none"> Gerrit-Change-Number: 15492 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>