<p>osmith <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-msc/+/14899">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, but someone else must approve
  osmith: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">vlr_lu_fsm.c: don't send LU reject twice<br><br>Don't call tx_lu_rej() in the "vlr_lu_compl" FSM. It is always getting<br>called in the parent "lu" FSM and is therefore redundant:<br><br>_vlr_lu_compl_fsm_done(fi, VLR_FSM_RESULT_FAILURE, cause)<br>-> osmo_fsm_inst_state_chg(fi, LU_COMPL_VLR_S_DONE, 0, 0)<br>-> vlr_lu_compl_fsm_dispatch_result()<br>-> lu_fsm_wait_lu_compl()/lu_fsm_wait_lu_compl_standalone()<br>-> lu_fsm_failure()<br>-> lfp->vlr->ops.tx_lu_rej()<br><br>I have noticed the bug with the TTCN3 tests. This patch fixes<br>TC_lu_imsi_auth_tmsi_check_imei_{nack,err} after stricter checking<br>in [1] and also TC_iu_mo_crcx_ran_reject.<br><br>[1] I836f76242463789c4c003feec757714827f2a31b (osmo-ttcn3-hacks)<br>Change-Id: I127b27937613ea0ff29d67991c0414fca6d441d9<br>---<br>M src/libvlr/vlr_lu_fsm.c<br>M tests/msc_vlr/msc_vlr_test_gsm_authen.err<br>2 files changed, 4 insertions(+), 15 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c</span><br><span>index 9dff4aa..87bf7a5 100644</span><br><span>--- a/src/libvlr/vlr_lu_fsm.c</span><br><span>+++ b/src/libvlr/vlr_lu_fsm.c</span><br><span>@@ -366,13 +366,6 @@</span><br><span>     vlr_sgs_fsm_update_id(vsub);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void vlr_lu_compl_fsm_failure(struct osmo_fsm_inst *fi, uint8_t cause)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     struct lu_compl_vlr_priv *lcvp = lu_compl_vlr_fi_priv(fi);</span><br><span style="color: hsl(0, 100%, 40%);">-      lcvp->vsub->vlr->ops.tx_lu_rej(lcvp->msc_conn_ref, cause);</span><br><span style="color: hsl(0, 100%, 40%);">-  _vlr_lu_compl_fsm_done(fi, VLR_FSM_RESULT_FAILURE, cause);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> static void vlr_lu_compl_fsm_dispatch_result(struct osmo_fsm_inst *fi,</span><br><span>                                             uint32_t prev_state)</span><br><span> {</span><br><span>@@ -434,8 +427,7 @@</span><br><span>         LOGPFSM(fi, "%s()\n", __func__);</span><br><span> </span><br><span>       if (vlr_subscr_alloc_tmsi(vsub)) {</span><br><span style="color: hsl(0, 100%, 40%);">-              vlr_lu_compl_fsm_failure(fi,</span><br><span style="color: hsl(0, 100%, 40%);">-                                     GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER);</span><br><span style="color: hsl(120, 100%, 40%);">+              _vlr_lu_compl_fsm_done(fi, VLR_FSM_RESULT_FAILURE, GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER);</span><br><span>           return;</span><br><span>      }</span><br><span> </span><br><span>@@ -495,15 +487,14 @@</span><br><span>        case LU_COMPL_VLR_E_IMEI_CHECK_ACK:</span><br><span>          if (!vsub->imei[0]) {</span><br><span>                     /* Abort: Do nothing */</span><br><span style="color: hsl(0, 100%, 40%);">-                 vlr_lu_compl_fsm_failure(fi,</span><br><span style="color: hsl(0, 100%, 40%);">-                                             GSM48_REJECT_PROTOCOL_ERROR);</span><br><span style="color: hsl(120, 100%, 40%);">+                        _vlr_lu_compl_fsm_done(fi, VLR_FSM_RESULT_FAILURE, GSM48_REJECT_PROTOCOL_ERROR);</span><br><span>                     return;</span><br><span>              }</span><br><span>            /* Pass */</span><br><span>           break;</span><br><span> </span><br><span>   case LU_COMPL_VLR_E_IMEI_CHECK_NACK:</span><br><span style="color: hsl(0, 100%, 40%);">-            vlr_lu_compl_fsm_failure(fi, GSM48_REJECT_ILLEGAL_ME);</span><br><span style="color: hsl(120, 100%, 40%);">+                _vlr_lu_compl_fsm_done(fi, VLR_FSM_RESULT_FAILURE, GSM48_REJECT_ILLEGAL_ME);</span><br><span>                 /* FIXME: IMEI Check Fail to VLR Application (Detach IMSI VLR) */</span><br><span>            return;</span><br><span>      }</span><br><span>@@ -544,7 +535,7 @@</span><br><span>              LOGPFSML(fi, LOGL_ERROR, "TMSI Realloc Compl implies that"</span><br><span>                          " the subscriber has a new TMSI allocated, but"</span><br><span>                    " the new TMSI is unset.\n");</span><br><span style="color: hsl(0, 100%, 40%);">-                vlr_lu_compl_fsm_failure(fi, GSM48_REJECT_NETWORK_FAILURE);</span><br><span style="color: hsl(120, 100%, 40%);">+           _vlr_lu_compl_fsm_done(fi, VLR_FSM_RESULT_FAILURE, GSM48_REJECT_NETWORK_FAILURE);</span><br><span>            return;</span><br><span>      }</span><br><span> </span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err</span><br><span>index 0a18302..c9be4ef 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err</span><br><span>@@ -1907,7 +1907,6 @@</span><br><span> DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_gsup_rx: now used by 2 (active-conn,vlr_gsup_rx)</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_NACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_NACK</span><br><span style="color: hsl(0, 100%, 40%);">-- sending LU Reject for IMSI-901700000004620:MSISDN-46071:GERAN-A:LU, cause 6</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_FAILURE</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span>@@ -2174,7 +2173,6 @@</span><br><span> DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071) Check_IMEI_VLR failed; gmm_cause: Invalid mandatory information</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_NACK</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_NACK</span><br><span style="color: hsl(0, 100%, 40%);">-- sending LU Reject for IMSI-901700000004620:MSISDN-46071:GERAN-A:LU, cause 6</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE</span><br><span> DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_FAILURE</span><br><span> DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-msc/+/14899">change 14899</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/+/14899"/><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: I127b27937613ea0ff29d67991c0414fca6d441d9 </div>
<div style="display:none"> Gerrit-Change-Number: 14899 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>