FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/g23m-gsm/mm/mm_gprs.c @ 837:80959c73a21b
gdi: ffs_coat.c compiles
| author | Space Falcon <falcon@ivan.Harhan.ORG> | 
|---|---|
| date | Sat, 25 Apr 2015 19:25:47 +0000 | 
| parents | 2f7df7a314f8 | 
| children | 
| rev | line source | 
|---|---|
| 
673
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
3 | Project : GSM-PS (8410) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
4 | Modul : MM_GPRS.C | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
17 | Purpose : This module defines the functions which are necessary | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
18 | to process requests from GMM in MM. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
19 +----------------------------------------------------------------------------- | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
20 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
21 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
22 #ifndef MM_GMM_C | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
23 #define MM_GMM_C | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
24 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
25 #define ENTITY_MM | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
26 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
27 /*==== INCLUDES ===================================================*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
28 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
29 #include <string.h> | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
30 #include "typedefs.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
31 #include "pconst.cdg" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
32 #include "message.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
33 #include "ccdapi.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
34 #include "vsi.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
35 #include "custom.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
36 #include "gsm.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
37 #include "prim.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
38 #include "cnf_mm.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
39 #include "mon_mm.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
40 #include "pei.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
41 #include "tok.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
42 #include "mm.h" | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
43 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
44 #ifdef GPRS | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
45 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
46 /*==== EXPORT ==============================================================*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
47 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
48 /*==== TEST ================================================================*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
49 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
50 /*==== PRIVAT ==============================================================*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
51 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
52 /*==== VARIABLES ===========================================================*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
53 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
54 /*==== FUNCTIONS ===========================================================*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
55 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
56 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
57 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
58 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
59 | STATE : code ROUTINE : mm_gprs_update_req | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
60 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
61 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
62 PURPOSE : This function performs an remote controlled, by GMM initiatiated | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
63 location update | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
64 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
65 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
66 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
67 GLOBAL void mm_gprs_update_req (void) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
68 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
69 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
70 restart_function: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
71 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
72 TRACE_FUNCTION ("mm_gprs_update_req()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
73 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
74 mm_data->gprs.resumption = MMGMM_RESUMPTION_FAILURE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
75 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
76 switch (GET_STATE (STATE_MM)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
77 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
78 case MM_WAIT_FOR_OUTG_MM_CONN: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
79 case MM_WAIT_FOR_RR_CONN_MM: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
80 case MM_WAIT_FOR_RR_ACTIVE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
81 mm_data->attempt_cnt = 0; /* Just to be safe */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
82 /* Save the event as outstanding periodic update */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
83 mm_data->t3212_timeout = TRUE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
84 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
85 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
86 case MM_IDLE_NORMAL_SERVICE: /* 19.1 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
87 case MM_LOCATION_UPDATING_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
88 case MM_IMSI_DETACH_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
89 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
90 * As MM had no knowledge that a LOCATION UPDATING is necessary, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
91 * it can only be a periodic location updating or an unnecessary | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
92 * trigger for an IMSI attach location updating. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
93 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
94 if (mm_data->first_attach) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
95 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
96 assert (mm_data->mm.mm_info.att EQ ATT_NOT_ALLOW); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
97 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
98 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
99 * Start BCCH with broadcasted value. It could be discussed | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
100 * it the better time would have been after RR_ACTIVATE_IND. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
101 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
102 mm_start_t3212_bcch(); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
103 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
104 mm_data->first_attach_mem = mm_data->first_attach; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
105 mm_data->first_attach = FALSE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
106 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
107 mm_mmgmm_reg_cnf (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
108 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
109 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
110 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
111 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
112 * GMM should not trigger a periodic location updating | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
113 * if this is not announced by the cell, but anyway, it does not | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
114 * do any harm to check this condition here. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
115 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
116 if (mm_data->mm.mm_info.t3212 NEQ T3212_NO_PRD_UPDAT) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
117 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
118 mm_data->attempt_cnt = 0; /* Just to be safe */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
119 mm_periodic_loc_upd (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
120 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
121 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
122 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
123 mm_mmgmm_reg_cnf (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
124 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
125 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
126 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
127 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
128 case MM_IDLE_ATTEMPT_TO_UPDATE: /* 19.2 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
129 mm_data->attempt_cnt = 0; // Patch HM 14-Feb-02, GSM 11.10 44.2.1.2.8 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
130 mm_normal_loc_upd (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
131 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
132 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
133 case MM_IDLE_LIMITED_SERVICE: /* 19.3 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
134 if (mm_data->reg.op.m EQ M_MAN) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
135 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
136 mm_data->attempt_cnt = 0; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
137 mm_normal_loc_upd (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
138 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
139 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
140 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
141 TRACE_EVENT ("GMM triggered invalid update, not done."); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
142 mm_mmgmm_nreg_ind (NREG_LIMITED_SERVICE, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
143 SEARCH_NOT_RUNNING, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
144 FORB_PLMN_NOT_INCLUDED); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
145 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
146 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
147 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
148 case MM_IDLE_NO_IMSI: /* 19.4 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
149 mm_mmgmm_nreg_ind (NREG_LIMITED_SERVICE, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
150 SEARCH_NOT_RUNNING, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
151 FORB_PLMN_NOT_INCLUDED); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
152 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
153 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
154 case MM_IDLE_NO_CELL_AVAILABLE: /* 19.5 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
155 mm_mmgmm_nreg_ind (NREG_NO_SERVICE, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
156 SEARCH_NOT_RUNNING, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
157 FORB_PLMN_NOT_INCLUDED); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
158 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
159 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
160 case MM_IDLE_LUP_NEEDED: /* 19.6 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
161 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
162 * Start location update procedure in remote controlled form, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
163 * the type of location update may be NORMAL_LUP or IMSI_ATTACH_LUP. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
164 * MM already knows from the state that it needs a remote controlled | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
165 * location updating. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
166 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
167 if (!mm_normal_upd_needed ()) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
168 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
169 /* Send fake MMGMM_LUP_ACCEPT_IND to indicate the full service | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
170 * condition already (which is a fact if only IMSI ATTACH needed). */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
171 mm_mmgmm_lup_accept_ind (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
172 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
173 mm_data->attempt_cnt = 0; /* Power on, SIM inserted */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
174 mm_attach_loc_upd (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
175 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
176 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
177 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
178 mm_data->attempt_cnt = 0; /* Change of LA detected */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
179 mm_normal_loc_upd (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
180 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
181 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
182 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
183 case MM_IDLE_PLMN_SEARCH: /* 19.7 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
184 if (mm_data->idle_substate EQ MM_IDLE_NO_CELL_AVAILABLE) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
185 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
186 mm_mmgmm_nreg_ind (NREG_NO_SERVICE, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
187 SEARCH_NOT_RUNNING, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
188 FORB_PLMN_NOT_INCLUDED); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
189 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
190 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
191 /*FALLTHROUGH*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
192 //lint -fallthrough | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
193 case MM_PLMN_SEARCH_NORMAL_SERVICE: /* 19.8 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
194 /* Scan aborted, notify MMI */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
195 mm_mmgmm_plmn_ind (MMCS_PLMN_NOT_IDLE_MODE, NULL); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
196 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
197 /* Back to previous, non-searching IDLE substate */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
198 SET_STATE (STATE_MM, mm_data->idle_substate); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
199 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
200 /* Restart the function in new state, avoid recursion, stack usage */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
201 goto restart_function; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
202 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
203 default: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
204 TRACE_EVENT (UNEXPECTED_IN_STATE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
205 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
206 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
207 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
208 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
209 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
210 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
211 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
212 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
213 | STATE : code ROUTINE : mm_func_mmgmm_auth_rej_req | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
214 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
215 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
216 PURPOSE : This function handles the MMGMM_AUTH_REJ_REQ primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
217 MMGMM_AUTH_REJ_REQ indicates MM that the authentication procedure | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
218 performed by GMM is rejected by the network. For further details, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
219 see GSM 04.08 subclause 4.3.2.5. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
220 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
221 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
222 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
223 GLOBAL void mm_func_mmgmm_auth_rej_req (void) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
224 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
225 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
226 TRACE_FUNCTION ("mm_func_mmgmm_auth_rej_req()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
227 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
228 switch (GET_STATE (STATE_MM)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
229 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
230 case MM_IDLE_NORMAL_SERVICE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
231 case MM_IDLE_ATTEMPT_TO_UPDATE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
232 case MM_IDLE_LIMITED_SERVICE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
233 case MM_IDLE_NO_IMSI: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
234 case MM_IDLE_NO_CELL_AVAILABLE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
235 case MM_IDLE_LUP_NEEDED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
236 case MM_IDLE_PLMN_SEARCH: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
237 case MM_PLMN_SEARCH_NORMAL_SERVICE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
238 case MM_LOCATION_UPDATING_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
239 case MM_IMSI_DETACH_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
240 /* Release all calls, can only be stored calls */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
241 mm_mmxx_rel_ind (MMCS_NO_REGISTRATION, CM_NOT_IDLE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
242 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
243 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
244 * Upon receipt of an AUTHENTICATION REJECT message, the mobile station | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
245 * shall set the update status in the SIM to U2 ROAMING NOT ALLOWED, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
246 * delete from the SIM the stored TMSI, LAI and ciphering key sequence | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
247 * number. [GSM 04.08 subclause 4.3.2.5] | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
248 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
249 #ifdef REL99 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
250 reg_invalidate_upd_state (MS_LA_NOT_ALLOWED, FALSE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
251 #else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
252 reg_invalidate_upd_state (MS_LA_NOT_ALLOWED); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
253 #endif | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
254 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
255 /* Delete IMSI - consider SIM as invalid */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
256 mm_clear_mob_ident (&mm_data->reg.imsi_struct); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
257 mm_clear_reg_data (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
258 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
259 /* Inform RR about invalidation */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
260 mm_build_rr_sync_req_cause (SYNCCS_TMSI_CKSN_KC_INVAL_NO_PAG); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
261 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
262 /* Set new MM main state */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
263 SET_STATE (STATE_MM, MM_IDLE_NO_IMSI); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
264 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
265 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
266 default: /* No IDLE state */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
267 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
268 * This means: Either this is an internal protocol error or we are | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
269 * performing circuit switched and packed switched operations in | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
270 * parallel. MM does not handle this. As it seems so that | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
271 * the networks will never support this it makes no sense to handle it. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
272 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
273 TRACE_ERROR (UNEXPECTED_IN_STATE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
274 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
275 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
276 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
277 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
278 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
279 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
280 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
281 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
282 | STATE : code ROUTINE : mm_func_mmgmm_cm_establish_res | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
283 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
284 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
285 PURPOSE : This function handles the MMGMM_CM_ESTABLISH_RES primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
286 MMGMM_CM_ESTABLISH_RES confirms the establish request. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
287 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
288 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
289 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
290 GLOBAL void mm_func_mmgmm_cm_establish_res (UBYTE cm_establish_res) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
291 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
292 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
293 TRACE_FUNCTION ("mm_func_mmgmm_cm_establish_res()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
294 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
295 switch (GET_STATE (STATE_GPRS_CM_EST)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
296 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
297 case CM_GPRS_EST_PEND: /* Normal case */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
298 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
299 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
300 case CM_GPRS_EST_OK: /* Clash MO/MT, special case */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
301 TRACE_EVENT ("MO/MT clash"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
302 return; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
303 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
304 default: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
305 TRACE_ERROR ("Unexpected STATE_GPRS_CM_EST"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
306 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
307 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
308 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
309 if (cm_establish_res EQ MMGMM_ESTABLISH_OK) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
310 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
311 mm_data->gprs.resumption = MMGMM_RESUMPTION_FAILURE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
312 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
313 SET_STATE (STATE_GPRS_CM_EST, CM_GPRS_EST_OK); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
314 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
315 if (mm_count_connections (CM_NOT_IDLE) EQ 0) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
316 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
317 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
318 * In the meantime, all the stored connections have been cleared | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
319 * Worst case assumption: MMGMM_RESUMPTION_FAILURE. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
320 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
321 mm_mmgmm_cm_release_ind (MMGMM_RESUMPTION_FAILURE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
322 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
323 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
324 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
325 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
326 * Now all the stored establish requests may be performed | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
327 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
328 USE_STORED_ENTRIES(); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
329 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
330 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
331 else /* cm_establish_res EQ MMGMM_ESTABLISH_REJECT */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
332 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
333 /* Clear outstanding MMGMM_CM_ESTABLISH_IND */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
334 SET_STATE (STATE_GPRS_CM_EST, CM_GPRS_EST_IDLE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
335 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
336 /* Release all connections, there can only be stored connections */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
337 mm_mmxx_rel_ind (MMCS_INT_NOT_PRESENT, CM_NOT_IDLE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
338 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
339 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
340 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
341 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
342 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
343 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
344 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
345 | STATE : code ROUTINE : mm_func_mmgmm_cm_emergency_res | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
346 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
347 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
348 PURPOSE : This function handles the MMGMM_CM_EMERGENCY_RES primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
349 MMGMM_CM_EMERGENCY_RES confirms the establish request. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
350 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
351 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
352 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
353 GLOBAL void mm_func_mmgmm_cm_emergency_res (UBYTE cm_establish_res) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
354 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
355 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
356 TRACE_FUNCTION ("mm_func_mmgmm_cm_emergency_res()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
357 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
358 switch (GET_STATE (STATE_GPRS_CM_EST)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
359 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
360 case CM_GPRS_EST_PEND: /* Normal case */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
361 case CM_GPRS_EMERGE_PEND: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
362 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
363 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
364 case CM_GPRS_EST_OK: /* Clash MO/MT, special case */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
365 TRACE_EVENT ("MO/MT clash"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
366 return; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
367 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
368 default: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
369 TRACE_ERROR ("Unexpected STATE_GPRS_CM_EST"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
370 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
371 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
372 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
373 if (cm_establish_res EQ MMGMM_ESTABLISH_OK) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
374 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
375 mm_data->gprs.resumption = MMGMM_RESUMPTION_FAILURE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
376 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
377 SET_STATE (STATE_GPRS_CM_EST, CM_GPRS_EST_OK); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
378 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
379 if (mm_count_connections (CM_NOT_IDLE) EQ 0) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
380 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
381 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
382 * In the meantime, all the stored connections have been cleared | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
383 * Worst case assumption: MMGMM_RESUMPTION_FAILURE. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
384 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
385 mm_mmgmm_cm_release_ind (MMGMM_RESUMPTION_FAILURE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
386 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
387 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
388 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
389 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
390 * Now all the stored establish requests can be performed | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
391 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
392 USE_STORED_ENTRIES(); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
393 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
394 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
395 else /* cm_establish_res EQ MMGMM_EMERGENCY_REJECT */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
396 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
397 /* Clear outstanding MMGMM_CM_ESTABLISH_IND */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
398 SET_STATE (STATE_GPRS_CM_EST, CM_GPRS_EST_IDLE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
399 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
400 /* Release all connections, there can only be stored connections */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
401 mm_mmxx_rel_ind (MMCS_INT_NOT_PRESENT, CM_NOT_IDLE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
402 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
403 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
404 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
405 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
406 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
407 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
408 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
409 | STATE : code ROUTINE : mm_func_attach_started_req | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
410 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
411 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
412 PURPOSE : This function handles the MMGMM_ATTACH_STARTED_REQ primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
413 GMM indicates MM that GMM starts the combined attach procedure. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
414 This implies also network mode I. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
415 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
416 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
417 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
418 GLOBAL void mm_func_mmgmm_attach_started_req (void) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
419 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
420 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
421 TRACE_FUNCTION ("mm_func_mmgmm_attach_started_req()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
422 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
423 switch (GET_STATE (STATE_MM)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
424 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
425 case MM_IDLE_LUP_NEEDED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
426 assert (GET_STATE (STATE_REG_TYPE) EQ REG_CELL_SEARCH_ONLY); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
427 /*FALLTHROUGH*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
428 //lint -fallthrough | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
429 case MM_IDLE_NORMAL_SERVICE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
430 case MM_IDLE_ATTEMPT_TO_UPDATE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
431 case MM_IDLE_LIMITED_SERVICE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
432 case MM_PLMN_SEARCH_NORMAL_SERVICE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
433 case MM_LOCATION_UPDATING_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
434 case MM_IMSI_DETACH_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
435 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
436 /* IMSI present physically */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
437 assert (mm_data->reg.imsi_struct.v_mid EQ V_MID_PRES AND | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
438 !mm_data->gprs.sim_physically_removed); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
439 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
440 /* Revalidate SIM data */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
441 mm_data->reg.op.sim_ins = SIM_INSRT; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
442 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
443 /* Prevent MM specific procedures (location updating/detach) */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
444 SET_STATE (STATE_REG_TYPE, REG_CELL_SEARCH_ONLY); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
445 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
446 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
447 * A GPRS MS operating in mode A or B in a network that operates in | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
448 * mode I should not use any MM timers relating to MM specific | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
449 * procedures, (e.g T3210, T3211, T3212, T3213) except in some error | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
450 * and abnormal cases. If the MM timers are already running, the MS | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
451 * should not react on the expiration of the timers. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
452 * | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
453 * NOTE 2: Whenever GMM performs a combined GMM procedure, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
454 * a GPRS MS enters the MM state MM LOCATION UPDATING PENDING in order | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
455 * to prevent the MM to perform a location update procedure. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
456 * | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
457 * [GSM 04.08 subclause 4.1.1.2.1, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
458 * GPRS MS operating in mode A or B in a network that operates in mode I] | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
459 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
460 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
461 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
462 * As GMM sends the primitive MMGMM_ATTACH_STARTED_REQ if it begins a combined | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
463 * attach procedure, MM is cautious not to stop any timer here already. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
464 * This is left up to the reception of MMGMM_ATTACH_ACC_REQ. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
465 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
466 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
467 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
468 * LOCATION UPDATING PENDING | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
469 * | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
470 * A location updating has been started using the combined | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
471 * GPRS routing area updating procedure. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
472 * | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
473 * [GSM 04.08 subclause 4.1.2.1.1, Main states] | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
474 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
475 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
476 /* Remember service state */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
477 mm_data->idle_substate = mm_get_service_state (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
478 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
479 // | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
480 // MM_LOCATION_UPDATING_PENDING is a superflous state. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
481 // Don't enter it. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
482 // | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
483 //SET_STATE (STATE_MM, MM_LOCATION_UPDATING_PENDING); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
484 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
485 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
486 default: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
487 TRACE_ERROR (UNEXPECTED_IN_STATE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
488 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
489 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
490 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
491 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
492 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
493 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
494 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
495 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
496 | STATE : code ROUTINE : mm_attach_acc | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
497 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
498 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
499 PURPOSE : This function handles the MMGMM_ATTACH_ACC_REQ primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
500 GMM informs MM about the successfull combined attach procedure | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
501 and sends the new TMSI, if available, to MM. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
502 This implies also network mode I. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
503 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
504 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
505 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
506 LOCAL void mm_attach_acc (const T_plmn *plmn, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
507 USHORT lac, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
508 UBYTE v_mobile_identity, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
509 ULONG mobile_identity, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
510 UBYTE v_equ_plmn_list, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
511 const T_equ_plmn_list *equ_plmn_list) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
512 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
513 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
514 BOOL eplmn_changed; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
515 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
516 TRACE_FUNCTION ("mm_attach_acc()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
517 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
518 /* All other conditions are an internal protocol failure here */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
519 assert (GET_STATE (STATE_REG_TYPE) EQ REG_CELL_SEARCH_ONLY); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
520 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
521 /* It is not specified that MM has to confirm a MMGMM_ATTACH_ACC_REQ, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
522 * GMM is informed about full service condition */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
523 mm_data->reg.full_service_indicated = TRUE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
524 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
525 /* Remember IMSI ATTACH has been done. */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
526 if (mm_data->first_attach) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
527 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
528 mm_data->first_attach_mem = mm_data->first_attach; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
529 mm_data->first_attach = FALSE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
530 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
531 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
532 /* Remember MM was attached by combined attach/detach procedures */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
533 mm_data->gprs.combined_procedures = TRUE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
534 mm_data->reg.update_stat = MS_UPDATED; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
535 mm_data->rej_cause = 0; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
536 mm_data->attempt_cnt = 0; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
537 mm_data->loc_upd_type.lut = NOT_RUNNING; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
538 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
539 if (memcmp(mm_data->reg.lai.mnc, plmn->mnc, SIZE_MNC) OR memcmp (mm_data->reg.lai.mcc, plmn->mcc, SIZE_MCC) OR (mm_data->reg.lai.lac NEQ lac)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
540 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
541 /* EF LOCI value has changed, hence write it on SIM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
542 /* EF Indicator for EF LOCI - bit 1 - changed value from Attach Accept msg*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
543 mm_data->ef_indicator|=0x01; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
544 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
545 /* Copy PLMN and LAC into registration data */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
546 memcpy (mm_data->reg.lai.mnc, plmn->mnc, SIZE_MNC); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
547 memcpy (mm_data->reg.lai.mcc, plmn->mcc, SIZE_MCC); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
548 mm_data->reg.lai.lac = lac; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
549 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
550 if (v_mobile_identity EQ MMGMM_TMSI_USED) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
551 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
552 /* Remember GMM's TMSI to avoid unnecessary synchronization */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
553 mm_data->reg.indicated_tmsi = mobile_identity; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
554 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
555 if (mobile_identity NEQ mm_data->reg.tmsi) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
556 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
557 /* EF LOCI value has changed, hence write it on SIM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
558 /* EF Indicator for EF LOCI - bit 1 - changed value from Attach Accept msg*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
559 mm_data->ef_indicator|=0x01; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
560 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
561 if (mobile_identity NEQ MMGMM_TMSI_INVALID) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
562 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
563 mm_data->reg.tmsi = mobile_identity; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
564 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
565 /* Inform RR about changed TMSI */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
566 mm_build_rr_sync_req_tmsi (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
567 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
568 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
569 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
570 mm_data->reg.tmsi = TMSI_INVALID_VALUE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
571 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
572 /* Inform RR about invalidation of TMSI */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
573 mm_build_rr_sync_req_cause (SYNCCS_TMSI_INVAL); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
574 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
575 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
576 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
577 /* Remove the PLMN from the "forbidden PLMN" list */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
578 reg_plmn_bad_del (mm_data->reg.forb_plmn, MAX_FORB_PLMN_ID, plmn); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
579 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
580 /* Remove the PLMN from the "forbidden PLMNs for GPRS service" list */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
581 reg_plmn_bad_del (mm_data->reg.gprs_forb_plmn, MAX_GPRS_FORB_PLMN_ID, plmn); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
582 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
583 /* Send RR_SYNC_REQ (Location Area allowed) */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
584 mm_build_rr_sync_req_cause (SYNCCS_LAI_ALLOW); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
585 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
586 /* This is a nasty hack to process 'equ_plmn_list'. The function 'reg_store_eqv_plmns' | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
587 * can only take a 'T_eqv_plmn_list' Currently 'T_equ_plmn_list' is identical to 'T_eqv_plmn_list' | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
588 * in all but name hence making the casting OK, **for now**. This problem needs to be adressed | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
589 * in the air interface document. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
590 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
591 if (v_equ_plmn_list) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
592 eplmn_changed = reg_store_eqv_plmns((T_eqv_plmn_list *)equ_plmn_list, (T_plmn *)plmn); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
593 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
594 eplmn_changed = reg_clear_plmn_list (mm_data->reg.eqv_plmns.eqv_plmn_list, EPLMNLIST_SIZE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
595 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
596 /* Send RR_SYNC_REQ (equivalent plmn list changed) */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
597 if(eplmn_changed) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
598 mm_build_rr_sync_req_cause (SYNCCS_EPLMN_LIST); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
599 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
600 /* Inform SIM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
601 reg_build_sim_update (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
602 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
603 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
604 * We assume the network has updated us for the currently selected cell, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
605 * otherwise we will run into trouble. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
606 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
607 assert (mm_check_lai (&mm_data->reg.lai, &mm_data->mm.lai)); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
608 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
609 /* Stop all timers used for MM specific procedures */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
610 TIMERSTOP (T3210); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
611 TIMERSTOP (T3211); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
612 TIMERSTOP (T3212); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
613 mm_data->t3212_timeout = FALSE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
614 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
615 TIMERSTOP (T3213); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
616 mm_data->t3213_restart = 0; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
617 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
618 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
619 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
620 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
621 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
622 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
623 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
624 | STATE : code ROUTINE : mm_func_attach_acc_req | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
625 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
626 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
627 PURPOSE : This function handles the MMGMM_ATTACH_ACC_REQ primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
628 GMM informs MM about the successfull combined attach procedure | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
629 and sends the new TMSI, if available, to MM. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
630 This implies also network mode I. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
631 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
632 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
633 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
634 GLOBAL void mm_func_mmgmm_attach_acc_req (const T_plmn *plmn, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
635 USHORT lac, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
636 UBYTE v_mobile_identity, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
637 ULONG mobile_identity, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
638 UBYTE v_equ_plmn_list, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
639 const T_equ_plmn_list *equ_plmn_list) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
640 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
641 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
642 TRACE_FUNCTION ("mm_func_mmgmm_attach_acc_req()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
643 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
644 switch (GET_STATE (STATE_MM)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
645 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
646 case MM_IDLE_NORMAL_SERVICE: /* 19.1 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
647 case MM_IDLE_ATTEMPT_TO_UPDATE: /* 19.2 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
648 case MM_IDLE_LIMITED_SERVICE: /* 19.3 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
649 case MM_IDLE_LUP_NEEDED: /* 19.6 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
650 case MM_LOCATION_UPDATING_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
651 case MM_IMSI_DETACH_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
652 mm_attach_acc (plmn, lac, v_mobile_identity, mobile_identity, v_equ_plmn_list, equ_plmn_list); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
653 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
654 SET_STATE (STATE_MM, MM_IDLE_NORMAL_SERVICE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
655 USE_STORED_ENTRIES(); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
656 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
657 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
658 case MM_IDLE_PLMN_SEARCH: /* 19.7 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
659 mm_attach_acc (plmn, lac, v_mobile_identity, mobile_identity, v_equ_plmn_list, equ_plmn_list); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
660 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
661 SET_STATE (STATE_MM, MM_PLMN_SEARCH_NORMAL_SERVICE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
662 USE_STORED_ENTRIES(); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
663 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
664 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
665 case MM_PLMN_SEARCH_NORMAL_SERVICE: /* 19.8 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
666 mm_attach_acc (plmn, lac, v_mobile_identity, mobile_identity, v_equ_plmn_list, equ_plmn_list); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
667 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
668 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
669 default: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
670 TRACE_ERROR (UNEXPECTED_IN_STATE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
671 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
672 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
673 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
674 /* Check HPLMN timer state */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
675 reg_check_hplmn_tim (mm_data->reg.thplmn); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
676 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
677 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
678 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
679 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
680 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
681 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
682 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
683 | STATE : code ROUTINE : mm_func_mmgmm_allowed_req | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
684 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
685 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
686 PURPOSE : This function handles the MMGMM_ALLOWED_REQ primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
687 GMM informs MM that the attach procedure was accepted by the | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
688 network, but for GPRS services only. MM doesn't perform a state | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
689 change (especially GSM does not become idle updated on the cell | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
690 by receiving this event), but the location area is removed from | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
691 all forbidden lists. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
692 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
693 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
694 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
695 GLOBAL void mm_func_mmgmm_allowed_req (UBYTE v_equ_plmn_list, const T_equ_plmn_list *equ_plmn_list) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
696 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
697 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
698 T_plmn plmn; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
699 BOOL eplmn_changed; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
700 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
701 TRACE_FUNCTION ("mm_mmgmm_allowed_req()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
702 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
703 /* Fill up the PLMN structure from the camped cell data */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
704 plmn.v_plmn = V_PLMN_PRES; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
705 memcpy (plmn.mcc, mm_data->mm.lai.mcc, SIZE_MCC); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
706 memcpy (plmn.mnc, mm_data->mm.lai.mnc, SIZE_MNC); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
707 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
708 /* Remove the PLMN from the "forbidden PLMN" list */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
709 reg_plmn_bad_del (mm_data->reg.forb_plmn, MAX_FORB_PLMN_ID, &plmn); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
710 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
711 /* Remove the PLMN from the "forbidden PLMNs for GPRS service" list */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
712 reg_plmn_bad_del (mm_data->reg.gprs_forb_plmn, MAX_GPRS_FORB_PLMN_ID, &plmn); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
713 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
714 /* Send RR_SYNC_REQ (Location Area allowed) */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
715 mm_build_rr_sync_req_cause (SYNCCS_LAI_ALLOW); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
716 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
717 /* This is a nasty hack to process 'equ_plmn_list'. The function 'reg_store_eqv_plmns' | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
718 * can only take a 'T_eqv_plmn_list' Currently 'T_equ_plmn_list' is identical to 'T_eqv_plmn_list' | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
719 * in all but name hence making the casting OK, for now. This problem needs to be adressed | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
720 * in the air interface document. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
721 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
722 if (v_equ_plmn_list) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
723 eplmn_changed = reg_store_eqv_plmns((T_eqv_plmn_list *)equ_plmn_list, (T_plmn *)&plmn); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
724 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
725 eplmn_changed = reg_clear_plmn_list (mm_data->reg.eqv_plmns.eqv_plmn_list, EPLMNLIST_SIZE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
726 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
727 /* Send RR_SYNC_REQ (equivalent plmn list changed) */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
728 if(eplmn_changed) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
729 mm_build_rr_sync_req_cause (SYNCCS_EPLMN_LIST); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
730 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
731 /* Update SIM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
732 reg_build_sim_update (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
733 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
734 /* Check HPLMN timer state */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
735 reg_check_hplmn_tim (mm_data->reg.thplmn); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
736 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
737 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
738 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
739 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
740 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
741 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
742 | STATE : code ROUTINE : mm_func_mmgmm_attach_rej_req | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
743 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
744 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
745 PURPOSE : This function handles the MMGMM_ATTACH_REJ_REQ primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
746 GMM informs MM that the attach procedure was rejected by the | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
747 network with the given reject cause. According to the given | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
748 cause action in MM is taken. For further details, see | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
749 GSM 04.08 subclause 4.7.3.1.4 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
750 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
751 See also the GSM functions mm_lup_rej() and mm_loc_upd_rej(). | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
752 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
753 This does *not* imply network mode I here, also other network | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
754 modes are possible here. MM need not have received the | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
755 MMGMM_ATTACH_STARTED_REQ message. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
756 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
757 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
758 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
759 GLOBAL void mm_func_mmgmm_attach_rej_req (USHORT cs) /* T_MMGMM_ATTACH_REJ_REQ */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
760 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
761 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
762 TRACE_FUNCTION ("mm_func_mmgmm_attach_rej_req()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
763 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
764 TRACE_EVENT_P1 (" cs = %d", cs); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
765 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
766 /* All other conditions is an internal protocol failure here */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
767 assert (GET_STATE (STATE_REG_TYPE) EQ REG_CELL_SEARCH_ONLY); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
768 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
769 /* Check for correct originating entity */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
770 assert (GET_CAUSE_ORIGIN_ENTITY (cs) EQ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
771 GMM_ORIGINATING_ENTITY); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
772 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
773 if (cs EQ GMMCS_GPRS_NOT_ALLOWED) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
774 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
775 /* List of forbidden PLMNs for GPRS services has no meaning anymore */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
776 reg_clear_plmn_list (mm_data->reg.gprs_forb_plmn, MAX_GPRS_FORB_PLMN_ID); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
777 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
778 return; /* No further impact on GSM side */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
779 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
780 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
781 switch (GET_STATE (STATE_MM)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
782 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
783 case MM_NULL: /* MM is off, do nothing */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
784 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
785 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
786 case MM_LUP_INITIATED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
787 case MM_WAIT_FOR_OUTG_MM_CONN: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
788 case MM_CONN_ACTIVE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
789 case MM_IMSI_DETACH_INIT: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
790 case MM_PROCESS_PROMPT: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
791 case MM_WAIT_FOR_NW_CMD: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
792 #ifdef REL99 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
793 case MM_RR_CONN_RELEASE_NOT_ALLOWED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
794 #endif | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
795 case MM_LUP_REJECTED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
796 case MM_WAIT_FOR_RR_CONN_LUP: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
797 case MM_WAIT_FOR_RR_CONN_MM: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
798 case MM_WAIT_FOR_RR_CONN_DETACH: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
799 case MM_WAIT_FOR_REESTABLISH: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
800 /* Abort to RR */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
801 mm_abort_connection (ABCS_NORM); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
802 /*FALLTHROUGH*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
803 //lint -fallthrough | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
804 default: /* These states have no existing or requested RR connection */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
805 /* Release all connections to CM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
806 mm_mmxx_rel_ind (cs, CM_NOT_IDLE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
807 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
808 /* CM control back to GMM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
809 mm_mmgmm_cm_release_ind (MMGMM_RESUMPTION_OK); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
810 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
811 mm_data->rej_cause = cs; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
812 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
813 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
814 * Set the attempt counter to the maximal possible value. This will | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
815 * ensure no own location updating attempt will be scheduled and MM | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
816 * will enter the state MM_IDLE_ATTEMPT_TO_UPDATE if an unspecified | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
817 * cause has been received by the network. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
818 * An exception is GMMCS_GPRS_NOT_ALLOWED_IN_PLMN which shall | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
819 * not have any influence for GSM (except that the PLMN in question | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
820 * has to be added to the forbidden list for GPRS services). | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
821 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
822 if (mm_data->rej_cause NEQ GMMCS_GPRS_NOT_ALLOWED_IN_PLMN) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
823 mm_data->attempt_cnt = 4; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
824 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
825 mm_loc_upd_rej (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
826 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
827 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
828 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
829 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
830 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
831 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
832 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
833 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
834 | STATE : code ROUTINE : mm_func_mmgmm_detach_started_req | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
835 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
836 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
837 PURPOSE : This function handles the MMGMM_DETACH_STARTED_REQ primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
838 GMM indicates MM that GMM starts the detach procedure for GSM. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
839 MM has to enter state MM_IMSI_DETACH_PENDING. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
840 See GSM 04.08 subclause 4.7.4.1. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
841 The reception of this primitive is only possible if network mode I, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
842 this means, combined procedures are performed. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
843 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
844 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
845 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
846 GLOBAL void mm_func_mmgmm_detach_started_req (void) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
847 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
848 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
849 TRACE_FUNCTION ("mm_func_mmgmm_detach_started_req()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
850 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
851 /* Reception of this primitive is a protocol failure if GSM is alone. */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
852 assert (!mm_gsm_alone()); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
853 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
854 /* Remember combinded detach */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
855 mm_data->gprs.combined_procedures = TRUE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
856 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
857 switch (GET_STATE (STATE_MM)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
858 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
859 case MM_NULL: /* MM is off, do nothing */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
860 case MM_IMSI_DETACH_PENDING: /* State already entered, do nothing */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
861 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
862 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
863 case MM_LUP_INITIATED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
864 case MM_WAIT_FOR_OUTG_MM_CONN: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
865 case MM_CONN_ACTIVE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
866 case MM_IMSI_DETACH_INIT: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
867 case MM_PROCESS_PROMPT: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
868 case MM_WAIT_FOR_NW_CMD: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
869 #ifdef REL99 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
870 case MM_RR_CONN_RELEASE_NOT_ALLOWED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
871 #endif | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
872 case MM_LUP_REJECTED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
873 case MM_WAIT_FOR_RR_CONN_LUP: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
874 case MM_WAIT_FOR_RR_CONN_MM: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
875 case MM_WAIT_FOR_RR_CONN_DETACH: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
876 case MM_WAIT_FOR_REESTABLISH: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
877 /* Abort to RR */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
878 mm_abort_connection (ABCS_NORM); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
879 /*FALLTHROUGH*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
880 //lint -fallthrough | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
881 default: /* These states have no existing or requested RR connection */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
882 /* Release all connections to CM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
883 mm_mmxx_rel_ind (MMCS_NO_REGISTRATION, CM_NOT_IDLE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
884 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
885 /* Prevent MM specific procedures (location updating/detach) */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
886 SET_STATE (STATE_REG_TYPE, REG_CELL_SEARCH_ONLY); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
887 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
888 /* Stop all possibly running MM timers */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
889 TIMERSTOP (T3210); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
890 TIMERSTOP (T3211); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
891 TIMERSTOP (T3212); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
892 mm_data->t3212_timeout = FALSE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
893 TIMERSTOP (T3213); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
894 mm_data->t3213_restart = 0; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
895 TIMERSTOP (T3220); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
896 TIMERSTOP (T3230); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
897 TIMERSTOP (T3240); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
898 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
899 /* Remember service state */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
900 mm_data->idle_substate = mm_get_service_state (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
901 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
902 /* Enter state MM_IMSI_DETACH_PENDING */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
903 // | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
904 // MM_IMSI_DETACH_PENDING is a superflous state. Don't enter it. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
905 // | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
906 //SET_STATE (STATE_MM, MM_IMSI_DETACH_PENDING); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
907 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
908 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
909 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
910 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
911 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
912 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
913 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
914 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
915 | STATE : code ROUTINE : mm_func_mmgmm_start_t3212_req | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
916 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
917 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
918 PURPOSE : This function handles the MMGMM_START_T3212_REQ primitive. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
919 MMGMM_START_T3212_REQ indicates that GPRS is now detached after | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
920 combined attach state in network mode I. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
921 MM has to start its own timer T3212 with the broadcasted value. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
922 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
923 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
924 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
925 GLOBAL void mm_func_mmgmm_start_t3212_req (void) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
926 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
927 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
928 T_TIME t3212_time; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
929 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
930 TRACE_FUNCTION ("mm_func_mmgmm_start_t3212_req()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
931 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
932 /* Reception of this primitive is a protocol failure if GSM is alone. */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
933 assert (!mm_gsm_alone()); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
934 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
935 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
936 * If the detach type information element value indicates "GPRS detach | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
937 * without switching off" and the MS is attached for GPRS and non-GPRS | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
938 * services and the network operates in network operation mode I, then | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
939 * if in the MS the timer T3212 is not already running, the timer T3212 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
940 * shall be set to its initial value and restarted after the | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
941 * DETACH REQUEST message has been sent. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
942 * [GSM 04.08 subclause 4.7.4.1.1, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
943 * MS initiated detach procedure initiation] | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
944 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
945 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
946 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
947 * If the detach type information element value indicates "re-attach | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
948 * required" or "re-attach not required" and the MS is attached for GPRS | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
949 * and non-GPRS services and the network operates in network operation | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
950 * mode I, then if in the MS the timer T3212 is not already running, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
951 * the timer T3212 shall be set to its initial value and restarted. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
952 * [GSM 04.08 subclause 4.7.4.2.2, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
953 * Network initiated GPRS detach procedure completion by the MS] | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
954 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
955 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
956 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
957 * One thing is for sure: MM is not (anymore) attached by combined | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
958 * procedures if its own T3212 is running. On the other hand, GSM | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
959 * is not alone, but still performs its operation with GMM. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
960 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
961 mm_data->gprs.combined_procedures = FALSE; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
962 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
963 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
964 * Start timer T3212 with broadcasted value. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
965 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
966 if (mm_data->t3212_cfg_counter NEQ 0 AND | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
967 mm_data->mm.mm_info.t3212 NEQ 0) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
968 t3212_time = mm_data->t3212_cfg_counter; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
969 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
970 t3212_time = mm_data->mm.mm_info.t3212 * 36; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
971 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
972 if (t3212_time NEQ 0) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
973 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
974 TIMERSTART (T3212, t3212_time * T_T3212_TIC_VALUE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
975 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
976 else | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
977 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
978 TIMERSTOP (T3212); /* No periodic update timer */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
979 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
980 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
981 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
982 #if 0 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
983 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
984 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
985 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
986 | STATE : code ROUTINE : mm_func_mmgmm_trigger_req | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
987 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
988 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
989 PURPOSE : Goal of this function is to ensure that the remaining | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
990 time before expiracy of the T_HPLMN timer is long enough. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
991 Used to prevent from aborting a data transfer because of | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
992 a PLMN reselection. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
993 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
994 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
995 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
996 GLOBAL void mm_func_mmgmm_trigger_req (void) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
997 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
998 TRACE_FUNCTION ("mm_func_mmgmm_trigger_req()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
999 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1000 /* Check if running first */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1001 if (TIMERACTIVE(T_HPLMN)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1002 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1003 T_TIME remaining_time; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1004 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1005 vsi_t_status (VSI_CALLER T_HPLMN, &remaining_time); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1006 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1007 /* Check if THPLMN is close from expiracy */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1008 if (remaining_time <= TICS_PER_DECIHOURS) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1009 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1010 TRACE_EVENT("Kick HPLMN timer"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1011 reg_stop_hplmn_tim(); /* Not restarted if already running */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1012 /* if (mm_full_service_pplmn_scan()) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1013 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1014 reg_check_hplmn_tim (1); /* Expiry not before 6 minutes */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1015 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1016 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1017 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1018 #endif | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1019 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1020 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1021 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1022 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1023 | STATE : code ROUTINE : mm_network_initiated_detach | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1024 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1025 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1026 PURPOSE : This function handles the network initiated detach received | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1027 by GMM and signalled to MM by using the MMGMM_NREG_REQ primitive | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1028 with cs EQ CS_DISABLE. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1029 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1030 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1031 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1032 void mm_network_initiated_detach (USHORT cs) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1033 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1034 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1035 TRACE_FUNCTION ("mm_network_initiated_detach()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1036 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1037 switch (GET_STATE (STATE_MM)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1038 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1039 case MM_NULL: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1040 /* No further action required */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1041 mm_mmgmm_nreg_cnf (mm_data->nreg_cause); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1042 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1043 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1044 case MM_LUP_INITIATED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1045 case MM_CONN_ACTIVE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1046 case MM_IMSI_DETACH_INIT: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1047 case MM_PROCESS_PROMPT: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1048 case MM_WAIT_FOR_NW_CMD: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1049 #ifdef REL99 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1050 case MM_RR_CONN_RELEASE_NOT_ALLOWED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1051 #endif | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1052 case MM_LUP_REJECTED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1053 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1054 * States where the mobile has a layer 2 connection | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1055 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1056 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1057 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1058 * The problem with that all is the following: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1059 * If we read GSM 04.08, subclause 4.7.4.2, it is not described | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1060 * what to do with a dedicated layer 2 connection. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1061 * Entering state MM_WAIT_FOR_NW_CMD and wait for either CHANNEL RELEASE | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1062 * message in RR or for T3240 expiry in MM is not possible as it violates | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1063 * the standard, entering MM_IDLE state is requested. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1064 * So the only way to get rid of an MM connection is a local release | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1065 * before entering MM_IDLE state. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1066 * This is not described in GSM 04.08, subclause 4.7.4.2. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1067 * Also is not described what to do with (pending) CM connections, compare | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1068 * this with the stardadization of the abort procedure (GSM 04.08, 4.3.5). | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1069 * The conclusion of this all is: It is either not foreseen or | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1070 * not yet standardized. So it still cannot be implemented in a | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1071 * standard conformant way. Class A is for further study in MM, really. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1072 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1073 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1074 /*FALLTHROUGH*/ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1075 case MM_WAIT_FOR_OUTG_MM_CONN: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1076 case MM_WAIT_FOR_RR_CONN_LUP: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1077 case MM_WAIT_FOR_RR_CONN_MM: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1078 case MM_WAIT_FOR_RR_CONN_DETACH: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1079 case MM_WAIT_FOR_REESTABLISH: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1080 case MM_WAIT_FOR_RR_ACTIVE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1081 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1082 * States where the mobile has a layer 2 connection requested | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1083 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1084 TRACE_ERROR (UNEXPECTED_IN_STATE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1085 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1086 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1087 case MM_IDLE_NORMAL_SERVICE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1088 case MM_LOCATION_UPDATING_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1089 case MM_IMSI_DETACH_PENDING: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1090 case MM_IDLE_ATTEMPT_TO_UPDATE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1091 case MM_IDLE_LIMITED_SERVICE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1092 case MM_IDLE_NO_IMSI: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1093 case MM_IDLE_NO_CELL_AVAILABLE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1094 case MM_IDLE_LUP_NEEDED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1095 case MM_IDLE_PLMN_SEARCH: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1096 case MM_PLMN_SEARCH_NORMAL_SERVICE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1097 /* Release all connections with appropriate cause to CM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1098 mm_mmxx_rel_ind (cs, CM_NOT_IDLE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1099 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1100 /* Inform GMM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1101 mm_mmgmm_cm_release_ind (MMGMM_RESUMPTION_FAILURE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1102 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1103 /* Handle the request of GMM like an location updating reject */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1104 mm_data->rej_cause = cs; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1105 mm_loc_upd_rej (); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1106 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1107 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1108 default: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1109 /* All states caught, this means trouble */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1110 TRACE_ERROR (UNEXPECTED_DEFAULT); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1111 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1112 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1113 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1114 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1115 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1116 /* | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1117 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1118 | PROJECT : GSM-PS (6147) MODULE : MM_MM | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1119 | STATE : code ROUTINE : mm_sim_removed_gprs_active | | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1120 +----------------------------------------------------------------------------+ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1121 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1122 PURPOSE : This function handles the case that the SIM is removed when GPRS | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1123 is active. An IMSI DETACH cannot be done immediately as MM has no | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1124 knowledge about the network mode in the current design (which is | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1125 regarded as a disadvantage for this case). All calls are thrown | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1126 out and all update activities are to be stopped. | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1127 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1128 */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1129 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1130 GLOBAL void mm_sim_removed_gprs_active (void) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1131 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1132 GET_INSTANCE_DATA; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1133 TRACE_FUNCTION ("mm_sim_removed_gprs_active()"); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1134 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1135 /* Remember the cause for limited service */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1136 mm_data->limited_cause = MMCS_SIM_REMOVED; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1137 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1138 /* Release all CM connections to upper layers */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1139 mm_mmxx_rel_ind (MMCS_NO_REGISTRATION, CM_NOT_IDLE); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1140 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1141 /* Stop all running update timers and running attempts */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1142 TIMERSTOP (T_REGISTRATION); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1143 TIMERSTOP (T3210); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1144 TIMERSTOP (T3211); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1145 TIMERSTOP (T3212); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1146 TIMERSTOP (T3213); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1147 mm_data->t3213_restart = 0; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1148 mm_data->loc_upd_type.lut = NOT_RUNNING; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1149 mm_data->idle_entry = RRCS_INT_NOT_PRESENT; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1150 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1151 switch (GET_STATE (STATE_MM)) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1152 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1153 /* Dedicated or dedicated requested states */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1154 case MM_LUP_INITIATED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1155 case MM_WAIT_FOR_OUTG_MM_CONN: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1156 case MM_CONN_ACTIVE: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1157 case MM_IMSI_DETACH_INIT: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1158 case MM_PROCESS_PROMPT: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1159 case MM_WAIT_FOR_NW_CMD: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1160 #ifdef REL99 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1161 case MM_RR_CONN_RELEASE_NOT_ALLOWED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1162 #endif | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1163 case MM_LUP_REJECTED: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1164 case MM_WAIT_FOR_RR_CONN_LUP: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1165 case MM_WAIT_FOR_RR_CONN_MM: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1166 case MM_WAIT_FOR_RR_CONN_DETACH: | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1167 /* Abort RR connection */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1168 mm_abort_connection (ABCS_NORM); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1169 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1170 /* No state change, wait for RR_RELEASE_IND in old state */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1171 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1172 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1173 default: /* All other states, especially IDLE states */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1174 if (GET_STATE (STATE_REG_TYPE) EQ REG_REMOTE_CONTROLLED) | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1175 { | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1176 /* Indicate end of RC update to GMM */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1177 mm_mmgmm_nreg_ind (NREG_LIMITED_SERVICE, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1178 SEARCH_NOT_RUNNING, | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1179 FORB_PLMN_NOT_INCLUDED); | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1180 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1181 break; | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1182 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1183 } | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1184 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1185 #endif /* GPRS */ | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1186 | 
| 
 
2f7df7a314f8
gsm-fw/g23m-gsm subtree: initial import from LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1187 #endif /* MM_GPRS_C */ | 
