1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2002 Texas Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose : Encoding of Air Interface Messages. Send AIMs to DL.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #ifndef RR_FORS_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #define RR_FORS_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #define ENTITY_RR
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 /*==== INCLUDES ===================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #include <string.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #include <stdlib.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #include "typedefs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #include "pcm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #include "pconst.cdg"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #include "mconst.cdg"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #include "message.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #include "ccdapi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #include "vsi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #include "custom.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #include "gsm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #include "prim.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 #include "tok.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #include "rr.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 /*==== EXPORT =====================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 /*==== PRIVAT =====================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 /*==== VARIABLES ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 /*==== FUNCTIONS ==================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 * -------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 * SIGNAL Processing functions
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 * -------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 | STATE : code ROUTINE : for_dat_encode_send |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 PURPOSE : Encode an Air Interface Message usinf CCD and send it do DL.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 LOCAL void for_dat_encode_send (void *prim, T_sdu *sdu)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 U8 *payload;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 U16 length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 if ( sdu NEQ NULL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 ccd_codeMsg (CCDENT_RR, UPLINK, (T_MSGBUF *)sdu, _decodedMsg, NOT_PRESENT_8BIT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 sdu->buf[sdu->o_buf/8-1] = PD_RR_TI_0; /* RR Protocol Discriminator, Skip Indicator */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 sdu->l_buf += 8;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 sdu->o_buf -= 8;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 payload = &(sdu->buf[0]); /* Beginning of the buffer */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 payload += (sdu->o_buf) >> 3; /* Plus offset (bytes) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 length = BYTELEN(sdu->l_buf); /* Length (bytes) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 RR_BINDUMP (payload,length,ARFCN_NOT_PRESENT,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 FRAME_NUM_NOT_PRESENT,UPLINK);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 PSENDX (DL, prim);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 | STATE : code ROUTINE : for_dat_data_req |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 PURPOSE : Encoding of a Layer 3 message and forwarding to Layer 2.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 GLOBAL void for_dat_data_req (T_DL_DATA_REQ *dl_data_req)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 TRACE_FUNCTION ("for_dat_data_req()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 for_dat_encode_send ( dl_data_req, &dl_data_req->sdu );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 | STATE : code ROUTINE : for_dat_est_req |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 PURPOSE : Start establishment for SMS on SAPI 3.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 GLOBAL void for_dat_est_req (T_DL_ESTABLISH_REQ *dl_establish_req)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 TRACE_FUNCTION ("for_dat_est_req()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 dl_establish_req->sdu.l_buf = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 dl_establish_req->sdu.o_buf = ENCODE_OFFSET;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 for_dat_encode_send ( dl_establish_req, NULL );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 | STATE : code ROUTINE : for_dat_est_req_not_coding |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 PURPOSE : Start a connection for an upper layer.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 GLOBAL void for_dat_est_req_not_coding (T_DL_ESTABLISH_REQ *dl_establish_req)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 TRACE_FUNCTION ("for_dat_est_req_not_coding()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 for_dat_encode_send ( dl_establish_req, NULL );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 | STATE : code ROUTINE : for_dat_est_req_content |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 PURPOSE : Start a connection with a layer 3 message from RR.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 GLOBAL void for_dat_est_req_content (T_DL_ESTABLISH_REQ *dl_establish_req)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 TRACE_FUNCTION ("for_dat_est_req_content()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 for_dat_encode_send ( dl_establish_req, &dl_establish_req->sdu );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 | STATE : code ROUTINE : for_dat_l3_data_req |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 PURPOSE : send an upper layer message to layer 2.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 GLOBAL void for_dat_l3_data_req (T_DL_DATA_REQ *dl_data_req)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 TRACE_FUNCTION ("for_dat_l3_data_req()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 for_dat_encode_send ( dl_data_req, NULL );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 | STATE : code ROUTINE : for_dat_reconnect_req |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 PURPOSE : After a failed handover or channel assignment RR
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 switches back to the old channel. This function starts
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 the reconnection of the layer 2 link.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 GLOBAL void for_dat_reconnect_req (T_DL_RECONNECT_REQ *dl_reconnect_req)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 TRACE_FUNCTION ("for_dat_reconnect_req()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 TRACE_EVENT ("DL_RECONNECT_REQ");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 for_dat_encode_send ( dl_reconnect_req, &dl_reconnect_req->sdu );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 | STATE : code ROUTINE : for_dat_resume_req |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 PURPOSE : After reception of a handover command or assignment command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 message, layer 1 is configured to a new channel and the
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 layer 2 link is resumed.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 GLOBAL void for_dat_resume_req (T_DL_RESUME_REQ *dl_resume_req)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 TRACE_FUNCTION ("for_dat_resume_req()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 for_dat_encode_send ( dl_resume_req, &dl_resume_req->sdu );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 | STATE : code ROUTINE : for_dat_unitdata_req |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 PURPOSE : Send an unacknowledged message on the uplink SACCH.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 This message is a measurement report message from RR.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 GLOBAL void for_dat_unitdata_req (T_DL_UNITDATA_REQ *dl_unitdata_req)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 TRACE_FUNCTION ("for_dat_unitdata_req()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 for_dat_encode_send ( dl_unitdata_req, &dl_unitdata_req->sdu );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 #if defined (REL99) && defined (TI_PS_FF_EMR)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 | STATE : code ROUTINE : for_dat_spd_unitdata_req |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 PURPOSE : Send an unacknowledged message on the uplink SACCH with short PD.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 This is a enhanced measurement report message from RR.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 GLOBAL void for_dat_spd_unitdata_req (T_DL_SHORT_UNITDATA_REQ *p_msg)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 T_sdu *sdu = &p_msg->sdu;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 TRACE_FUNCTION ("for_dat_spd_unitdata_req()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 if ( sdu NEQ NULL )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 ccd_codeMsg (CCDENT_RR_SHORT, UPLINK, (T_MSGBUF *)sdu, _decodedMsg, NOT_PRESENT_8BIT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 p_msg->ch_type=L2_CHANNEL_SACCH;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 PSENDX (DL, p_msg);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 | STATE : code ROUTINE : for_dat_process_common_emr_data |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 PURPOSE : DAT process requests FOR for processing the common EMR
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 parameters
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 GLOBAL BOOL for_dat_process_common_emr_data (T_gprs_rep_prio *p_rep,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 T_gprs_bsic *p_bl,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 UBYTE msg_index,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 BOOL ba_available)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 TRACE_FUNCTION ("for_dat_process_common_emr_data()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 return(for_process_common_emr_data ( p_rep,p_bl,msg_index, ba_available));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 | PROJECT : GSM-PS (6147) MODULE : RR_FOR |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 | STATE : code ROUTINE : for_att_update_ba2bsic_mapping |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 +--------------------------------------------------------------------+
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 PURPOSE :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 GLOBAL void for_att_update_ba2bsic_mapping(T_rr_enh_para *p_enh)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 GET_INSTANCE_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 UBYTE i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 USHORT *p_list = rr_data->act_ncell_list;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 T_enh_cell_list *p_enh_list = p_enh->enh_para.enh_cell_list;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 for (i = 0; i < p_enh->enh_para.num_valid_cells ; i++ )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 if ( (((p_enh->ba2bsic_map_pending >> i) & 0x1) EQ TRUE) AND
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 ( p_list[(UBYTE)p_enh_list[i].arfcn] NEQ NOT_PRESENT_16BIT ) )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 p_enh_list[i].arfcn = p_list[(UBYTE)p_enh_list[i].arfcn];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 p_enh->ba2bsic_map_pending = 0;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 return;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 #endif
|