FreeCalypso > hg > fc-magnetite
annotate src/g23m-gsm/rr/rr_datg.c @ 531:6917ea63bffa
doc/Compiling: Slackware, Wine and mokosrec2bin updates
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 26 Oct 2018 00:29:16 +0000 | 
| parents | 27a4235405c6 | 
| children | 
| rev | line source | 
|---|---|
| 
104
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | Project : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | Modul : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | Purpose : This module holds the functions for handling primitives | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 | sent from entity GRR to entity RR and vice versa. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 +----------------------------------------------------------------------------- | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 #ifndef RR_DATG_C | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 #define RR_DATG_C | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 #ifdef GPRS | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 #define ENTITY_RR | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 /*==== INCLUDES ===================================================*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 #include <string.h> | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #include <stddef.h> | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 #include "typedefs.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #include "pcm.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 #include "pconst.cdg" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 #include "mconst.cdg" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 #include "message.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 #include "ccdapi.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 #include "vsi.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 #include "custom.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 #include "gsm.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 #include "prim.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 #include "pei.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 #include "tok.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 #include "rr_gprs.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 #include "rr.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 static UBYTE get_r_bit (void); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 static void handle_non_gprs_param(T_non_gprs* non_gprs); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 static void dat_rrgrr_rr_est_ind (void); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 static void dat_build_rr_initialisation_request (void); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 | STATE : code ROUTINE : dat_rrgrr_channel_req | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 PURPOSE : Process the primitive RRGRR_CHANNEL_REQ received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 This primitive indicates to the RR to send a channel request | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 void dat_rrgrr_channel_req (T_RRGRR_CHANNEL_REQ *chan_req) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 USHORT req = (USHORT) (chan_req->req_data + 0x0400); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 TRACE_FUNCTION ("gprs_rrgrr_channel_req()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 * check availability of GPRS | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 switch (GET_STATE(STATE_GPRS)) /* rr_data->gprs_data.gprs_avail) */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 case GPRS_PIM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 case GPRS_PTM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 if (GET_STATE(STATE_DAT) NEQ DAT_NULL) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 switch (req) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 case ESTCS_GPRS_1P: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 case ESTCS_GPRS_SB: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 case ESTCS_PAGING: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 * reset values used in the Packet Access | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 * Procedure | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 if (IS_TIMER_ACTIVE(T3126)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 TIMERSTOP(T3126); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 memset(rr_data->gprs_data.rr_sdu, NOT_PRESENT_8BIT, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 sizeof(rr_data->gprs_data.rr_sdu)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 rr_data->gprs_data.tma_in_progress = FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 rr_data->gprs_data.fn = NOT_PRESENT_32BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 rr_data->gprs_data.req_ref_idx = NOT_PRESENT_8BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 rr_data->sc_data.first_attempt = TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 rr_data->repeat_est = FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 /* start procedure */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 dat_start_immediate_assign((USHORT)(req EQ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 ESTCS_PAGING ? ESTCS_GPRS_PAGING : req)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 SET_STATE(STATE_GPRS, GPRS_PAM_BCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 TRACE_EVENT("channel request with wrong value"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 TRACE_EVENT ("store channel req"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 if(! srv_store_prim((T_PRIM *)D2P(chan_req))) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 TRACE_EVENT("prim store full"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 PFREE(chan_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 return; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 case GPRS_PIM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 case GPRS_PAM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 case GPRS_PTM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 TRACE_EVENT ("chan_req w/ PBCCH!"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 case GPRS_ACTIVATED: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 TRACE_EVENT ("no cell selected yet, or cell supports no GPRS"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 case GPRS_SUSPENDED_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 case GPRS_SUSPENDED_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 TRACE_EVENT ("GPRS is suspended!"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 TRACE_EVENT ("GPRS not supported"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 PFREE (chan_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 | STATE : code ROUTINE : dat_check_gprs_imm_ass | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 PURPOSE : checks an incoming immediate assignment message and forwards | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 it to GRR if necessary. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 GLOBAL BOOL dat_check_gprs_imm_ass (T_MPH_UNITDATA_IND * unitdata, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 T_D_IMM_ASSIGN * imm_assign, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 UBYTE index) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 BOOL ret = FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 int send_indication = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 TRACE_FUNCTION ("dat_check_gprs_imm_ass()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 if (GET_STATE(STATE_GPRS) NEQ GPRS_PAM_BCCH) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 return FALSE; /* normal circuit switched handling */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 TRACE_EVENT_P7 ("fn=%u tma=%u ri=%x d_t=%u (tmaip=%u fn=%d ri=%d)", | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 unitdata->fn, imm_assign->tma, index, imm_assign->d_t, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 rr_data->gprs_data.tma_in_progress, rr_data->gprs_data.fn, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 rr_data->gprs_data.req_ref_idx); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 if (imm_assign->tma EQ TMA_1) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 /* Message indicates to be the first message of two in a | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 * two-message assignment of a downlink TBF. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 if (rr_data->gprs_data.tma_in_progress) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 TRACE_ERROR ("more than one TMA after another!"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 TRACE_EVENT_P4 ("ri=%x?%x(old) fn=%u?%u(old)", | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 index, rr_data->gprs_data.req_ref_idx, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 unitdata->fn, rr_data->gprs_data.fn); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 rr_data->gprs_data.tma_in_progress = TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 * store message, framenumber and burst index | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 gprs_rrgrr_store_sdu(rr_data->gprs_data.rr_sdu, &unitdata->sdu); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 rr_data->gprs_data.fn = unitdata->fn; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 rr_data->gprs_data.req_ref_idx = index; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 ret = TRUE; /* further treatment by GRR */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 if (rr_data->gprs_data.tma_in_progress) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 { /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 * MS awaits the second message of two in a two-message assignment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 * of a downlink TBF. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 * The message must belong to the same channel request | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 * and the time difference must be less than two multiframes. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 BOOL in_time, same_reference_index; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 U32 delta_fn; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 if (rr_data->gprs_data.fn > unitdata->fn) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 delta_fn = unitdata->fn + HYPERFRAME - rr_data->gprs_data.fn; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 delta_fn = unitdata->fn - rr_data->gprs_data.fn; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 in_time = (delta_fn/51) < 2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 same_reference_index = rr_data->gprs_data.req_ref_idx EQ index; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 TRACE_EVENT_P6 ("TMA:delta_fn=%u %s time, %sequal ref idx(%x?%x): %s", | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 delta_fn, in_time?"in":"out of", same_reference_index?"":"un", | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 rr_data->gprs_data.req_ref_idx, index, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 (in_time AND same_reference_index)?"OK":"not ok"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 if (in_time AND same_reference_index) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 { /* This is the matching second message of a tma. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 * -> Send both immediate assignments | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 send_indication = 2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 ret = TRUE; /* further treatment by GRR */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 TRACE_ERROR ("MS awaits second message of a tma, this is not the right one!"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 if (!in_time) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 * If the MS does not received the second IMMEDIATE ASSIGNMENT message | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 * in a two-message assignment within two multiframe periods following | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 * the first message, the MS shall discard the IA message received. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 rr_data->gprs_data.tma_in_progress = FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 rr_data->gprs_data.fn = NOT_PRESENT_32BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 rr_data->gprs_data.req_ref_idx = NOT_PRESENT_8BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 if(imm_assign->d_t EQ D_T_TBF) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 * stop timer and set RR state | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 * the handling of PDCH is done by GPRS | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 ret = TRUE; /* further treatment by GPRS */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 * allocation on SDCCH for GPRS | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 * normal RR establishment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 ret = FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 { /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 * MS don´t await the second message of two in a two-message assignment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 * of a downlink TBF and the message isn´t the first message of a tma. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 * | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 * -> Send one indication to GRR | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 send_indication = 1; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 if(imm_assign->d_t EQ D_T_TBF) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 * stop timer and set RR state | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 * the handling of PDCH is done by GPRS | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 ret = TRUE; /* further treatment by GRR */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 * allocation on SDCCH for GPRS | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 * normal RR establishment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 ret = FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 if (send_indication) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 if (send_indication EQ 2) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 PALLOC_SDU ( rrgrr_ia_ind, RRGRR_IA_IND, MAX_L2_FRAME_SIZE * BITS_PER_BYTE); /* T_RRGRR_IA_IND */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 * indicate first immediate assignment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 gprs_rrgrr_fill_from_stored_sdu(&rrgrr_ia_ind->sdu, rr_data->gprs_data.rr_sdu); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 rrgrr_ia_ind->fn = 0; /* not valid */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 rrgrr_ia_ind->r_bit = 0; /* not valid */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 PSENDX (GRR, rrgrr_ia_ind); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 PALLOC_SDU ( rrgrr_ia_ind2, RRGRR_IA_IND, MAX_L2_FRAME_SIZE * BITS_PER_BYTE); /* T_RRGRR_IA_IND */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 * indicate second or sole immediate assignment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 if (unitdata->sdu.o_buf >= 8) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 unitdata->sdu.o_buf -= 8; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 unitdata->sdu.l_buf += 8; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 TRACE_ERROR("dat_check_gprs_imm_ass(), not able to move offset o_buf"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 gprs_rrgrr_fill_from_stored_sdu(&rrgrr_ia_ind2->sdu, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 &unitdata->sdu.buf[unitdata->sdu.o_buf/8]); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 rrgrr_ia_ind2->fn = unitdata->fn; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 rrgrr_ia_ind2->r_bit = get_r_bit (); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 PSENDX (GRR, rrgrr_ia_ind2); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 TRACE_EVENT_P1 ("dat_check_gprs_imm_ass() returns %u", ret); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 return ret; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 | STATE : code ROUTINE : gprs_check_immediate_assignment_ext | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 PURPOSE : checks an incoming immediate assignment extended message | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 and forwards it to GRR if necessary. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 GLOBAL void dat_check_imm_ass_ext (T_MPH_UNITDATA_IND * unitdata, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 UBYTE index) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 TRACE_FUNCTION ("grps_check_immediate_assignment_ext()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 /*switch (rr_data->ms_data.establish_cause) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 case ESTCS_GPRS_1P: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 case ESTCS_GPRS_SB: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 case ESTCS_GPRS_PAGING:*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 switch (GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 * Immediate Assignment Extended received on AGCH during connection | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 * establishment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 PALLOC_SDU (rrgrr_iaext_ind, RRGRR_IAEXT_IND, MAX_L2_FRAME_SIZE * BITS_PER_BYTE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 gprs_rrgrr_store_sdu(rr_data->gprs_data.rr_sdu, &unitdata->sdu); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 gprs_rrgrr_fill_from_stored_sdu(&rrgrr_iaext_ind->sdu, rr_data->gprs_data.rr_sdu); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 rrgrr_iaext_ind->ia_index = index; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 rrgrr_iaext_ind->fn = unitdata->fn; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 rrgrr_iaext_ind->r_bit = get_r_bit(); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 PSENDX (GRR, rrgrr_iaext_ind); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 | STATE : code ROUTINE : att_check_imm_ass_rej | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 PURPOSE : checks an incoming immediate assignment reject message and forwards | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 it to GRR if necessary. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 GLOBAL UBYTE dat_check_imm_ass_rej (UBYTE wait_ind) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 UBYTE ret = FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 TRACE_FUNCTION ("att_check_imm_ass_rej()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 switch (rr_data->ms_data.establish_cause) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 case ESTCS_GPRS_1P: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 case ESTCS_GPRS_SB: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
393 case ESTCS_GPRS_PAGING: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 switch (GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 * Immediate Assignment Reject received on AGCH during connection | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 * establishment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 PALLOC( rrgrr_assignment_rej_ind, RRGRR_ASSIGNMENT_REJ_IND); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 rrgrr_assignment_rej_ind->wait_ind = wait_ind; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 rrgrr_assignment_rej_ind->r_bit = get_r_bit (); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 PSENDX (GRR, rrgrr_assignment_rej_ind); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 ret = TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 /* return TRUE; */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 return ret; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 /* return FALSE; */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 | STATE : code ROUTINE : dat_check_imm_assign_pch | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 PURPOSE : checks an incoming immediate assignment message in idle mode on | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 PCH | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 GLOBAL UBYTE dat_check_imm_assign_pch (T_MPH_UNITDATA_IND * unitdata, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 T_D_IMM_ASSIGN * imm_assign) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 TRACE_FUNCTION ("dat_check_imm_assign_pch()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 TRACE_EVENT("check dl ass"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 if(imm_assign->d_t EQ D_T_TBF AND | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 imm_assign->dl EQ DL_1) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 PALLOC_SDU ( rrgrr_ia_ind, RRGRR_IA_DOWNLINK_IND, MAX_L2_FRAME_SIZE * BITS_PER_BYTE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 case GPRS_NULL: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 case GPRS_ACTIVATED: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 * here it would be possible to store it if we are in | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 * cell reselection | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 * but i think this does not make sense: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 * -> this is not page (ia_dl is only cell wide), | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 * -> we dont know if its actually for us. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 * -> first we have to do a Cell Update. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 case GPRS_SUSPENDED_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 case GPRS_SUSPENDED_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 TRACE_EVENT_P1("dl ass in state %d", GET_STATE(STATE_GPRS) ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 PFREE(rrgrr_ia_ind); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 return TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 case GPRS_PIM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 * Immediate Assignment received in idle mode and it is a PDCH | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 TRACE_EVENT("dl ass"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 rr_data->start_cell_reselection = FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 TRACE_EVENT_P1("start_cell_reselection %d", rr_data->start_cell_reselection); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 gprs_rrgrr_store_sdu(rr_data->gprs_data.rr_sdu, &unitdata->sdu); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 gprs_rrgrr_fill_from_stored_sdu(&rrgrr_ia_ind->sdu, rr_data->gprs_data.rr_sdu); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 rrgrr_ia_ind->fn = unitdata->fn; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 rrgrr_ia_ind->r_bit = NOT_PRESENT_8BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 PSENDX (GRR, rrgrr_ia_ind); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 return TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 PFREE(rrgrr_ia_ind); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 return FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
477 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
478 return FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
479 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
480 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
481 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
482 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
483 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
484 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
485 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
486 | STATE : code ROUTINE : dat_check_packet_paging_ind | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
487 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
488 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
489 PURPOSE : checks an incoming paging whether it is for GPRS. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
490 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
491 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
492 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
493 UBYTE dat_check_packet_paging_ind (T_MPH_PAGING_IND * pag_ind) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
494 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
495 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
496 UBYTE ret=2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
497 TRACE_FUNCTION ("dat_check_packet_paging_ind ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
498 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
499 if (pag_ind->channel_needed EQ CN_PACKET) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
500 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
501 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
502 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
503 case GPRS_PIM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
504 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
505 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
506 * Inform GRR about packet paging | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
507 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
508 PALLOC ( rrgrr_packet_paging_ind, RRGRR_PACKET_PAGING_IND ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
509 switch (pag_ind->identity_type) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
510 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
511 case ID_IMSI: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
512 rrgrr_packet_paging_ind->pg_type = RRGRR_IMSI; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
513 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
514 case ID_PTMSI: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
515 rrgrr_packet_paging_ind->pg_type = RRGRR_PTMSI; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
516 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
517 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
518 TRACE_EVENT("packet paging with TMSI"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
519 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
520 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
521 PSENDX (GRR, rrgrr_packet_paging_ind); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
522 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
523 ret = 2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
524 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
525 case GPRS_NULL: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
526 case GPRS_ACTIVATED: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
527 /*strange cases, ignore it */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
528 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
529 case GPRS_SUSPENDED_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
530 case GPRS_SUSPENDED_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
531 /*is is a packet paging but we are suspended so ignore it*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
532 ret = 2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
533 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
534 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
535 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
536 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
537 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
538 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
539 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
540 /* normal CS paging */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
541 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
542 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
543 case GPRS_SUSPENDED_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
544 case GPRS_SUSPENDED_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
545 case GPRS_NULL: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
546 case GPRS_ACTIVATED: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
547 /* we are already suspended so just react to the paging */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
548 /* or GPRS is not activated */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
549 ret = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
550 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
551 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
552 /* ask GRR */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
553 ret = 1; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
554 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
555 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
556 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
557 return ret; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
558 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
559 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
560 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
561 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
562 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
563 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
564 | STATE : code ROUTINE : gprs_start_sabm | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
565 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
566 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
567 PURPOSE : starts connection establishment if a packet service is requested. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
568 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
569 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
570 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
571 BOOL dat_gprs_start_sabm(void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
572 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
573 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
574 TRACE_FUNCTION ("gprs_start_sabm()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
575 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
576 switch (GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
577 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
578 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
579 * Mobile originated packet connection | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
580 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
581 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
582 dat_build_rr_initialisation_request (); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
583 return TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
584 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
585 return FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
586 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
587 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
588 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
589 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
590 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
591 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
592 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
593 | STATE : code ROUTINE : gprs_build_rr_initialisation_request| | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
594 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
595 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
596 PURPOSE : starts connection establishment if a mobile originated packet | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
597 service is requested and it builds | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
598 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
599 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
600 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
601 static void dat_build_rr_initialisation_request (void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
602 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
603 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
604 MCAST (rr_init_req, D_RR_INIT_REQ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
605 PALLOC_MSG (establish_req, DL_ESTABLISH_REQ, D_RR_INIT_REQ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
606 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
607 TRACE_FUNCTION ("grps_build_rr_initialisation_request()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
608 TRACE_EVENT ("POWER CLASS: grps_build_rr_initialisation_request()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
609 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
610 dat_code_prr_channel (&establish_req->ch_type, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
611 &establish_req->sapi, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
612 rr_data->sc_data.chan_desc.chan_type); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
613 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
614 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
615 * fill message parameter | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
616 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
617 rr_init_req->msg_type = D_RR_INIT_REQ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
618 rr_init_req->ciph_key_num.key_seq = rr_data->ms_data.cksn; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
619 memcpy(&rr_init_req->mob_class_2, &rr_data->ms_data.classmark2, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
620 sizeof(rr_init_req->mob_class_2)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
621 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
622 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
623 * set power classes | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
624 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
625 rr_init_req->mob_class_2.rf_pow_cap = att_get_power (); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
626 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
627 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
628 * set all other parameter | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
629 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
630 rr_init_req->chan_coding.mac_mode = rr_data->gprs_data.mac_req; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
631 rr_init_req->chan_coding.cod_scheme = rr_data->gprs_data.cs_req; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
632 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
633 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
634 * store tlli independent from the used binary format | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
635 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
636 rr_init_req->ded_tlli.l_ded_tlli = 32; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
637 rr_init_req->ded_tlli.o_ded_tlli = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
638 ccd_codeByte (rr_init_req->ded_tlli.b_ded_tlli, 0, 8, (UBYTE)(rr_data->gprs_data.tlli >> 24)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
639 ccd_codeByte (rr_init_req->ded_tlli.b_ded_tlli, 8, 8, (UBYTE)(rr_data->gprs_data.tlli >> 16)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
640 ccd_codeByte (rr_init_req->ded_tlli.b_ded_tlli, 16, 8, (UBYTE)(rr_data->gprs_data.tlli >> 8)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
641 ccd_codeByte (rr_init_req->ded_tlli.b_ded_tlli, 24, 8, (UBYTE)rr_data->gprs_data.tlli); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
642 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
643 rr_init_req->chan_req_desc.or_ty = rr_data->gprs_data.p_chan_req_des.mo_mt; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
644 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
645 if (rr_init_req->chan_req_desc.or_ty) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
646 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
647 rr_init_req->chan_req_desc.v_crd_prio = 1; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
648 rr_init_req->chan_req_desc.crd_prio = rr_data->gprs_data.p_chan_req_des.prio; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
649 rr_init_req->chan_req_desc.v_rlc_mode = 1; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
650 rr_init_req->chan_req_desc.rlc_mode = rr_data->gprs_data.p_chan_req_des.rlc_mode_req; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
651 rr_init_req->chan_req_desc.v_llc_fr_type = 1; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
652 rr_init_req->chan_req_desc.llc_fr_type = rr_data->gprs_data.p_chan_req_des.llc_type; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
653 rr_init_req->chan_req_desc.v_rbw = 1; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
654 rr_init_req->chan_req_desc.rbw = rr_data->gprs_data.p_chan_req_des.req_bwd; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
655 rr_init_req->chan_req_desc.v_rlc_c_oct = 1; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
656 rr_init_req->chan_req_desc.rlc_c_oct = rr_data->gprs_data.p_chan_req_des.rlc_octets; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
657 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
658 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
659 rr_init_req->gprs_meas_res.c_val = rr_data->gprs_data.gprs_meas_results.c_value; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
660 rr_init_req->gprs_meas_res.rxqual = rr_data->gprs_data.gprs_meas_results.rxqual; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
661 rr_init_req->gprs_meas_res.sign_var = rr_data->gprs_data.gprs_meas_results.sign_var; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
662 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
663 for_dat_est_req_content (establish_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
664 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
665 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
666 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
667 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
668 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
669 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
670 | STATE : code ROUTINE : gprs_stop_dcch_ind | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
671 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
672 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
673 PURPOSE : inform GRR about failed layer 2 establishment. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
674 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
675 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
676 void dat_stop_dcch_ind (UBYTE stop_cause) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
677 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
678 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
679 PALLOC(stop, RRGRR_STOP_DCCH_IND); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
680 TRACE_FUNCTION ("gprs_stop_dcch_ind()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
681 stop->stop_cause = stop_cause; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
682 /* we will do a CR anyway */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
683 SET_STATE(STATE_GPRS, GPRS_ACTIVATED); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
684 PSENDX(GRR, stop); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
685 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
686 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
687 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
688 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
689 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
690 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
691 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
692 | STATE : code ROUTINE : gprs_rrgrr_gprs_data_req | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
693 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
694 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
695 PURPOSE : The primitive RRGRR_GPRS_DATA_REQ contains various parameters from | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
696 GRR. Layer 1 is configured and some data are stored. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
697 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
698 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
699 void dat_rrgrr_gprs_data_req (T_RRGRR_GPRS_DATA_REQ *data_req) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
700 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
701 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
702 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
703 * store parameter | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
704 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
705 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
706 rr_data->gprs_data.tlli = data_req->tlli; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
707 rr_data->gprs_data.p_chan_req_des = data_req->p_chan_req_des; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
708 rr_data->gprs_data.gprs_meas_results = data_req->gprs_meas_results; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
709 rr_data->gprs_data.mac_req = data_req->mac_req; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
710 rr_data->gprs_data.cs_req = data_req->cs_req; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
711 rr_data->gprs_data.current_rai = data_req->rai; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
712 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
713 if(rr_data->gprs_data.ptmsi NEQ data_req->old_ptmsi OR | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
714 rr_data->gprs_data.ptmsi2 NEQ data_req->new_ptmsi) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
715 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
716 rr_data->gprs_data.ptmsi = data_req->old_ptmsi; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
717 rr_data->gprs_data.ptmsi2 = data_req->new_ptmsi; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
718 att_mph_identity_req (); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
719 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
720 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
721 PFREE (data_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
722 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
723 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
724 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
725 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
726 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
727 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
728 | STATE : code ROUTINE : dat_rrgrr_data_ind | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
729 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
730 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
731 PURPOSE : Send the primitive rrgrr_data_ind to GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
732 This primitive indicates to the GRR that a | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
733 CTRL Message on DCCH for RR was received. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
734 IN : frame_number | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
735 OUT : rrgrr_data_ind | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
736 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
737 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
738 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
739 void dat_rrgrr_data_ind (T_DL_DATA_IND* dl_data_ind) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
740 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
741 USHORT soff,doff; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
742 PALLOC_SDU ( rrgrr_data_ind, RRGRR_DATA_IND, dl_data_ind->sdu.l_buf ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
743 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
744 TRACE_EVENT ("dat_rrgrr_data_ind ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
745 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
746 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
747 * compute byte offsets (soff,doff) into message streams, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
748 * assume that o_buf is multiple of 8 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
749 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
750 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
751 doff = (USHORT)(rrgrr_data_ind->sdu.o_buf / BITS_PER_BYTE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
752 soff = (USHORT)( dl_data_ind->sdu.o_buf / BITS_PER_BYTE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
753 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
754 memcpy ( &rrgrr_data_ind->sdu.buf[doff], | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
755 & dl_data_ind->sdu.buf[soff], BYTELEN ( dl_data_ind->sdu.l_buf ) ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
756 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
757 rrgrr_data_ind->fn = NOT_PRESENT_32BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
758 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
759 PFREE ( dl_data_ind ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
760 PSENDX (GRR, rrgrr_data_ind); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
761 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
762 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
763 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
764 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
765 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
766 | STATE : code ROUTINE : gprs_rrgrr_data_req | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
767 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
768 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
769 PURPOSE : Process the primitive RRGRR_DATA_REQ received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
770 This primitive indicates to the RR to send a block on DCCH. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
771 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
772 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
773 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
774 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
775 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
776 void dat_rrgrr_data_req (T_RRGRR_DATA_REQ *rrgrr_data_req) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
777 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
778 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
779 TRACE_EVENT ("dat_rrgrr_data_req ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
780 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
781 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
782 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
783 case GPRS_DEDI_SDCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
784 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
785 PPASS (rrgrr_data_req, dl_data_req, DL_DATA_REQ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
786 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
787 dat_code_prr_channel (&dl_data_req->ch_type, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
788 &dl_data_req->sapi, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
789 rr_data->sc_data.chan_desc.chan_type); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
790 dat_vsd_bit_set ((T_L3_SDU *)&dl_data_req->sdu, SET_ONLY); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
791 for_dat_l3_data_req (dl_data_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
792 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
793 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
794 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
795 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
796 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
797 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
798 PFREE (rrgrr_data_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
799 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
800 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
801 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
802 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
803 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
804 | STATE : code ROUTINE : dat_rgrr_suspend_dcch_req | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
805 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
806 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
807 PURPOSE : Process the primitive RRGRR_SUSPEND_DCCH_REQ received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
808 This primitive is used by GRR to order RR to stop the | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
809 dedicated channel. It is only a trigger. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
810 IN : RRGRR-SUSPEND-DCCH-REQ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
811 OUT : DL-SUSPEND-REQ and MPH-DEDICATED-REQ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
812 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
813 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
814 void dat_rrgrr_suspend_dcch_req( T_RRGRR_SUSPEND_DCCH_REQ *suspend_dcch_req) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
815 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
816 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
817 PALLOC (dedicated_req, MPH_DEDICATED_REQ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
818 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
819 TRACE_EVENT ("dat_rrgrr_suspend_dcch_req ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
820 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
821 for_suspend_layer_2(); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
822 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
823 memset (dedicated_req, 0, sizeof (T_MPH_DEDICATED_REQ)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
824 dedicated_req->mod = MODE_PDCH_ASSIGN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
825 PSENDX (PL, dedicated_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
826 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
827 SET_STATE (STATE_DAT, DAT_PDCH_ASS); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
828 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
829 PFREE (suspend_dcch_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
830 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
831 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
832 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
833 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
834 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
835 | STATE : code ROUTINE : dat_rrgrr_suspend_dcch_cnf | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
836 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
837 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
838 PURPOSE : Create the primitive RRGRR_SUSPEND_DCCH_CNF and send it to GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
839 As a response GRR will start the establishment of a TBF. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
840 IN : nothing | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
841 OUT : RRGRR_SUSPEND_DCCH_CNF | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
842 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
843 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
844 void dat_rrgrr_suspend_dcch_cnf( void ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
845 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
846 PALLOC (suspend_dcch_cnf, RRGRR_SUSPEND_DCCH_CNF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
847 PSENDX (GRR, suspend_dcch_cnf); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
848 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
849 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
850 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
851 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
852 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
853 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
854 | STATE : code ROUTINE : dat_rrgrr_reconnect_dcch_req | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
855 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
856 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
857 PURPOSE : Process the primitive RRGRR-RECONNECT-DCCH-REQ received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
858 This primitive is used by GRR during a PDCH Assignment procedure | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
859 and RR Network Controlled Cell Change Order to order RR to | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
860 continue with the dedicated channel. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
861 IN : T-RRGRR-RECONNECT-DCCH-REQ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
862 OUT : DL-DATA-REQ(u-assign-fail) or MPH_DEDICATED_FAIL_REQ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
863 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
864 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
865 void dat_rrgrr_reconnect_dcch_req (T_RRGRR_RECONNECT_DCCH_REQ *reconnect_dcch_req) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
866 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
867 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
868 TRACE_EVENT ("dat_rrgrr_reconnect_dcch_req()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
869 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
870 if ( rr_data->gprs_data.tbf_est EQ TBF_EST_PDCH OR | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
871 rr_data->gprs_data.tbf_est EQ TBF_EST_CCO ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
872 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
873 UBYTE next_state; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
874 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
875 if ( rr_data->gprs_data.tbf_est EQ TBF_EST_PDCH ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
876 next_state = DAT_PDCH_ASS_3; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
877 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
878 next_state = DAT_CCO_3; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
879 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
880 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
881 * The dedicated channel has been suspended at PL and DL. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
882 * However RR could not established the TBF. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
883 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
884 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
885 rr_data->gprs_data.tbf_est = TBF_EST_NONE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
886 dat_code_mph_old_chan_req(); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
887 rr_data->gprs_data.reconn_cause = reconnect_dcch_req->reconn_cause; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
888 rr_data->gprs_data.cco_need_reconnect_cnf = TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
889 SET_STATE (STATE_DAT, next_state); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
890 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
891 else /* Any other state assuming D_PDCH_ASS_CMD has been sent to GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
892 GRR cannot evaluate the message. */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
893 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
894 MCAST (u_assign_fail, U_ASSIGN_FAIL); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
895 PALLOC_MSG (dl_data_req, DL_DATA_REQ, U_ASSIGN_FAIL); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
896 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
897 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
898 * set channel type and SAPI | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
899 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
900 dat_code_prr_channel (&dl_data_req->ch_type, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
901 &dl_data_req->sapi, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
902 rr_data->sc_data.chan_desc.chan_type); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
903 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
904 u_assign_fail->msg_type = U_ASSIGN_FAIL; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
905 u_assign_fail->rr_cause = reconnect_dcch_req->reconn_cause; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
906 for_dat_data_req (dl_data_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
907 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
908 dat_rrgrr_reconnect_dcch_cnf (RECONN_OK); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
909 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
910 PFREE (reconnect_dcch_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
911 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
912 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
913 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
914 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
915 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
916 | STATE : code ROUTINE : dat_rrgrr_reconnect_dcch_cnf | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
917 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
918 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
919 PURPOSE : Create the primitive RRGRR_RECONNECT_DCCH_CNF and send it to GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
920 This indicates the outcome of the Reconnection procedure to GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
921 IN : nothing | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
922 OUT : RRGRR-RECONNECT-DCCH-CNF | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
923 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
924 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
925 void dat_rrgrr_reconnect_dcch_cnf( UBYTE reconn_state ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
926 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
927 PALLOC (reconnect_dcch_cnf, RRGRR_RECONNECT_DCCH_CNF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
928 TRACE_EVENT ("dat_rrgrr_reconnect_dcch_cnf()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
929 reconnect_dcch_cnf->reconn_state = reconn_state; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
930 PSENDX (GRR, reconnect_dcch_cnf); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
931 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
932 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
933 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
934 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
935 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
936 | STATE : code ROUTINE : dat_rgrr_resumed_tbf_req | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
937 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
938 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
939 PURPOSE : Process the primitive RRGRR-RESUMED-TBF-REQ received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
940 This primitive is used by GRR to order RR to indicate the | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
941 successful outcome of a TBF establishment at GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
942 This is applicable during PDCH Assignment and RR Network Contolled | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
943 Cell Change Order. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
944 IN : RRGRR-RESUMED-TBF-REQ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
945 OUT : MPH-IDLE-REQ and DL-RELEASE-REQ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
946 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
947 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
948 void dat_rrgrr_resumed_tbf_req( T_RRGRR_RESUMED_TBF_REQ *resumed_tbf_req ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
949 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
950 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
951 TRACE_EVENT ("dat_rrgrr_resumed_tbf_req ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
952 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
953 if ( rr_data->gprs_data.tbf_est EQ TBF_EST_PDCH OR | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
954 rr_data->gprs_data.tbf_est EQ TBF_EST_CCO ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
955 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
956 PALLOC (dl_release_req, DL_RELEASE_REQ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
957 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
958 rr_data->gprs_data.tbf_est = TBF_EST_NONE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
959 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
960 att_build_idle_req(SC_INDEX, MODE_PACKET_TRANSFER); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
961 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
962 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
963 * Note that also during a Cell Change Order the states DAT_PDCH* are used. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
964 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
965 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
966 SET_STATE (STATE_GPRS, GPRS_PTM_BCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
967 SET_STATE (STATE_DAT, DAT_PDCH_ASS_2); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
968 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
969 dat_code_prr_channel (&dl_release_req->ch_type, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
970 &dl_release_req->sapi, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
971 rr_data->sc_data.chan_desc.chan_type); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
972 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
973 dl_release_req->mode = DL_NORMAL_RELEASE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
974 PSENDX (DL, dl_release_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
975 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
976 PFREE (resumed_tbf_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
977 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
978 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
979 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
980 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
981 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
982 | STATE : code ROUTINE : dat_rrgrr_resumed_tbf_cnf | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
983 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
984 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
985 PURPOSE : Create a primitive RGRR_RESUMED_TBF_CNF and send it to GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
986 This indicates the successful outcome of the release of the DCCH | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
987 which was in use before the TBF was established. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
988 IN : nothing | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
989 OUT : RGRR-RESUMED-TBF-CNF | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
990 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
991 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
992 void dat_rrgrr_resumed_tbf_cnf( void ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
993 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
994 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
995 PALLOC (rrgrr_resumed_tbf_cnf, RRGRR_RESUMED_TBF_CNF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
996 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
997 TRACE_EVENT ("dat_rrgrr_resumed_tbf_cnf ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
998 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
999 SET_STATE(STATE_GPRS, GPRS_PTM_BCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1000 SET_STATE(STATE_DAT, DAT_IDLE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1001 SET_STATE(STATE_ATT, ATT_IDLE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1002 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1003 PSENDX (GRR, rrgrr_resumed_tbf_cnf); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1004 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1005 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1006 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1007 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1008 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1009 | STATE : code ROUTINE : dat_rrgrr_change_order | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1010 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1011 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1012 PURPOSE : Handle the message RR Network Controlled Cell Change Order. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1013 IN : DL-DATA-IND | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1014 OUT : RRGRR-DATA-IND | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1015 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1016 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1017 void dat_rrgrr_change_order (T_DL_DATA_IND *dl_data_ind, T_D_CHANGE_ORDER *d_change_order) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1018 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1019 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1020 for_check_cell_descr (&d_change_order->cell_desc); /* check if the BCCH is ok */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1021 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1022 if ( rr_data->ms_data.error.cs EQ 0 ) /* '0' indicates successful message decoding */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1023 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1024 T_cell_desc *cell_desc; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1025 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1026 for_suspend_layer_2(); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1027 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1028 if ( rr_data->gprs_data.dl_data_ind NEQ NULL ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1029 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1030 PFREE ( rr_data->gprs_data.dl_data_ind ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1031 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1032 rr_data->gprs_data.dl_data_ind = dl_data_ind; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1033 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1034 dat_att_null(); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1035 cs_set_all(); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1036 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1037 cell_desc = &d_change_order->cell_desc; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1038 rr_data->gprs_data.bsic = (UBYTE)(( cell_desc->ncc << 3 ) + cell_desc->bcc); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1039 rr_data->gprs_data.arfcn = (USHORT)(( cell_desc->bcch_arfcn_hi << 8 ) + | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1040 cell_desc->bcch_arfcn_lo); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1041 TIMERSTOP(T_DEDICATED_MODE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1042 rr_data->mode_after_dedi = MODE_CELL_CHANGE_ORDER; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1043 att_stop_dedicated(); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1044 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1045 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1046 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1047 MCAST (handov_fail, U_HANDOV_FAIL); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1048 PALLOC_MSG (dl_data_req, DL_DATA_REQ, U_HANDOV_FAIL); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1049 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1050 handov_fail->msg_type = U_HANDOV_FAIL; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1051 handov_fail->rr_cause = RRC_PROT_UNSPECIFIED; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1052 dat_code_prr_channel (&dl_data_req->ch_type, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1053 &dl_data_req->sapi, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1054 rr_data->sc_data.chan_desc.chan_type); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1055 for_dat_data_req (dl_data_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1056 PFREE ( dl_data_ind ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1057 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1058 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1059 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1060 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1061 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1062 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1063 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1064 | STATE : code ROUTINE : dat_check_packet_access | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1065 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1066 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1067 PURPOSE : change state from conn. establishment to dedicated | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1068 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1069 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1070 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1071 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1072 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1073 BOOL dat_check_packet_access(void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1074 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1075 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1076 if(GET_STATE(STATE_GPRS) EQ GPRS_PAM_BCCH) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1077 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1078 SET_STATE(STATE_GPRS, GPRS_DEDI_SDCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1079 return TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1080 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1081 else return FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1082 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1083 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1084 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1085 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1086 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1087 | STATE : code ROUTINE : dat_ask_paging_ind | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1088 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1089 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1090 PURPOSE : Ask GRR if paging should be processed. Answer will come in | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1091 RRGRR_RR_EST_RSP primitive | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1092 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1093 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1094 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1095 void dat_ask_paging_ind (T_MPH_PAGING_IND *pag_ind) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1096 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1097 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1098 TRACE_FUNCTION ("dat_ask_paging_ind ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1099 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1100 rr_data->gprs_data.pag_dat.id_type = pag_ind->identity_type; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1101 rr_data->gprs_data.pag_dat.chan_need = pag_ind->channel_needed; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1102 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1103 rr_data->start_cell_reselection = FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1104 TRACE_EVENT_P1("start_cell_reselection %d", rr_data->start_cell_reselection); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1105 /* ask GRR if paging should be processed */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1106 dat_rrgrr_rr_est_ind (); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1107 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1108 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1109 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1110 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1111 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1112 | STATE : code ROUTINE : dat_ask_paging_ind_pa_only | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1113 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1114 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1115 PURPOSE : Ask GRR if paging should be processed. Answer will come in | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1116 RRGRR_RR_EST_RSP primitive. Only applicable in state GPRS_PA. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1117 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1118 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1119 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1120 void dat_ask_paging_ind_pa_only (T_MPH_PAGING_IND *pag_ind) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1121 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1122 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1123 if ( GET_STATE(STATE_GPRS) EQ GPRS_PAM_BCCH AND pag_ind->channel_needed NEQ CN_PACKET ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1124 dat_ask_paging_ind ( pag_ind ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1125 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1126 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1127 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1128 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1129 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1130 | STATE : code ROUTINE : dat_rrgrr_rr_est_ind | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1131 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1132 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1133 PURPOSE : Send the primitive rrgrr_est_ind to GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1134 This primitive indicates to the GRR that an RR connection | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1135 establishment was received from the network via paging. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1136 It is only a trigger. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1137 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1138 OUT : rrgrr_rr_est_ind | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1139 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1140 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1141 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1142 static void dat_rrgrr_rr_est_ind (void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1143 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1144 PALLOC ( rrgrr_est_ind, RRGRR_RR_EST_IND ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1145 TRACE_EVENT ("dat_rrgrr_est_ind ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1146 PSENDX (GRR, rrgrr_est_ind); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1147 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1148 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1149 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1150 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1151 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1152 | STATE : code ROUTINE : dat_rrgrr_rr_est_req | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1153 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1154 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1155 PURPOSE : Process the primitive RRGRR_RR_EST_REQ received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1156 This primitive indicates to the RR a RR connection establishment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1157 was received on paging channel (PCCCH or PACCH). RR has to start | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1158 a RR connection as if it has received a connection establishment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1159 on CCCH. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1160 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1161 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1162 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1163 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1164 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1165 void dat_rrgrr_rr_est_req (T_RRGRR_RR_EST_REQ *est_req) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1166 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1167 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1168 TRACE_EVENT ("dat_rrgrr_rr_est_req ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1169 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1170 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1171 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1172 case GPRS_PTM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1173 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1174 case GPRS_PTM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1175 case GPRS_PAM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1176 case GPRS_PIM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1177 rr_data->gprs_data.gprs_suspend = est_req->susp_req; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1178 rr_data->gprs_data.gprs_resump = GPRS_RESUMPTION_ACK; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1179 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1180 if(est_req->non_gprs.v_non_gprs) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1181 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1182 handle_non_gprs_param(&est_req->non_gprs); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1183 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1184 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1185 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1186 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1187 case GPRS_PIM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1188 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1189 case GPRS_PTM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1190 SET_STATE(STATE_GPRS, GPRS_SUSPENDED_BCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1191 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1192 case GPRS_PIM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1193 case GPRS_PAM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1194 case GPRS_PTM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1195 SET_STATE(STATE_GPRS, GPRS_SUSPENDED_PBCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1196 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1197 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1198 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1199 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1200 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1201 dat_begin_start_immediate_assign (est_req->ident_type, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1202 est_req->ch_needed); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1203 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1204 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1205 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1206 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1207 PFREE (est_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1208 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1209 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1210 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1211 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1212 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1213 | STATE : code ROUTINE : handle_non_gprs_param | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1214 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1215 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1216 PURPOSE : Processes RGRR_RR_EST_REQ parameters received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1217 IN : Non GPRS parameter structure of the RRGRR_RR_EST_REQ primitive. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1218 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1219 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1220 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1221 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1222 static void handle_non_gprs_param(T_non_gprs* non_gprs) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1223 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1224 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1225 rr_data->nc_data[SC_INDEX].control_descr.att = non_gprs->att; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1226 rr_data->nc_data[SC_INDEX].control_descr.bs_ag_blks_res = non_gprs->bs_ag_blks_res; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1227 rr_data->nc_data[SC_INDEX].control_descr.ccch_conf = non_gprs->ccch_conf; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1228 rr_data->nc_data[SC_INDEX].control_descr.bs_pa_mfrms = non_gprs->bs_pa_mfrms; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1229 rr_data->nc_data[SC_INDEX].rach.max_retrans = non_gprs->max_retrans; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1230 rr_data->nc_data[SC_INDEX].rach.tx_integer = non_gprs->tx_integer; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1231 rr_data->nc_data[SC_INDEX].select_para.ms_txpwr_max_cch = non_gprs->gprs_ms_txpwr_max_cch; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1232 rr_data->nc_data[SC_INDEX].select_para.neci = non_gprs->neci; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1233 rr_data->sc_data.cd.cell_options.pow_ctrl = non_gprs->pwrc; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1234 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1235 if(non_gprs->dtx EQ 2) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1236 rr_data->sc_data.cd.dtx = DTX_NOT_USED; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1237 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1238 rr_data->sc_data.cd.dtx = DTX_USED; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1239 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1240 rr_data->sc_data.cd.dtx_half = rr_data->sc_data.cd.dtx_full = | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1241 rr_data->sc_data.cd.dtx; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1242 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1243 rr_data->sc_data.cd.cell_options.rlt = non_gprs->radio_link_timeout; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1244 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1245 if(non_gprs->ec) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1246 rr_data->nc_data[SC_INDEX].rach.ac &= 0x0400; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1247 if(non_gprs->v_T3212) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1248 rr_data->nc_data[SC_INDEX].control_descr.t3212 = non_gprs->T3212; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1249 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1250 #ifdef REL99 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1251 /*Copy Early Classmark Sending Control flag received in PSI2 by GRR*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1252 rr_data->nc_data[SC_INDEX].c2_par.ecsc = non_gprs->ecsc; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1253 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1254 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1255 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1256 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1257 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1258 | STATE : code ROUTINE : dat_rrgrr_rr_est_rsp | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1259 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1260 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1261 PURPOSE : Process the primitive RRGRR_RR_EST_RSP received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1262 This primitive indicates to the RR whether an establishment of | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1263 RR connection is allowed or not. This primitive is an answer | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1264 to the RRGRR_RR_EST_IND primitive. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1265 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1266 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1267 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1268 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1269 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1270 void dat_rrgrr_rr_est_rsp (T_RRGRR_RR_EST_RSP *est_rsp) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1271 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1272 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1273 TRACE_EVENT ("dat_rrgrr_rr_est_rsp ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1274 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1275 rr_data->start_cell_reselection = TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1276 TRACE_EVENT_P1("start_cell_reselection %d", rr_data->start_cell_reselection); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1277 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1278 /* establishment allowed */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1279 if (est_rsp->rr_est) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1280 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1281 rr_data->gprs_data.gprs_suspend = est_rsp->susp_req; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1282 rr_data->gprs_data.gprs_resump = GPRS_RESUMPTION_ACK; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1283 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1284 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1285 case GPRS_PIM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1286 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1287 case GPRS_PTM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1288 SET_STATE(STATE_GPRS, GPRS_SUSPENDED_BCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1289 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1290 case GPRS_PIM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1291 case GPRS_PAM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1292 case GPRS_PTM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1293 SET_STATE(STATE_GPRS, GPRS_SUSPENDED_PBCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1294 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1295 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1296 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1297 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1298 dat_begin_start_immediate_assign (rr_data->gprs_data.pag_dat.id_type, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1299 rr_data->gprs_data.pag_dat.chan_need); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1300 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1301 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1302 rr_data->gprs_data.pag_dat.id_type = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1303 rr_data->gprs_data.pag_dat.chan_need = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1304 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1305 PFREE (est_rsp); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1306 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1307 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1308 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1309 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1310 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1311 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1312 | STATE : code ROUTINE : dat_gprs_suspend_req | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1313 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1314 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1315 PURPOSE : Builds GPRS suspension request message. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1316 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1317 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1318 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1319 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1320 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1321 void dat_gprs_suspend_req (void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1322 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1323 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1324 if(rr_data->gprs_data.gprs_suspend) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1325 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1326 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1327 * building of the GPRS Suspension Request message | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1328 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1329 MCAST (susp_req, U_GPRS_SUSP_REQ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1330 PALLOC_MSG (dl_data_req, DL_DATA_REQ, U_GPRS_SUSP_REQ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1331 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1332 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1333 * set channel type and SAPI for layer 2 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1334 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1335 dat_code_prr_channel (&dl_data_req->ch_type, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1336 &dl_data_req->sapi, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1337 rr_data->sc_data.chan_desc.chan_type); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1338 susp_req->msg_type = U_GPRS_SUSP_REQ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1339 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1340 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1341 * store tlli independent from the used binary format | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1342 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1343 susp_req->ded_tlli.l_ded_tlli = 32; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1344 susp_req->ded_tlli.o_ded_tlli = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1345 ccd_codeByte (susp_req->ded_tlli.b_ded_tlli, 0, 8, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1346 (UBYTE)(rr_data->gprs_data.tlli >> 24)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1347 ccd_codeByte (susp_req->ded_tlli.b_ded_tlli, 8, 8, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1348 (UBYTE)(rr_data->gprs_data.tlli >> 16)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1349 ccd_codeByte (susp_req->ded_tlli.b_ded_tlli, 16, 8, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1350 (UBYTE)(rr_data->gprs_data.tlli >> 8)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1351 ccd_codeByte (susp_req->ded_tlli.b_ded_tlli, 24, 8, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1352 (UBYTE) rr_data->gprs_data.tlli); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1353 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1354 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1355 switch(rr_data->ms_data.establish_cause) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1356 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1357 case ESTCS_SERV_REQ_BY_MM: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1358 susp_req->susp_cause = SUSP_C_LU; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1359 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1360 case ESTCS_EMRG_CAL: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1361 case ESTCS_CAL_REEST: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1362 case ESTCS_MOB_ORIG_SPCH_CAL_BY_CC: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1363 case ESTCS_MOB_ORIG_DATA_CAL_BY_CC: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1364 case ESTCS_MOB_ORIG_DATA_CAL_BY_CC_HR_SUFF: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1365 case ESTCS_PAGING: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1366 susp_req->susp_cause = SUSP_C_CALL; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1367 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1368 case ESTCS_MOB_ORIG_CAL_BY_SS_SMS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1369 susp_req->susp_cause = SUSP_C_SMS; /* SUSP_C_SS */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1370 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1371 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1372 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1373 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1374 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1375 memcpy(susp_req->rout_area_id.mcc,rr_data->gprs_data.current_rai.plmn.mcc, SIZE_MCC); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1376 memcpy(susp_req->rout_area_id.mnc,rr_data->gprs_data.current_rai.plmn.mnc, SIZE_MNC); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1377 if (susp_req->rout_area_id.mnc[2] EQ 0x0f) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1378 susp_req->rout_area_id.c_mnc = 2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1379 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1380 susp_req->rout_area_id.c_mnc = SIZE_MNC; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1381 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1382 susp_req->rout_area_id.rac = rr_data->gprs_data.current_rai.rac; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1383 susp_req->rout_area_id.lac = rr_data->gprs_data.current_rai.lac; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1384 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1385 rr_data->gprs_data.gprs_resump = GPRS_RESUMPTION_NOT_ACK; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1386 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1387 * send to layer 2 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1388 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1389 for_dat_data_req (dl_data_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1390 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1391 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1392 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1393 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1394 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1395 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1396 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1397 | STATE : code ROUTINE : gprs_rrgrr_stop_task | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1398 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1399 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1400 PURPOSE : Process the primitive RRGRR_STOP_TASK_REQ received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1401 This primitive indicates to the RR that a specific task on RR side | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1402 should be stopped. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1403 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1404 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1405 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1406 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1407 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1408 void gprs_rrgrr_stop_task( T_RRGRR_STOP_TASK_REQ *stop_task) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1409 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1410 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1411 TRACE_EVENT ("gprs_rrgrr_stop_task"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1412 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1413 switch(stop_task->ctrl_task) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1414 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1415 case RR_TASK_1: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1416 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1417 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1418 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1419 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1420 rr_data->start_cell_reselection = TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1421 TRACE_EVENT_P1("start_cell_reselection %d", rr_data->start_cell_reselection); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1422 if(stop_task->task.v_stop_ccch NEQ INVALID_MSG) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1423 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1424 att_build_idle_req(SC_INDEX, MODE_PACKET_TRANSFER); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1425 TIMERSTOP(T3126); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1426 SET_STATE(STATE_GPRS, GPRS_PTM_BCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1427 SET_STATE(STATE_DAT, DAT_IDLE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1428 SET_STATE(STATE_ATT, ATT_IDLE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1429 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1430 PALLOC(stop_cnf, RRGRR_STOP_TASK_CNF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1431 PSENDX(GRR, stop_cnf); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1432 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1433 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1434 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1435 case GPRS_PIM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1436 if(stop_task->task.v_stop_ccch NEQ INVALID_MSG) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1437 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1438 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1439 * XXX we still have a problem if the search terminates | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1440 * and we want to select to the HPLMN cell just in the moment | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1441 * after we have sent the IA_DOWNLINK_IND but before receiving | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1442 * the STOP_TASK_REQ. But we should not stop the search | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1443 * before, because maybe the IA_DOWNLINK was not actually | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1444 * addressing us. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1445 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1446 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1447 if (rr_data->ms_data.req_mm_service EQ FUNC_NET_SRCH_BY_MMI) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1448 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1449 /*inform MM and stop everything*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1450 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1451 * send Please Retry to the MMI | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1452 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1453 rr_data->sc_data.found_entries = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1454 att_code_rr_abort_ind (RRCS_ABORT_CEL_SEL_FAIL); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1455 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1456 att_build_idle_req(SC_INDEX, MODE_PACKET_TRANSFER); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1457 SET_STATE(STATE_GPRS, GPRS_PTM_BCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1458 SET_STATE(STATE_DAT, DAT_IDLE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1459 SET_STATE(STATE_ATT, ATT_IDLE); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1460 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1461 PALLOC(stop_cnf, RRGRR_STOP_TASK_CNF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1462 PSENDX(GRR, stop_cnf); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1463 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1464 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1465 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1466 * If a search is active in idle this is set to false | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1467 * it is also set to false on sending the IA_DL to GRR | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1468 * If the IA_DL is for us we abort the search and enter TBF | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1469 * that means that the start_cr flag is always set to true | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1470 * If the IA_DL is not for us then the start_cr flag should only be | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1471 * reset if no search is ongoing. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1472 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1473 if (rr_data->ms_data.req_mm_service NEQ FUNC_NET_SRCH_BY_MMI) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1474 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1475 rr_data->start_cell_reselection = TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1476 TRACE_EVENT_P1("start_cell_reselection %d", rr_data->start_cell_reselection); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1477 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1478 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1479 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1480 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1481 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1482 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1483 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1484 case LEAVE_PIM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1485 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1486 TRACE_EVENT("LEAVE PIM"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1487 /* stop CCCH reading if running */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1488 /* SET_STATE(STATE_DAT, DAT_NULL); avoid reacting to crossing prim */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1489 /* stop CBCH reading if running */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1490 /* stop active ncell procedures */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1491 if (rr_data->ms_data.req_mm_service EQ FUNC_NET_SRCH_BY_MMI) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1492 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1493 /*inform MM and stop everything*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1494 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1495 * send Please Retry to the MMI | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1496 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1497 rr_data->sc_data.found_entries = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1498 att_code_rr_abort_ind (RRCS_ABORT_CEL_SEL_FAIL); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1499 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1500 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1501 PALLOC(mph_mon_ctrl_req, MPH_MON_CTRL_REQ ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1502 mph_mon_ctrl_req->action = LEAVING_PIM_PBCCH; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1503 PSENDX (PL, mph_mon_ctrl_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1504 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1505 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1506 PALLOC(stop_cnf, RRGRR_STOP_TASK_CNF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1507 PSENDX(GRR, stop_cnf); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1508 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1509 /* XXX stop PLMN scan ? */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1510 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1511 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1512 case LEAVE_PAM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1513 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1514 PALLOC(mph_mon_ctrl_req, MPH_MON_CTRL_REQ ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1515 TRACE_EVENT("LEAVE PAM"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1516 mph_mon_ctrl_req->action = LEAVING_PAM_PBCCH; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1517 PSENDX (PL, mph_mon_ctrl_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1518 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1519 PALLOC(stop_cnf, RRGRR_STOP_TASK_CNF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1520 PSENDX(GRR, stop_cnf); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1521 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1522 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1523 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1524 case LEAVE_PTM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1525 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1526 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1527 PALLOC(mph_mon_ctrl_req, MPH_MON_CTRL_REQ ); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1528 TRACE_EVENT("LEAVE PTM"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1529 mph_mon_ctrl_req->action = LEAVING_PTM_PBCCH; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1530 PSENDX (PL, mph_mon_ctrl_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1531 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1532 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1533 PALLOC(stop_cnf, RRGRR_STOP_TASK_CNF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1534 PSENDX(GRR, stop_cnf); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1535 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1536 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1537 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1538 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1539 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1540 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1541 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1542 PFREE(stop_task); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1543 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1544 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1545 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1546 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1547 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1548 | STATE : code ROUTINE : dat_rrgrr_activate_req | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1549 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1550 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1551 PURPOSE : Process the primitive RRGRR_ACTIVATE_REQ received from GRR. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1552 This primitive activates RR. RR acts as if the MS is only | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1553 GSM service mobile. Monitor CCCH and BCCH. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1554 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1555 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1556 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1557 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1558 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1559 void dat_rrgrr_activate_req (T_RRGRR_ACTIVATE_REQ *act_req) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1560 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1561 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1562 TRACE_EVENT ("dat_rrgrr_activate_req ()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1563 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1564 rr_data->gprs_data.gprs_suspend = act_req->susp_req; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1565 rr_data->gprs_data.rac = act_req->rac; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1566 rr_data->gprs_data.gprs_resump = GPRS_RESUMPTION_ACK; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1567 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1568 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1569 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1570 case GPRS_PIM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1571 case GPRS_PAM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1572 case GPRS_PTM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1573 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1574 /* we need the parameters from GRR to make | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1575 * a MO call | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1576 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1577 if(act_req->non_gprs.v_non_gprs) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1578 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1579 handle_non_gprs_param(&act_req->non_gprs); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1580 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1581 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1582 case GPRS_PIM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1583 /* nothing to do, just wait for MM to start with RR_ESTABLISH_REQ */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1584 /*SET_STATE(STATE_GPRS, GPRS_SUSPENDED_BCCH); do this on | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1585 RR_ESTABLISH_REQ */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1586 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1587 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1588 case GPRS_PTM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1589 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1590 * abort procedures we are doing for GPRS | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1591 * and go back to idle mode to wait for the | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1592 * RR_ESTABLISH_REQ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1593 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1594 rr_data->gprs_data.page_mode = PAG_MODE_DEFAULT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1595 #ifdef REL99 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1596 #else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1597 att_return_to_idle(); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1598 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1599 SET_STATE(STATE_GPRS, GPRS_PIM_BCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1600 #ifdef REL99 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1601 att_return_to_idle(); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1602 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1603 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1604 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1605 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1606 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1607 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1608 PFREE (act_req); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1609 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1610 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1611 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1612 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1613 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1614 | STATE : code ROUTINE : dat_set_gprs_resump | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1615 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1616 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1617 PURPOSE : Sets stored GPRS resumption value to the RR_RELEASE_IND primitive | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1618 to send. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1619 IN : Pointer to RR_RELEASE_IND primitive. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1620 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1621 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1622 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1623 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1624 void dat_set_gprs_resump (T_RR_RELEASE_IND* rr_release_ind) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1625 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1626 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1627 rr_release_ind->gprs_resumption = rr_data->gprs_data.gprs_resump; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1628 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1629 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1630 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1631 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1632 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1633 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1634 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1635 | STATE : code ROUTINE : dat_gprs_set_suspended | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1636 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1637 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1638 PURPOSE : Sets state to GPRS_SUSPENDED_PBCCH or GPRS_SUSPENDED_BCCH | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1639 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1640 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1641 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1642 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1643 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1644 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1645 void dat_gprs_set_suspended(void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1646 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1647 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1648 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1649 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1650 case GPRS_PIM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1651 case GPRS_PAM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1652 case GPRS_PTM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1653 SET_STATE(STATE_GPRS, GPRS_SUSPENDED_PBCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1654 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1655 case GPRS_PIM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1656 case GPRS_PAM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1657 case GPRS_PTM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1658 SET_STATE(STATE_GPRS, GPRS_SUSPENDED_BCCH); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1659 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1660 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1661 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1662 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1663 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1664 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1665 #ifdef REL99 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1666 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1667 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1668 | PROJECT : GSM-GPRS (6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1669 | STATE : code ROUTINE : dat_gprs_set_suspended | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1670 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1671 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1672 PURPOSE : Sets state to GPRS_SUSPENDED_PBCCH or GPRS_SUSPENDED_BCCH | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1673 IN : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1674 OUT : | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1675 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1676 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1677 BOOL dat_gprs_cell_in_ptm(void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1678 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1679 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1680 switch(GET_STATE(STATE_GPRS)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1681 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1682 case GPRS_PTM_PBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1683 case GPRS_PTM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1684 return TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1685 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1686 return FALSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1687 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1688 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1689 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1690 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1691 /*===========================================================================*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1692 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1693 * L O C A L S | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1694 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1695 /*===========================================================================*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1696 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1697 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1698 | PROJECT : GSM-GPRS (??6147) MODULE : RR_GPRS | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1699 | STATE : code ROUTINE : get_r_bit | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1700 +-----------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1701 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1702 PURPOSE : R-bit for the IA-prims | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1703 IN : access counter | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1704 OUT : r_bit | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1705 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1706 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1707 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1708 static UBYTE get_r_bit (void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1709 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1710 GET_INSTANCE_DATA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1711 UBYTE r_bit; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1712 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1713 switch (rr_data->ms_data.access_counter) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1714 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1715 case 0: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1716 r_bit = NOT_PRESENT_8BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1717 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1718 case 1: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1719 r_bit = CHAN_REQ_SENT_ONCE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1720 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1721 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1722 r_bit = CHAN_REQ_SENT_MORE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1723 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1724 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1725 return r_bit; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1726 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1727 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1728 #endif /* GPRS */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1729 #endif /* RR_DATG_C */ | 
