comparison g23m-aci/dti/dti_kerp.c @ 0:75a11d740a02

initial import of gsm-fw from freecalypso-sw rev 1033:5ab737ac3ad7
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 09 Jun 2016 00:02:41 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:75a11d740a02
1 /*
2 +-----------------------------------------------------------------------------
3 | Project : DTILIB
4 | Modul : DTI
5 +-----------------------------------------------------------------------------
6 | Copyright 2002 Texas Instruments Berlin, AG
7 | All rights reserved.
8 |
9 | This file is confidential and a trade secret of Texas
10 | Instruments Berlin, AG
11 | The receipt of or possession of this file does not convey
12 | any rights to reproduce or disclose its contents or to
13 | manufacture, use, or sell anything it may describe, in
14 | whole, or in part, without the specific written consent of
15 | Texas Instruments Berlin, AG.
16 +-----------------------------------------------------------------------------
17 | Purpose : Definitions for the Protocol Stack Library
18 | DTI
19 +-----------------------------------------------------------------------------
20 */
21
22 /*
23 * Version 1.6
24 */
25
26 #ifndef DTI_KERP_C
27 #define DTI_KERP_C
28 #endif
29
30 #include "config.h"
31 #include "fixedconf.h"
32 #include "condat-features.h"
33
34 #include <string.h>
35 #include "typedefs.h"
36 #include "pconst.cdg"
37 #include "vsi.h"
38 #include "pconst.cdg"
39 #include "custom.h"
40 #include "gsm.h"
41 #include "prim.h"
42 #include "pei.h"
43 #include "tok.h"
44 #include "ccdapi.h"
45 #include "dti.h"
46 #include "dti_int_def.h"
47 #include "dti_int_prot.h"
48
49
50 /*==== CONST =======================================================*/
51
52 /*==== TYPES =======================================================*/
53
54 /*==== VAR EXPORT ==================================================*/
55
56 /*==== VAR LOCAL ===================================================*/
57
58
59 /*==== MACROS ======================================================*/
60
61
62 /*==== prototypes ==================================================*/
63
64 /*==== FUNCTIONS ===================================================*/
65
66 /*
67 +--------------------------------------------------------------------+
68 | PROJECT : DTILIB MODULE : DTI_KERP |
69 | STATE : code ROUTINE : dti_dti_connect_req |
70 +--------------------------------------------------------------------+
71
72 PURPOSE : Process primitive DTI_CONNECT_REQ received from neighbour DTI.
73 */
74
75 GLOBAL void dti_dti_connect_req (DTI_HANDLE hDTI,
76 T_DTI2_CONNECT_REQ *dti_connect_req)
77 {
78 #define VSI_CALLER hDTI->handle,
79
80 trace_function(hDTI->handle,
81 "dti_dti_connect_req()",
82 hDTI->entity_options);
83
84 if( !(hDTI->entity_options & DTI_NO_TRACE) )
85 {
86 PACCESS (dti_connect_req);
87 }
88
89 trace_message_link_id(hDTI->handle,
90 " IN: DTI2_CONNECT_REQ",
91 dti_connect_req->link_id,
92 hDTI->entity_options);
93
94 connect_init_prim_received(hDTI,
95 dti_connect_req->link_id,
96 dti_connect_req->version,
97 DTI_CHANNEL_TO_HIGHER_LAYER);
98
99 PFREE (dti_connect_req);
100
101 #undef VSI_CALLER
102 } /* dti_dti_connect_req() */
103
104
105
106 /*
107 +--------------------------------------------------------------------+
108 | PROJECT : DTILIB MODULE : DTI_KERP |
109 | STATE : code ROUTINE : dti_dti_connect_ind |
110 +--------------------------------------------------------------------+
111
112 PURPOSE : Process primitive DTI_CONNECT_IND received from neighbour DTI
113 */
114
115 GLOBAL void dti_dti_connect_ind (DTI_HANDLE hDTI,
116 T_DTI2_CONNECT_IND *dti_connect_ind)
117 {
118 #define VSI_CALLER hDTI->handle,
119
120 trace_function(hDTI->handle,
121 "dti_dti_connect_ind()",
122 hDTI->entity_options);
123
124 if( !(hDTI->entity_options & DTI_NO_TRACE) )
125 {
126 PACCESS (dti_connect_ind);
127 }
128
129 trace_message_link_id(hDTI->handle,
130 " IN: DTI2_CONNECT_IND",
131 dti_connect_ind->link_id,
132 hDTI->entity_options);
133
134 connect_init_prim_received(hDTI,
135 dti_connect_ind->link_id,
136 dti_connect_ind->version,
137 DTI_CHANNEL_TO_LOWER_LAYER);
138
139 PFREE(dti_connect_ind);
140
141 #undef VSI_CALLER
142 } /* dti_dti_connect_ind() */
143
144
145
146 /*
147 +--------------------------------------------------------------------+
148 | PROJECT : DTILIB MODULE : DTI_KERP |
149 | STATE : code ROUTINE : dti_dti_disconnect_req |
150 +--------------------------------------------------------------------+
151
152 PURPOSE : Process primitive DTI2_DISCONNECT_REQ received from neighbour DTI
153 */
154
155 GLOBAL void dti_dti_disconnect_req (DTI_HANDLE hDTI,
156 T_DTI2_DISCONNECT_REQ *dti_disconnect_req)
157 {
158 #define VSI_CALLER hDTI->handle,
159
160 trace_function(hDTI->handle,
161 "dti_dti_disconnect_req()",
162 hDTI->entity_options);
163
164 if( !(hDTI->entity_options & DTI_NO_TRACE) )
165 {
166 PACCESS (dti_disconnect_req);
167 }
168
169 trace_message_link_id(hDTI->handle,
170 " IN: DTI2_DISCONNECT_REQ",
171 dti_disconnect_req->link_id,
172 hDTI->entity_options);
173
174 disconnect_prim_received(hDTI,
175 dti_disconnect_req->link_id,
176 DTI_CHANNEL_TO_HIGHER_LAYER);
177
178 PFREE (dti_disconnect_req);
179
180 #undef VSI_CALLER
181 } /* dti_dti_disconnect_req() */
182
183
184
185 /*
186 +--------------------------------------------------------------------+
187 | PROJECT : DTILIB MODULE : DTI_KERP |
188 | STATE : code ROUTINE : dti_dti_disconnect_ind |
189 +--------------------------------------------------------------------+
190
191 PURPOSE : Process primitive DTI_DISCONNECT_IND received from neighbour DTI
192 */
193
194 GLOBAL void dti_dti_disconnect_ind (DTI_HANDLE hDTI,
195 T_DTI2_DISCONNECT_IND *dti_disconnect_ind)
196 {
197 #define VSI_CALLER hDTI->handle,
198
199 trace_function(hDTI->handle,
200 "dti_dti_disconnect_ind()",
201 hDTI->entity_options);
202
203 if( !(hDTI->entity_options & DTI_NO_TRACE) )
204 {
205 PACCESS (dti_disconnect_ind);
206 }
207
208 trace_message_link_id(hDTI->handle,
209 " IN: DTI2_DISCONNECT_IND",
210 dti_disconnect_ind->link_id,
211 hDTI->entity_options);
212
213 disconnect_prim_received(hDTI,
214 dti_disconnect_ind->link_id,
215 DTI_CHANNEL_TO_LOWER_LAYER);
216
217 PFREE (dti_disconnect_ind);
218
219 #undef VSI_CALLER
220 } /* dti_dti_disconnect_ind() */
221
222
223
224 /*
225 +--------------------------------------------------------------------+
226 | PROJECT : DTILIB MODULE : DTI_KERP |
227 | STATE : code ROUTINE : dti_dti_connect_cnf |
228 +--------------------------------------------------------------------+
229
230 PURPOSE : Process primitive DTI_CONNECT_CNF received from neighbour DTI
231 */
232
233 GLOBAL void dti_dti_connect_cnf (DTI_HANDLE hDTI,
234 T_DTI2_CONNECT_CNF *dti_connect_cnf)
235 {
236 #define VSI_CALLER hDTI->handle,
237
238 trace_function(hDTI->handle,
239 "dti_dti_connect_cnf()",
240 hDTI->entity_options);
241
242 if( !(hDTI->entity_options & DTI_NO_TRACE) )
243 {
244 PACCESS (dti_connect_cnf);
245 }
246
247 trace_message_link_id(hDTI->handle,
248 " IN: DTI2_CONNECT_CNF",
249 dti_connect_cnf->link_id,
250 hDTI->entity_options);
251
252 connect_confirm_prim_received(hDTI,
253 dti_connect_cnf->link_id,
254 dti_connect_cnf->version,
255 DTI_CHANNEL_TO_LOWER_LAYER);
256
257 PFREE (dti_connect_cnf);
258
259 #undef VSI_CALLER
260 } /* dti_dti_connect_cnf() */
261
262
263
264 /*
265 +--------------------------------------------------------------------+
266 | PROJECT : DTILIB MODULE : DTI_KERP |
267 | STATE : code ROUTINE : dti_dti_connect_res |
268 +--------------------------------------------------------------------+
269
270 PURPOSE : Process primitive DTI_CONNECT_RES received from neighbour DTI
271 */
272
273 GLOBAL void dti_dti_connect_res (DTI_HANDLE hDTI,
274 T_DTI2_CONNECT_RES *dti_connect_res)
275 {
276 #define VSI_CALLER hDTI->handle,
277
278 trace_function(hDTI->handle,
279 "dti_dti_connect_res()",
280 hDTI->entity_options);
281
282 if( !(hDTI->entity_options & DTI_NO_TRACE) )
283 {
284 PACCESS (dti_connect_res);
285 }
286
287 trace_message_link_id(hDTI->handle,
288 " IN: DTI2_CONNECT_RES",
289 dti_connect_res->link_id,
290 hDTI->entity_options);
291
292 connect_confirm_prim_received(hDTI,
293 dti_connect_res->link_id,
294 dti_connect_res->version,
295 DTI_CHANNEL_TO_HIGHER_LAYER);
296
297 PFREE (dti_connect_res);
298
299 #undef VSI_CALLER
300 } /* dti_dti_connect_res() */
301
302
303
304 /*
305 +--------------------------------------------------------------------+
306 | PROJECT : DTILIB MODULE : DTI_KERP |
307 | STATE : code ROUTINE : dti_dti_data_req |
308 +--------------------------------------------------------------------+
309
310 PURPOSE : Process primitive DTI_DATA_REQ received from neighbour DTI
311 */
312
313 GLOBAL void dti_dti_data_req (DTI_HANDLE hDTI,
314 T_DTI2_DATA_REQ *dti_data_req)
315 {
316 #define VSI_CALLER hDTI->handle,
317
318 trace_function(hDTI->handle,
319 "dti_dti_data_req()",
320 hDTI->entity_options);
321
322 if( !(hDTI->entity_options & DTI_NO_TRACE) )
323 {
324 PACCESS (dti_data_req);
325 }
326
327 trace_message_l_dl(hDTI->handle,
328 " IN: DTI2_DATA_REQ",
329 dti_data_req->link_id,
330 dti_data_req->desc_list2.list_len,
331 hDTI->entity_options);
332
333 if(hDTI->entity_options & DTI_NO_TRACE)
334 {
335 PPASS_NTRACE(dti_data_req, dti_data_ind, DTI2_DATA_IND);
336 data_prim_received (hDTI, dti_data_ind, DTI_CHANNEL_TO_HIGHER_LAYER);
337 }
338 else
339 {
340 PPASS(dti_data_req, dti_data_ind, DTI2_DATA_IND);
341 data_prim_received (hDTI, dti_data_ind, DTI_CHANNEL_TO_HIGHER_LAYER);
342 }
343
344 #undef VSI_CALLER
345 } /* dti_dti_data_req() */
346
347
348
349 /*
350 +--------------------------------------------------------------------+
351 | PROJECT : DTILIB MODULE : DTI_KERP |
352 | STATE : code ROUTINE : dti_dti_data_ind |
353 +--------------------------------------------------------------------+
354
355 PURPOSE : Process primitive DTI_DATA_IND received from neighbour DTI
356 */
357
358 GLOBAL void dti_dti_data_ind (DTI_HANDLE hDTI,
359 T_DTI2_DATA_IND *dti_data_ind)
360 {
361 #define VSI_CALLER hDTI->handle,
362
363 trace_function(hDTI->handle,
364 "dti_dti_data_ind()",
365 hDTI->entity_options);
366
367 if( !(hDTI->entity_options & DTI_NO_TRACE) )
368 {
369 PACCESS (dti_data_ind);
370 }
371
372 trace_message_l_dl(hDTI->handle,
373 " IN: DTI2_DATA_IND",
374 dti_data_ind->link_id,
375 dti_data_ind->desc_list2.list_len,
376 hDTI->entity_options);
377
378 data_prim_received (hDTI, dti_data_ind, DTI_CHANNEL_TO_LOWER_LAYER);
379
380 #undef VSI_CALLER
381 } /* dti_dti_data_ind() */
382
383
384
385 /*
386 +--------------------------------------------------------------------+
387 | PROJECT : DTILIB MODULE : DTI_KERP |
388 | STATE : code ROUTINE : dti_dti_getdata_req |
389 +--------------------------------------------------------------------+
390
391 PURPOSE : Process primitive DTI_GETDATA_REQ received from neighbour DTI
392 */
393
394 GLOBAL void dti_dti_getdata_req (DTI_HANDLE hDTI,
395 T_DTI2_GETDATA_REQ *dti_getdata_req)
396 {
397 #define VSI_CALLER hDTI->handle,
398
399 trace_function(hDTI->handle,
400 "dti_dti_getdata_req()",
401 hDTI->entity_options);
402
403 if( !(hDTI->entity_options & DTI_NO_TRACE) )
404 {
405 PACCESS (dti_getdata_req);
406 }
407
408 trace_message_link_id(hDTI->handle,
409 " IN: DTI2_GETDATA_REQ",
410 dti_getdata_req->link_id,
411 hDTI->entity_options);
412
413 flow_control_prim_received(hDTI,
414 dti_getdata_req->link_id,
415 DTI_CHANNEL_TO_HIGHER_LAYER);
416
417 PFREE (dti_getdata_req);
418
419 #undef VSI_CALLER
420 } /* dti_dti_getdata_req() */
421
422
423
424 /*
425 +--------------------------------------------------------------------+
426 | PROJECT : DTILIB MODULE : DTI_KERP |
427 | STATE : code ROUTINE : dti_dti_ready_ind |
428 +--------------------------------------------------------------------+
429
430 PURPOSE : Process primitive DTI_READY_IND received from neighbour DTI
431 */
432
433 GLOBAL void dti_dti_ready_ind (DTI_HANDLE hDTI,
434 T_DTI2_READY_IND *dti_ready_ind)
435 {
436 #define VSI_CALLER hDTI->handle,
437
438 trace_function(hDTI->handle,
439 "dti_dti_ready_ind()",
440 hDTI->entity_options);
441
442 if( !(hDTI->entity_options & DTI_NO_TRACE) )
443 {
444 PACCESS (dti_ready_ind);
445 }
446
447 trace_message_link_id(hDTI->handle,
448 " IN: DTI2_READY_IND",
449 dti_ready_ind->link_id,
450 hDTI->entity_options);
451
452 flow_control_prim_received(hDTI,
453 dti_ready_ind->link_id,
454 DTI_CHANNEL_TO_LOWER_LAYER);
455
456 PFREE (dti_ready_ind);
457
458 #undef VSI_CALLER
459 } /* dti_dti_ready_ind() */
460
461
462 #ifdef _SIMULATION_
463
464 /*
465 +--------------------------------------------------------------------+
466 | PROJECT : WAP MODULE : ip_kerp.c |
467 | STATE : code ROUTINE : ker_dti_data_test_ind|
468 +--------------------------------------------------------------------+
469
470 PURPOSE : Process primitive T_DTI2_DATA_TEST_IND
471 */
472
473 GLOBAL void dti_dti_data_test_ind (DTI_HANDLE hDTI,
474 T_DTI2_DATA_TEST_IND *dti_data_test_ind)
475 {
476 #define VSI_CALLER hDTI->handle,
477
478 trace_function(hDTI->handle,
479 "dti_dti_data_test_ind()",
480 hDTI->entity_options);
481
482 if( !(hDTI->entity_options & DTI_NO_TRACE) )
483 {
484 PACCESS (dti_data_test_ind);
485 }
486
487 trace_message_l_dl(hDTI->handle,
488 " IN: DTI2_DATA_TEST_IND",
489 dti_data_test_ind->link_id,
490 (U16)(dti_data_test_ind->sdu.l_buf>>3),
491 hDTI->entity_options);
492
493 data_test_prim_received(hDTI,
494 dti_data_test_ind,
495 DTI_CHANNEL_TO_LOWER_LAYER);
496
497 #undef VSI_CALLER
498 } /* dti_dti_data_test_ind() */
499
500
501
502 /*
503 +--------------------------------------------------------------------+
504 | PROJECT : WAP MODULE : ip_kerp.c |
505 | STATE : code ROUTINE : ker_dti_data_test_req|
506 +--------------------------------------------------------------------+
507
508 PURPOSE : Process primitive T_DTI2_DATA_TEST_REQ
509 */
510
511 GLOBAL void dti_dti_data_test_req (DTI_HANDLE hDTI,
512 T_DTI2_DATA_TEST_REQ *dti_data_test_req)
513 {
514 #define VSI_CALLER hDTI->handle,
515
516 trace_function(hDTI->handle,
517 "dti_dti_data_test_req()",
518 hDTI->entity_options);
519
520 trace_message_l_dl(hDTI->handle,
521 " IN: DTI2_DATA_TEST_IND",
522 dti_data_test_req->link_id,
523 (U16)(dti_data_test_req->sdu.l_buf>>3),
524 hDTI->entity_options);
525
526 if(hDTI->entity_options & DTI_NO_TRACE)
527 {
528 PPASS_NTRACE(dti_data_test_req, dti_data_test_ind, DTI2_DATA_TEST_IND);
529 data_test_prim_received(hDTI,
530 dti_data_test_ind,
531 DTI_CHANNEL_TO_HIGHER_LAYER);
532 }
533 else
534 {
535 PACCESS (dti_data_test_req);
536 {
537 PPASS(dti_data_test_req, dti_data_test_ind, DTI2_DATA_TEST_IND);
538 data_test_prim_received(hDTI,
539 dti_data_test_ind,
540 DTI_CHANNEL_TO_HIGHER_LAYER);
541 }
542 }
543
544 #undef VSI_CALLER
545 } /* dti_dti_data_test_req() */
546
547 #endif /*_SIMULATION_ */