pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-sgsn/+/15380


Change subject: gmm: Move code handling GMM Attach Complete to its own function
......................................................................

gmm: Move code handling GMM Attach Complete to its own function

Change-Id: I2d8d947ab1eb4100f404b885461f7a30583c9ac6
---
M src/sgsn/gprs_gmm.c
1 file changed, 40 insertions(+), 33 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/80/15380/1

diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c
index edb7eea..b2c70aa 100644
--- a/src/sgsn/gprs_gmm.c
+++ b/src/sgsn/gprs_gmm.c
@@ -1343,6 +1343,45 @@

 }

+/* 3GPP TS 24.008 ยง 9.4.3 Attach complete */
+static int gsm48_rx_gmm_att_compl(struct sgsn_mm_ctx *mmctx)
+{
+       struct sgsn_signal_data sig_data;
+       /* only in case SGSN offered new P-TMSI */
+       LOGMMCTXP(LOGL_INFO, mmctx, "-> ATTACH COMPLETE\n");
+
+       #ifdef BUILD_IU
+       if (mmctx->iu.ue_ctx) {
+               ranap_iu_tx_release(mmctx->iu.ue_ctx, NULL);
+       }
+       #endif
+
+       mmctx_timer_stop(mmctx, 3350);
+       mmctx->t3350_mode = GMM_T3350_MODE_NONE;
+       mmctx->p_tmsi_old = 0;
+       mmctx->pending_req = 0;
+       mmctx->gmm_state = GMM_REGISTERED_NORMAL;
+       switch(mmctx->ran_type) {
+       case MM_CTX_T_UTRAN_Iu:
+               osmo_fsm_inst_dispatch(mmctx->iu.mm_state_fsm, E_PMM_PS_ATTACH, 
NULL);
+               break;
+       case MM_CTX_T_GERAN_Gb:
+               /* Unassign the old TLLI */
+               mmctx->gb.tlli = mmctx->gb.tlli_new;
+               gprs_llme_copy_key(mmctx, mmctx->gb.llme);
+               gprs_llgmm_assign(mmctx->gb.llme, TLLI_UNASSIGNED,
+                                 mmctx->gb.tlli_new);
+               osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, 
E_MM_GPRS_ATTACH, NULL);
+               break;
+       }
+
+       osmo_fsm_inst_dispatch(mmctx->gmm_att_req.fsm, E_ATTACH_COMPLETE_RECV, 
0);
+       memset(&sig_data, 0, sizeof(sig_data));
+       sig_data.mm = mmctx;
+       osmo_signal_dispatch(SS_SGSN, S_SGSN_ATTACH, &sig_data);
+
+       return 0;
+}

 /* Checks if two attach request contain the IEs and IE values
  * return 0 if equal
@@ -1953,39 +1992,7 @@
        case GSM48_MT_GMM_ATTACH_COMPL:
                if (!mmctx)
                        goto null_mmctx;
-               /* only in case SGSN offered new P-TMSI */
-               LOGMMCTXP(LOGL_INFO, mmctx, "-> ATTACH COMPLETE\n");
-
-#ifdef BUILD_IU
-               if (mmctx->iu.ue_ctx) {
-                       ranap_iu_tx_release(mmctx->iu.ue_ctx, NULL);
-               }
-#endif
-
-               mmctx_timer_stop(mmctx, 3350);
-               mmctx->t3350_mode = GMM_T3350_MODE_NONE;
-               mmctx->p_tmsi_old = 0;
-               mmctx->pending_req = 0;
-               mmctx->gmm_state = GMM_REGISTERED_NORMAL;
-               switch(mmctx->ran_type) {
-               case MM_CTX_T_UTRAN_Iu:
-                       osmo_fsm_inst_dispatch(mmctx->iu.mm_state_fsm, 
E_PMM_PS_ATTACH, NULL);
-                       break;
-               case MM_CTX_T_GERAN_Gb:
-                       /* Unassign the old TLLI */
-                       mmctx->gb.tlli = mmctx->gb.tlli_new;
-                       gprs_llme_copy_key(mmctx, mmctx->gb.llme);
-                       gprs_llgmm_assign(mmctx->gb.llme, TLLI_UNASSIGNED,
-                                         mmctx->gb.tlli_new);
-                       osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, 
E_MM_GPRS_ATTACH, NULL);
-                       break;
-               }
-               rc = 0;
-
-               osmo_fsm_inst_dispatch(mmctx->gmm_att_req.fsm, 
E_ATTACH_COMPLETE_RECV, 0);
-               memset(&sig_data, 0, sizeof(sig_data));
-               sig_data.mm = mmctx;
-               osmo_signal_dispatch(SS_SGSN, S_SGSN_ATTACH, &sig_data);
+               rc = gsm48_rx_gmm_att_compl(mmctx);
                break;
        case GSM48_MT_GMM_RA_UPD_COMPL:
                if (!mmctx)

--
To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/15380
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-sgsn
Gerrit-Branch: master
Gerrit-Change-Id: I2d8d947ab1eb4100f404b885461f7a30583c9ac6
Gerrit-Change-Number: 15380
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to