FreeCalypso > hg > fc-tourmaline
annotate src/g23m-gprs/sndcp/sndcp_sus.c @ 54:a1799f6d6aa7
doc/Nucleus-change article written
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Tue, 20 Oct 2020 04:11:55 +0000 | 
| parents | fa8dc04885d8 | 
| children | 
| rev | line source | 
|---|---|
| 1 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 +----------------------------------------------------------------------------- | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | Project : GPRS (8441) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | Modul : sndcp_sus.c | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 +----------------------------------------------------------------------------- | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | All rights reserved. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | This file is confidential and a trade secret of Texas | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | Instruments Berlin, AG | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | The receipt of or possession of this file does not convey | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | any rights to reproduce or disclose its contents or to | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | manufacture, use, or sell anything it may describe, in | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | whole, or in part, without the specific written consent of | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | Texas Instruments Berlin, AG. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 +----------------------------------------------------------------------------- | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | Purpose : This modul is part of the entity SNDCP and implements all | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | functions to handles the incoming process internal signals as | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 | described in the SDL-documentation (SU-statemachine) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 +----------------------------------------------------------------------------- | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 /*---- HISTORY --------------------------------------------------------------*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 #define ENTITY_SNDCP | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 /*==== INCLUDES =============================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 #include "typedefs.h" /* to get Condat data types */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 #include "vsi.h" /* to get a lot of macros */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 #include "macdef.h" | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 #include "gsm.h" /* to get a lot of macros */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #include "prim.h" /* to get the definitions of used SAP and directions */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include <string.h> /* to get memcpy() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 #include "dti.h" | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 #include "sndcp.h" /* to get the global entity definitions */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 #include "sndcp_f.h" /* to get the functions to access the global arrays*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 #include "sndcp_suf.h" /* to get internal functions of service su */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "sndcp_cias.h" /* to get signal functions to service cia */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "sndcp_nus.h" /* to get signal functions to service nu */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 #include "sndcp_sus.h" | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 /*==== CONST ================================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 /*==== LOCAL VARS ===========================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 /*==== PRIVATE FUNCTIONS ====================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 #ifdef _SNDCP_DTI_2_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 | Function : su_add_ll_unitdesc_req_params | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 | Description : sets the parameters of the given ll_unitdata_req | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 | Parameters : nsapi, ll_unitdata_req* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 LOCAL void su_add_ll_unitdesc_req_params (UBYTE nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 T_LL_UNITDESC_REQ* ll_unitdesc_req) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 T_snsm_qos snsm_qos; /* Initialized with getter later */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 TRACE_FUNCTION( "su_add_ll_unitdesc_req_params" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 * Set quality of service. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 sndcp_get_nsapi_qos(nsapi, &snsm_qos); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 sndcp_snsm_qos_to_ll_qos(snsm_qos, &ll_unitdesc_req->ll_qos); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 * Set radio prio. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 sndcp_get_nsapi_prio(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 &ll_unitdesc_req->radio_prio); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 #ifdef REL99 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 sndcp_get_nsapi_pktflowid(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 (U16*)&ll_unitdesc_req->pkt_flow_id); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 #endif /*REL99*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 } /* su_add_ll_unitdesc_req_params() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 #else /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 | Function : su_add_ll_unitdata_req_params | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 | Description : sets the parameters of the given ll_unitdata_req | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 | Parameters : nsapi, ll_unitdata_req* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 LOCAL void su_add_ll_unitdata_req_params (UBYTE nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 T_LL_UNITDATA_REQ* ll_unitdata_req) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 T_snsm_qos snsm_qos; /* Initialized with getter later */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 TRACE_FUNCTION( "su_add_ll_unitdata_req_params" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 * Set quality of service. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 sndcp_get_nsapi_qos(nsapi, &snsm_qos); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 sndcp_snsm_qos_to_ll_qos(snsm_qos, &ll_unitdata_req->ll_qos); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 * Set radio prio. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 sndcp_get_nsapi_prio(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 &ll_unitdata_req->radio_prio); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 #ifdef REL99 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 sndcp_get_nsapi_pktflowid(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 &ll_unitdata_req->pkt_flow_id); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 #endif /*REL99*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 } /* su_add_ll_unitdata_req_params() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 #endif /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 #ifdef _SNDCP_DTI_2_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 | Function : su_add_sn_header | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 | Description : sets the segment header in the given ll_unitdesc_req | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 | Parameters : first and/or last segment , ll_unitdesc_req*, packet type | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 LOCAL void su_add_sn_header (UBYTE seg_pos, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 T_pdu_ref pdu_ref, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 T_LL_UNITDESC_REQ* ll_unitdesc_req, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 UBYTE packet_type) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 USHORT offset = ENCODE_OFFSET_BYTE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 BOOL compressed = FALSE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 T_desc3* desc3 = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 U8* sndcp_header = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 TRACE_FUNCTION( "su_add_sn_header" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 sndcp_get_sapi_index(ll_unitdesc_req->sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 /* Get the descriptor describing the memory area with the sndcp header */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 desc3 = (T_desc3*)ll_unitdesc_req->desc_list3.first; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 sndcp_header = (U8*)desc3->buffer; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 sndcp_header[offset] = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 * Octet 1, F bit. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 if ((seg_pos & SEG_POS_FIRST) > 0) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 sndcp_header[offset] += (1 << 6); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 * Octet 1, 1 for SN_UNITDATA. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 sndcp_header[offset] += (1 << 5); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 * Octet 1, M bit. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 if ((seg_pos & SEG_POS_LAST) == 0) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 sndcp_header[offset] += (1 << 4); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 * Octet 1, NSAPI number. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 sndcp_header[offset] += pdu_ref.ref_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 offset ++; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 sndcp_header[offset] = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 if ((seg_pos & SEG_POS_FIRST) > 0) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 * This is the first bit. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 * Find d/pcomp values and set them. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 * Octet 2, dcomp | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 sndcp_header[offset] += | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 (UBYTE)(sndcp_data->mg.cur_xid_block[sapi_index].v42.dcomp << 4); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 * Octet 2, pcomp | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 sndcp_is_nsapi_header_compressed(pdu_ref.ref_nsapi, &compressed); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 if (compressed) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 if (packet_type == TYPE_UNCOMPRESSED_TCP) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 * Uncompressed TCP. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 sndcp_header[offset] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 sndcp_data->mg.cur_xid_block[sapi_index].vj.pcomp1; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 } else if (packet_type == TYPE_IP) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 * IP. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 sndcp_header[offset] = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 } else | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 * Compressed TCP. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 sndcp_header[offset] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 sndcp_data->mg.cur_xid_block[sapi_index].vj.pcomp2; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 offset ++; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 * Octet 2 or 3, segment number | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 sndcp_header[offset] = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 sndcp_header[offset] += (UBYTE)(pdu_ref.ref_seg_num << 4); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 * Octet 2 or 3, N-PDU number, MSB. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 sndcp_header[offset] += ((pdu_ref.ref_npdu_num >> 8) & 0xf); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 offset ++; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 * Octet 3 or 4, N-PDU number, LSB. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 sndcp_header[offset] = (pdu_ref.ref_npdu_num & 0xff); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 } /* su_add_sn_header() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 #else /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 | Function : su_add_sn_header | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 | Description : sets the segment header in the given ll_unitdata_req | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 | Parameters : first and/or last segment , ll_unitdata_req*, packet type | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 LOCAL void su_add_sn_header (UBYTE seg_pos, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 T_pdu_ref pdu_ref, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 T_LL_UNITDATA_REQ* ll_unitdata_req, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 UBYTE packet_type) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 USHORT offset = ll_unitdata_req->sdu.o_buf / 8; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 BOOL compressed = FALSE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 TRACE_FUNCTION( "su_add_sn_header" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 sndcp_get_sapi_index(ll_unitdata_req->sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 ll_unitdata_req->sdu.buf[offset] = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 * Octet 1, F bit. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 if ((seg_pos & SEG_POS_FIRST) > 0) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 ll_unitdata_req->sdu.buf[offset] += (1 << 6); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 * Octet 1, 1 for SN_UNITDATA. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 ll_unitdata_req->sdu.buf[offset] += (1 << 5); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 * Octet 1, M bit. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 if ((seg_pos & SEG_POS_LAST) == 0) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 ll_unitdata_req->sdu.buf[offset] += (1 << 4); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 * Octet 1, NSAPI number. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 ll_unitdata_req->sdu.buf[offset] += pdu_ref.ref_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 offset ++; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 ll_unitdata_req->sdu.buf[offset] = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 if ((seg_pos & SEG_POS_FIRST) > 0) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 * This is the first bit. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 * Find d/pcomp values and set them. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 * Octet 2, dcomp | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 ll_unitdata_req->sdu.buf[offset] += | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 (UBYTE)(sndcp_data->su->cur_xid_block.v42.dcomp << 4); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 * Octet 2, pcomp | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 sndcp_is_nsapi_header_compressed(pdu_ref.ref_nsapi, &compressed); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 if (compressed) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 if (packet_type == TYPE_UNCOMPRESSED_TCP) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 301 * Uncompressed TCP. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 302 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 ll_unitdata_req->sdu.buf[offset] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 sndcp_data->su->cur_xid_block.vj.pcomp1; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 } else if (packet_type == TYPE_IP) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 * IP. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 ll_unitdata_req->sdu.buf[offset] = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 } else { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 311 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 312 * Compressed TCP. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 314 ll_unitdata_req->sdu.buf[offset] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 315 sndcp_data->su->cur_xid_block.vj.pcomp2; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 offset ++; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 * Octet 2 or 3, segment number | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 ll_unitdata_req->sdu.buf[offset] = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 ll_unitdata_req->sdu.buf[offset] += (UBYTE)(pdu_ref.ref_seg_num << 4); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 * Octet 2 or 3, N-PDU number, MSB. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 ll_unitdata_req->sdu.buf[offset] += ((pdu_ref.ref_npdu_num >> 8) & 0xf); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 offset ++; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 * Octet 3 or 4, N-PDU number, LSB. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 ll_unitdata_req->sdu.buf[offset] = (pdu_ref.ref_npdu_num & 0xff); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 } /* su_add_sn_header() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 #endif /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 /*==== PUBLIC FUNCTIONS =====================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 #ifdef _SNDCP_DTI_2_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 | Function : sig_cia_su_cia_comp_ind | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 | Description : Handles the internal signal SIG_CIA_su_CIA_COMP_IND | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 | Parameters : cia_comp_ind* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 353 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 GLOBAL void sig_cia_su_cia_comp_ind (T_CIA_COMP_IND* cia_comp_ind) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 358 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 TRACE_ISIG( "sig_cia_su_cia_comp_ind" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 * Set service instance according to sapi in signal. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 sndcp_get_sapi_index(cia_comp_ind->sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 switch( GET_STATE( SU ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 case SU_LLC_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 case SU_LLC_NOT_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 case SU_LLC_NOT_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 * Save seg_pos and pdu_ref from cia_comp_ind. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 UBYTE seg_pos = cia_comp_ind->seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 T_pdu_ref pdu_ref = cia_comp_ind->pdu_ref; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 UBYTE nsapi = cia_comp_ind->pdu_ref.ref_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 UBYTE packet_type = cia_comp_ind->packet_type; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 PALLOC(ll_unitdesc_req, LL_UNITDESC_REQ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 ll_unitdesc_req->sapi = cia_comp_ind->sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 ll_unitdesc_req->tlli = cia_comp_ind->tlli; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 ll_unitdesc_req->ll_qos.delay = cia_comp_ind->cia_qos.delay; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 ll_unitdesc_req->ll_qos.relclass = cia_comp_ind->cia_qos.relclass; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 ll_unitdesc_req->ll_qos.peak = cia_comp_ind->cia_qos.peak; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 ll_unitdesc_req->ll_qos.preced = cia_comp_ind->cia_qos.preced; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 ll_unitdesc_req->ll_qos.mean = cia_comp_ind->cia_qos.mean; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 /* attached_counter not copied */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 391 /* cipher not copied */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 392 ll_unitdesc_req->reserved_unitdata_req1.ref_nsapi = cia_comp_ind->pdu_ref.ref_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 393 ll_unitdesc_req->reserved_unitdata_req1.ref_npdu_num = cia_comp_ind->pdu_ref.ref_npdu_num; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 394 ll_unitdesc_req->reserved_unitdata_req1.ref_seg_num = cia_comp_ind->pdu_ref.ref_seg_num; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 395 ll_unitdesc_req->seg_pos = cia_comp_ind->seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 396 ll_unitdesc_req->desc_list3.list_len = cia_comp_ind->desc_list3.list_len; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 397 ll_unitdesc_req->desc_list3.first = cia_comp_ind->desc_list3.first; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 398 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 399 su_add_ll_unitdesc_req_params(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 400 ll_unitdesc_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 401 su_add_sn_header(seg_pos, pdu_ref, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 402 ll_unitdesc_req, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 403 packet_type); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 404 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 405 /* All information has been transferred remove the compression primitive */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 406 MFREE(cia_comp_ind); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 407 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 408 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 409 * Write the ll_unitdesc_req prim to ll_unitdesc_q, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 410 * increment write pointer. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 411 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 412 sndcp_data->su->ll_unitdesc_q[sndcp_data->su->ll_unitdesc_q_write] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 413 ll_unitdesc_req; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 414 sndcp_data->su->ll_unitdesc_q_write = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 415 (sndcp_data->su->ll_unitdesc_q_write + 1) % SNDCP_SEGMENT_NUMBERS_UNACK; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 416 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 417 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 418 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 419 case SU_LLC_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 420 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 421 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 422 * Save seg_pos and pdu_ref from cia_comp_ind. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 423 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 424 UBYTE ll_unitdesc_sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 425 UBYTE seg_pos = cia_comp_ind->seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 426 T_pdu_ref pdu_ref = cia_comp_ind->pdu_ref; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 427 UBYTE nsapi = cia_comp_ind->pdu_ref.ref_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 428 UBYTE packet_type = cia_comp_ind->packet_type; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 429 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 430 PALLOC(ll_unitdesc_req, LL_UNITDESC_REQ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 431 ll_unitdesc_req->sapi = cia_comp_ind->sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 432 ll_unitdesc_req->tlli = cia_comp_ind->tlli; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 433 ll_unitdesc_req->ll_qos.delay = cia_comp_ind->cia_qos.delay; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 434 ll_unitdesc_req->ll_qos.relclass = cia_comp_ind->cia_qos.relclass; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 435 ll_unitdesc_req->ll_qos.peak = cia_comp_ind->cia_qos.peak; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 436 ll_unitdesc_req->ll_qos.preced = cia_comp_ind->cia_qos.preced; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 437 ll_unitdesc_req->ll_qos.mean = cia_comp_ind->cia_qos.mean; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 438 /* attached_counter not copied */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 439 /* cipher not copied */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 440 ll_unitdesc_req->reserved_unitdata_req1.ref_nsapi = cia_comp_ind->pdu_ref.ref_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 441 ll_unitdesc_req->reserved_unitdata_req1.ref_npdu_num = cia_comp_ind->pdu_ref.ref_npdu_num; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 442 ll_unitdesc_req->reserved_unitdata_req1.ref_seg_num = cia_comp_ind->pdu_ref.ref_seg_num; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 443 ll_unitdesc_req->seg_pos = cia_comp_ind->seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 444 ll_unitdesc_req->desc_list3.list_len = cia_comp_ind->desc_list3.list_len; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 445 ll_unitdesc_req->desc_list3.first = cia_comp_ind->desc_list3.first; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 446 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 447 /* All information has been transferred remove the compression primitive */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 448 MFREE(cia_comp_ind); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 449 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 450 su_add_ll_unitdesc_req_params(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 451 ll_unitdesc_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 452 su_add_sn_header(seg_pos, pdu_ref, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 453 ll_unitdesc_req, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 454 packet_type); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 455 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 456 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 457 #ifdef SNDCP_TRACE_ALL | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 458 TRACE_EVENT("uplink with sn header at LL SAP: "); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 459 TRACE_EVENT_P1("%d octets", | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 460 ll_unitdesc_req->desc_list3.list_len); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 461 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 462 sndcp_trace_desc_list3_content(ll_unitdesc_req->desc_list3); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 463 #endif | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 464 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 465 #ifdef FLOW_TRACE | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 466 sndcp_trace_flow_control(FLOW_TRACE_SNDCP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 467 FLOW_TRACE_UP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 468 FLOW_TRACE_BOTTOM, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 469 FALSE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 470 #endif | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 471 ll_unitdesc_sapi = ll_unitdesc_req->sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 472 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 473 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 474 #ifdef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 475 #ifndef MULTI_LAYER | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 476 su_send_ll_unitdata_req_test(ll_unitdesc_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 477 #else | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 478 PSEND(hCommLLC, ll_unitdesc_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 479 #endif /* MULTI_LAYER */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 480 #else /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 481 PSEND(hCommLLC, ll_unitdesc_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 482 #endif /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 483 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 484 SET_STATE(SU, SU_LLC_NOT_RECEPTIVE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 485 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 486 * If segment is the last of the N-PDU then send ready_ind to nsapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 487 * and get next entry from sn q.. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 488 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 489 if ((seg_pos & SEG_POS_LAST) > 0) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 490 sndcp_data->su->cia_state = CIA_IDLE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 491 su_next_sn_unitdata_req( ll_unitdesc_sapi ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 492 sig_su_nu_ready_ind(nsapi); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 493 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 494 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 495 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 496 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 497 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 498 TRACE_ERROR( "SIG_CIA_SU_CIA_COMP_IND unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 499 sndcp_cl_desc3_free((T_desc3*)cia_comp_ind->desc_list3.first); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 500 MFREE(cia_comp_ind); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 501 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 502 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 503 } /* sig_cia_su_cia_comp_ind() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 504 #else /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 505 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 506 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 507 | Function : sig_cia_su_cia_comp_ind | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 508 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 509 | Description : Handles the internal signal SIG_CIA_su_CIA_COMP_IND | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 510 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 511 | Parameters : cia_comp_ind* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 512 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 513 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 514 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 515 GLOBAL void sig_cia_su_cia_comp_ind (T_CIA_COMP_IND* cia_comp_ind) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 516 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 517 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 518 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 519 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 520 TRACE_ISIG( "sig_cia_su_cia_comp_ind" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 521 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 522 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 523 * Set service instance according to sapi in signal. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 524 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 525 sndcp_get_sapi_index(cia_comp_ind->sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 526 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 527 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 528 switch( GET_STATE( SU ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 529 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 530 case SU_LLC_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 531 case SU_LLC_NOT_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 532 case SU_LLC_NOT_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 533 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 534 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 535 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 536 * Save seg_pos and pdu_ref from cia_comp_ind. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 537 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 538 UBYTE seg_pos = cia_comp_ind->seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 539 T_pdu_ref pdu_ref = cia_comp_ind->pdu_ref; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 540 UBYTE nsapi = cia_comp_ind->pdu_ref.ref_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 541 UBYTE packet_type = cia_comp_ind->packet_type; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 542 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 543 PPASS(cia_comp_ind, ll_unitdata_req, LL_UNITDATA_REQ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 544 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 545 su_add_ll_unitdata_req_params(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 546 ll_unitdata_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 547 su_add_sn_header(seg_pos, pdu_ref, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 548 ll_unitdata_req, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 549 packet_type); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 550 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 551 * Write the ll_unitdata_req prim to ll_unitdata_q, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 552 * increment write pointer. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 553 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 554 sndcp_data->su->ll_unitdata_q[sndcp_data->su->ll_unitdata_q_write] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 555 ll_unitdata_req; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 556 sndcp_data->su->ll_unitdata_q_write = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 557 (sndcp_data->su->ll_unitdata_q_write + 1) % SNDCP_SEGMENT_NUMBERS_UNACK; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 558 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 559 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 560 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 561 case SU_LLC_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 562 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 563 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 564 * Save seg_pos and pdu_ref from cia_comp_ind. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 565 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 566 UBYTE ll_unitdata_sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 567 UBYTE seg_pos = cia_comp_ind->seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 568 T_pdu_ref pdu_ref = cia_comp_ind->pdu_ref; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 569 UBYTE nsapi = cia_comp_ind->pdu_ref.ref_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 570 UBYTE packet_type = cia_comp_ind->packet_type; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 571 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 572 PPASS(cia_comp_ind, ll_unitdata_req, LL_UNITDATA_REQ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 573 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 574 su_add_ll_unitdata_req_params(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 575 ll_unitdata_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 576 su_add_sn_header(seg_pos, pdu_ref, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 577 ll_unitdata_req, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 578 packet_type); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 579 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 580 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 581 #ifdef SNDCP_TRACE_ALL | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 582 TRACE_EVENT("uplink with sn header at LL SAP: "); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 583 TRACE_EVENT_P1("%d octets", | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 584 (ll_unitdata_req->sdu.l_buf + 7) / 8); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 585 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 586 sndcp_trace_sdu(& ll_unitdata_req->sdu); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 587 #endif | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 588 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 589 #ifdef FLOW_TRACE | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 590 sndcp_trace_flow_control(FLOW_TRACE_SNDCP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 591 FLOW_TRACE_UP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 592 FLOW_TRACE_BOTTOM, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 593 FALSE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 594 #endif | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 595 ll_unitdata_sapi = ll_unitdata_req->sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 596 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 597 PSEND(hCommLLC, ll_unitdata_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 598 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 599 SET_STATE(SU, SU_LLC_NOT_RECEPTIVE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 600 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 601 * If segment is the last of the N-PDU then send ready_ind to nsapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 602 * and get next entry from sn q.. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 603 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 604 if ((seg_pos & SEG_POS_LAST) > 0) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 605 sndcp_data->su->cia_state = CIA_IDLE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 606 su_next_sn_unitdata_req( ll_unitdata_sapi ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 607 sig_su_nu_ready_ind(nsapi); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 608 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 609 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 610 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 611 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 612 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 613 TRACE_ERROR( "SIG_CIA_SU_CIA_COMP_IND unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 614 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 615 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 616 } /* sig_cia_su_cia_comp_ind() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 617 #endif /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 618 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 619 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 620 | Function : sig_mg_su_delete_pdus | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 621 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 622 | Description : Handles the internal signal SIG_MG_SU_DELETE_PDUS | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 623 | The same as the one in service sua, but everything is in the | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 624 | unacknowledged version here. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 625 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 626 | Parameters : UBYTE nsapi the affected nsapi, UBYTE sapi the affected sapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 627 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 628 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 629 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 630 GLOBAL void sig_mg_su_delete_pdus (UBYTE nsapi, UBYTE sapi) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 631 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 632 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 633 BOOL ll_q_affected = FALSE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 634 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 635 TRACE_ISIG( "sig_mg_su_delete_pdus" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 636 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 637 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 638 * Set service instance according to sapi in signal. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 639 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 640 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 641 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 642 sndcp_data->su->cia_state = CIA_IDLE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 643 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 644 switch( GET_STATE( SU ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 645 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 646 case SU_LLC_NOT_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 647 case SU_LLC_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 648 case SU_LLC_NOT_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 649 case SU_LLC_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 650 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 651 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 652 * Delete affected N-PDUS from sn_unitdata_q. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 653 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 654 BOOL still = TRUE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 655 UBYTE index = sndcp_data->su->sn_unitdata_q_read; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 656 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 657 while (still) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 658 if (index == sndcp_data->su->sn_unitdata_q_write) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 659 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 660 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 661 if (sndcp_data->su->sn_unitdata_q[index]->nsapi == nsapi) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 662 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 663 * The index for the prims to be shifted when 1 entry is deleted. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 664 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 665 UBYTE i = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 666 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 667 if (sndcp_data->su->sn_unitdata_q[index] != NULL) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 668 #ifdef _SNDCP_DTI_2_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 669 MFREE_PRIM(sndcp_data->su->sn_unitdata_q[index]); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 670 #else /*_SNDCP_DTI_2_*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 671 PFREE_DESC(sndcp_data->su->sn_unitdata_q[index]); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 672 #endif /*_SNDCP_DTI_2_*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 673 sndcp_data->su->sn_unitdata_q[index] = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 674 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 675 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 676 for (i = index; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 677 i != sndcp_data->su->sn_unitdata_q_write; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 678 i = (i + 1) % SN_UNITDATA_Q_LEN) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 679 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 680 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 681 sndcp_data->su->sn_unitdata_q[i] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 682 sndcp_data->su->sn_unitdata_q[(i + 1) % SN_UNITDATA_Q_LEN]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 683 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 684 sndcp_data->su->sn_unitdata_q[(i + 1) % SN_UNITDATA_Q_LEN] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 685 NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 686 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 687 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 688 sndcp_data->su->sn_unitdata_q_write = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 689 (sndcp_data->su->sn_unitdata_q_write - 1 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 690 + SN_UNITDATA_Q_LEN) % SN_UNITDATA_Q_LEN; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 691 } else { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 692 index = (index + 1) % SN_UNITDATA_Q_LEN; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 693 } /* else (sndcp_data->su->sn_unitdata_q[index]->nsapi == nsapi) */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 694 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 695 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 696 #ifdef _SNDCP_DTI_2_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 697 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 698 * Delete affected SN-PDUS from ll_unitdata_q. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 699 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 700 still = TRUE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 701 index = sndcp_data->su->ll_unitdesc_q_read; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 702 while (still) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 703 if (index == sndcp_data->su->ll_unitdesc_q_write) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 704 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 705 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 706 if (su_get_nsapi(sndcp_data->su->ll_unitdesc_q[index]) == nsapi) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 707 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 708 * The index for the prims to be shifted when 1 entry is deleted. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 709 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 710 UBYTE i = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 711 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 712 ll_q_affected = TRUE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 713 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 714 * Free the deleted primitive. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 715 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 716 if (sndcp_data->su->ll_unitdesc_q[index] != NULL) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 717 T_desc3 *free_help, *help = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 718 (T_desc3 *)sndcp_data->su->ll_unitdesc_q[index]->desc_list3.first; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 719 while(help != NULL) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 720 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 721 sndcp_cl_desc3_free(help); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 722 free_help = help; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 723 help = (T_desc3 *)free_help->next; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 724 MFREE(free_help); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 725 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 726 sndcp_data->su->ll_unitdesc_q[index]->desc_list3.first = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 727 PFREE(sndcp_data->su->ll_unitdesc_q[index]); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 728 sndcp_data->su->ll_unitdesc_q[index] = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 729 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 730 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 731 for (i = index; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 732 i != sndcp_data->su->ll_unitdesc_q_write; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 733 i = (i + 1) % SNDCP_SEGMENT_NUMBERS_UNACK) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 734 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 735 sndcp_data->su->ll_unitdesc_q[i] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 736 sndcp_data->su->ll_unitdesc_q | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 737 [(i + 1) % SNDCP_SEGMENT_NUMBERS_UNACK]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 738 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 739 sndcp_data->su->ll_unitdesc_q_write = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 740 (sndcp_data->su->ll_unitdesc_q_write - 1 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 741 + SNDCP_SEGMENT_NUMBERS_UNACK) % SNDCP_SEGMENT_NUMBERS_UNACK; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 742 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 743 } else { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 744 index = (index + 1) % SNDCP_SEGMENT_NUMBERS_UNACK; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 745 } /* else (sndcp_data->su->sn_unitdata_q[index]->nsapi == nsapi) { */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 746 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 747 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 748 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 749 #else /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 750 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 751 * Delete affected SN-PDUS from ll_unitdata_q. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 752 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 753 still = TRUE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 754 index = sndcp_data->su->ll_unitdata_q_read; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 755 while (still) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 756 if (index == sndcp_data->su->ll_unitdata_q_write) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 757 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 758 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 759 if (su_get_nsapi(sndcp_data->su->ll_unitdata_q[index]) == nsapi) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 760 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 761 * The index for the prims to be shifted when 1 entry is deleted. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 762 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 763 UBYTE i = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 764 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 765 ll_q_affected = TRUE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 766 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 767 * Free the deleted primitive. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 768 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 769 if (sndcp_data->su->ll_unitdata_q[index] != NULL) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 770 PFREE(sndcp_data->su->ll_unitdata_q[index]); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 771 sndcp_data->su->ll_unitdata_q[index] = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 772 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 773 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 774 for (i = index; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 775 i != sndcp_data->su->ll_unitdata_q_write; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 776 i = (i + 1) % SNDCP_SEGMENT_NUMBERS_UNACK) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 777 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 778 sndcp_data->su->ll_unitdata_q[i] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 779 sndcp_data->su->ll_unitdata_q | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 780 [(i + 1) % SNDCP_SEGMENT_NUMBERS_UNACK]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 781 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 782 sndcp_data->su->ll_unitdata_q_write = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 783 (sndcp_data->su->ll_unitdata_q_write - 1 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 784 + SNDCP_SEGMENT_NUMBERS_UNACK) % SNDCP_SEGMENT_NUMBERS_UNACK; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 785 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 786 } else { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 787 index = (index + 1) % SNDCP_SEGMENT_NUMBERS_UNACK; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 788 } /* else (sndcp_data->su->sn_unitdata_q[index]->nsapi == nsapi) { */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 789 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 790 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 791 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 792 #endif /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 793 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 794 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 795 * if the segments in LL queue were from the affected nsapi then the | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 796 * next N-PDU is directed to cia. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 797 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 798 if (ll_q_affected) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 799 su_next_sn_unitdata_req (sapi); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 800 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 801 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 802 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 803 TRACE_ERROR( "SIG_MG_SU_DELETE_PDUS unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 804 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 805 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 806 } /* sig_mg_su_delete_pdus() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 807 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 808 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 809 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 810 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 811 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 812 | Function : sig_mg_su_n201 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 813 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 814 | Description : Handles the internal signal SIG_MG_SU_N201 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 815 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 816 | Parameters : UBYTE sapi the affected sapi, USHORT n201 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 817 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 818 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 819 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 820 GLOBAL void sig_mg_su_n201 (UBYTE sapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 821 USHORT n201) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 822 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 823 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 824 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 825 TRACE_ISIG( "sig_mg_su_n201" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 826 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 827 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 828 * Set service instance according to sapi in signal. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 829 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 830 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 831 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 832 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 833 switch( GET_STATE( SU ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 834 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 835 case SU_LLC_NOT_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 836 case SU_LLC_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 837 case SU_LLC_NOT_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 838 case SU_LLC_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 839 sndcp_data->su->n201_u = n201; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 840 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 841 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 842 TRACE_ERROR( "SIG_MG_SU_N201 unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 843 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 844 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 845 } /* sig_mg_su_n201() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 846 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 847 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 848 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 849 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 850 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 851 | Function : sig_mg_su_suspend | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 852 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 853 | Description : Handles the internal signal SIG_MG_SU_SUSPEND | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 854 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 855 | Parameters : UBYTE sapi the affected sapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 856 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 857 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 858 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 859 GLOBAL void sig_mg_su_suspend (UBYTE sapi) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 860 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 861 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 862 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 863 TRACE_ISIG( "sig_mg_su_suspend" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 864 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 865 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 866 * Set service instance according to sapi in signal. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 867 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 868 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 869 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 870 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 871 switch( GET_STATE( SU ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 872 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 873 case SU_LLC_NOT_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 874 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 875 case SU_LLC_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 876 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 877 case SU_LLC_NOT_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 878 SET_STATE (SU, SU_LLC_NOT_RECEPTIVE_SUSPEND); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 879 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 880 case SU_LLC_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 881 SET_STATE (SU, SU_LLC_RECEPTIVE_SUSPEND); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 882 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 883 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 884 TRACE_ERROR( "SIG_MG_SU_SUSPEND unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 885 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 886 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 887 } /* sig_mg_su_suspend() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 888 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 889 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 890 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 891 | Function : sig_mg_su_reset_ind | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 892 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 893 | Description : Handles the internal signal SIG_MG_SU_RESET_IND | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 894 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 895 | Parameters : UBYTE sapi the affected sapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 896 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 897 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 898 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 899 GLOBAL void sig_mg_su_reset_ind (UBYTE sapi) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 900 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 901 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 902 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 903 TRACE_ISIG( "sig_mg_su_reset_ind" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 904 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 905 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 906 * Set service instance according to sapi in signal. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 907 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 908 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 909 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 910 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 911 switch( GET_STATE( SU ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 912 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 913 case SU_LLC_NOT_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 914 case SU_LLC_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 915 case SU_LLC_NOT_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 916 case SU_LLC_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 917 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 918 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 919 TRACE_ERROR( "SIG_MG_SU_RESET_IND unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 920 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 921 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 922 } /* sig_mg_su_reset_ind() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 923 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 924 #ifdef _SNDCP_DTI_2_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 925 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 926 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 927 | Function : sig_mg_su_resume | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 928 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 929 | Description : Handles the internal signal SIG_MG_SU_RESUME | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 930 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 931 | Parameters : UBYTE sapi the affected sapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 932 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 933 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 934 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 935 GLOBAL void sig_mg_su_resume (UBYTE sapi) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 936 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 937 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 938 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 939 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 940 TRACE_ISIG( "sig_mg_su_resume" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 941 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 942 * Set service instance according to sapi in signal. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 943 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 944 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 945 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 946 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 947 switch( GET_STATE( SU ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 948 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 949 case SU_LLC_NOT_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 950 SET_STATE (SU, SU_LLC_NOT_RECEPTIVE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 951 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 952 case SU_LLC_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 953 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 954 * Is queue with LL_UNITDESC_REQ empty? | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 955 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 956 if (sndcp_data->su->ll_unitdesc_q_write == | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 957 sndcp_data->su->ll_unitdesc_q_read) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 958 SET_STATE(SU, SU_LLC_RECEPTIVE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 959 } else { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 960 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 961 * Get next segment from queue and send it. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 962 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 963 U8 ll_unitdesc_seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 964 U8 ll_unitdesc_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 965 U8 ll_unitdesc_sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 966 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 967 T_LL_UNITDESC_REQ* ll_unitdesc_req = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 968 sndcp_data->su->ll_unitdesc_q[sndcp_data->su->ll_unitdesc_q_read]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 969 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 970 sndcp_data->su->ll_unitdesc_q[sndcp_data->su->ll_unitdesc_q_read] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 971 NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 972 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 973 sndcp_data->su->ll_unitdesc_q_read = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 974 (sndcp_data->su->ll_unitdesc_q_read + 1) % | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 975 SNDCP_SEGMENT_NUMBERS_UNACK; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 976 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 977 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 978 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 979 * trace output | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 980 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 981 #ifdef SNDCP_TRACE_ALL | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 982 TRACE_EVENT("uplink with sn header at LL SAP: "); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 983 TRACE_EVENT_P1("%d octets", | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 984 ll_unitdesc_req->desc_list3.list_len); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 985 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 986 sndcp_trace_desc_list3_content(ll_unitdesc_req->desc_list3); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 987 #endif | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 988 #ifdef FLOW_TRACE | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 989 sndcp_trace_flow_control(FLOW_TRACE_SNDCP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 990 FLOW_TRACE_UP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 991 FLOW_TRACE_BOTTOM, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 992 FALSE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 993 #endif | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 994 ll_unitdesc_seg_pos = ll_unitdesc_req->seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 995 ll_unitdesc_nsapi = su_get_nsapi(ll_unitdesc_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 996 ll_unitdesc_sapi = ll_unitdesc_req->sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 997 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 998 #ifdef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 999 su_send_ll_unitdata_req_test(ll_unitdesc_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1000 #else /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1001 PSEND(hCommLLC, ll_unitdesc_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1002 #endif /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1003 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1004 SET_STATE(SU, SU_LLC_NOT_RECEPTIVE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1005 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1006 * If segment is the last of the N-PDU then send ready_ind to nsapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1007 * and get next entry from sn q.. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1008 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1009 if ((ll_unitdesc_seg_pos & SEG_POS_LAST) > 0) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1010 sndcp_data->su->cia_state = CIA_IDLE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1011 su_next_sn_unitdata_req( ll_unitdesc_sapi ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1012 sig_su_nu_ready_ind( ll_unitdesc_nsapi ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1013 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1014 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1015 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1016 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1017 case SU_LLC_NOT_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1018 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1019 case SU_LLC_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1020 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1021 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1022 TRACE_ERROR( "SIG_MG_SU_RESUME unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1023 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1024 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1025 } /* sig_mg_su_resume() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1026 #else /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1027 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1028 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1029 | Function : sig_mg_su_resume | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1030 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1031 | Description : Handles the internal signal SIG_MG_SU_RESUME | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1032 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1033 | Parameters : UBYTE sapi the affected sapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1034 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1035 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1036 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1037 GLOBAL void sig_mg_su_resume (UBYTE sapi) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1038 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1039 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1040 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1041 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1042 TRACE_ISIG( "sig_mg_su_resume" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1043 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1044 * Set service instance according to sapi in signal. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1045 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1046 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1047 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1048 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1049 switch( GET_STATE( SU ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1050 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1051 case SU_LLC_NOT_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1052 SET_STATE (SU, SU_LLC_NOT_RECEPTIVE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1053 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1054 case SU_LLC_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1055 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1056 * Is queue with LL_UNITDATA_REQ empty? | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1057 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1058 if (sndcp_data->su->ll_unitdata_q_write == | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1059 sndcp_data->su->ll_unitdata_q_read) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1060 SET_STATE(SU, SU_LLC_RECEPTIVE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1061 } else { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1062 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1063 * Get next segment from queue and send it. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1064 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1065 UBYTE ll_unitdata_seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1066 UBYTE ll_unitdata_nsapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1067 UBYTE ll_unitdata_sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1068 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1069 T_LL_UNITDATA_REQ* ll_unitdata_req = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1070 sndcp_data->su->ll_unitdata_q[sndcp_data->su->ll_unitdata_q_read]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1071 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1072 sndcp_data->su->ll_unitdata_q[sndcp_data->su->ll_unitdata_q_read] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1073 NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1074 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1075 sndcp_data->su->ll_unitdata_q_read = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1076 (sndcp_data->su->ll_unitdata_q_read + 1) % | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1077 SNDCP_SEGMENT_NUMBERS_UNACK; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1078 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1079 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1080 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1081 * trace output | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1082 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1083 #ifdef SNDCP_TRACE_ALL | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1084 TRACE_EVENT("uplink with sn header at LL SAP: "); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1085 TRACE_EVENT_P1("%d octets", | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1086 (ll_unitdata_req->sdu.l_buf + 7) / 8); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1087 sndcp_trace_sdu(& ll_unitdata_req->sdu); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1088 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1089 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1090 #endif | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1091 #ifdef FLOW_TRACE | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1092 sndcp_trace_flow_control(FLOW_TRACE_SNDCP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1093 FLOW_TRACE_UP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1094 FLOW_TRACE_BOTTOM, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1095 FALSE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1096 #endif | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1097 ll_unitdata_seg_pos = ll_unitdata_req->seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1098 ll_unitdata_nsapi = su_get_nsapi(ll_unitdata_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1099 ll_unitdata_sapi = ll_unitdata_req->sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1100 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1101 PSEND(hCommLLC, ll_unitdata_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1102 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1103 SET_STATE(SU, SU_LLC_NOT_RECEPTIVE); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1104 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1105 * If segment is the last of the N-PDU then send ready_ind to nsapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1106 * and get next entry from sn q.. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1107 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1108 if ((ll_unitdata_seg_pos & SEG_POS_LAST) > 0) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1109 sndcp_data->su->cia_state = CIA_IDLE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1110 su_next_sn_unitdata_req( ll_unitdata_sapi ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1111 sig_su_nu_ready_ind( ll_unitdata_nsapi ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1112 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1113 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1114 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1115 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1116 case SU_LLC_NOT_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1117 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1118 case SU_LLC_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1119 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1120 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1121 TRACE_ERROR( "SIG_MG_SU_RESUME unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1122 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1123 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1124 } /* sig_mg_su_resume() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1125 #endif /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1126 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1127 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1128 | Function : sig_nu_su_unitdata_req | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1129 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1130 | Description : Handles the internal signal SIG_NU_SU_UNITDATA_REQ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1131 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1132 | Parameters : T_SN_UNITDATA_REQ , N-PDU to be sent to sapiup in form of | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1133 | prim struct | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1134 | USHORT, the send N-PDU number of this N-PDU | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1135 | UBYTE, the number of the NSAPI who sent the N-PDU | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1136 | UBYTE), the SAPI that is supposed to compute the N-PDU | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1137 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1138 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1139 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1140 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1141 GLOBAL void sig_nu_su_unitdata_req (T_SN_UNITDATA_REQ* sn_unitdata_req, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1142 USHORT npdu_number, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1143 UBYTE nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1144 UBYTE sapi | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1145 ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1146 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1147 UBYTE sapi_index = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1148 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1149 #ifdef _SNDCP_MEAN_TRACE_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1150 #ifdef _SNDCP_DTI_2_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1151 sndcp_mean_trace(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1152 SNDCP_MEAN_UP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1153 SNDCP_MEAN_UNACK, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1154 sn_unitdata_req->desc_list2.list_len); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1155 #else /*_SNDCP_DTI_2_*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1156 sndcp_mean_trace(nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1157 SNDCP_MEAN_UP, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1158 SNDCP_MEAN_UNACK, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1159 sn_unitdata_req->desc_list.list_len); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1160 #endif /*_SNDCP_DTI_2_*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1161 #endif /* _SNDCP_MEAN_TRACE_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1162 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1163 TRACE_ISIG( "sig_nu_su_unitdata_req" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1164 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1165 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1166 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1167 * set service instance according to sapi in signal | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1168 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1169 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1170 sndcp_data->su = & sndcp_data->su_base[sapi_index]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1171 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1172 switch( GET_STATE( SU ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1173 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1174 case SU_LLC_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1175 case SU_LLC_NOT_RECEPTIVE_SUSPEND: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1176 case SU_LLC_NOT_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1177 case SU_LLC_RECEPTIVE: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1178 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1179 * If queue with NPDUs is empty, and cia is not busy, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1180 * send the NPDU to cia, else | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1181 * add it to the queue. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1182 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1183 if ((sndcp_data->su->sn_unitdata_q_read == | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1184 sndcp_data->su->sn_unitdata_q_write) && | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1185 (sndcp_data->su->ll_unitdesc_q_read == | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1186 sndcp_data->su->ll_unitdesc_q_write) && | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1187 sndcp_data->su->cia_state == CIA_IDLE) { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1188 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1189 * Send the NPDU to cia. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1190 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1191 sndcp_data->su->cia_state = CIA_BUSY; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1192 sig_su_cia_cia_comp_req(sn_unitdata_req, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1193 npdu_number, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1194 nsapi, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1195 sapi); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1196 } else { /* Queue with NPDUs is not empty or cia is busy. */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1197 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1198 * Write the sn_unitdata_req prim to sn_unitdata_q, | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1199 * increment write pointer. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1200 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1201 sndcp_data->su->sn_unitdata_q[sndcp_data->su->sn_unitdata_q_write] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1202 sn_unitdata_req; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1203 sndcp_data->su->npdu_number_q[sndcp_data->su->sn_unitdata_q_write] = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1204 npdu_number; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1205 sndcp_data->su->sn_unitdata_q_write = | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1206 (sndcp_data->su->sn_unitdata_q_write + 1) % SN_UNITDATA_Q_LEN; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1207 } /* Queue with NPDUs is not empty or cia is busy. */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1208 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1209 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1210 TRACE_ERROR( "SIG_NU_SU_UNITDATA_REQ unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1211 #ifdef _SNDCP_DTI_2_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1212 MFREE_PRIM(sn_unitdata_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1213 #else /*_SNDCP_DTI_2_*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1214 PFREE_DESC(sn_unitdata_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1215 #endif /*_SNDCP_DTI_2_*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1216 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1217 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1218 } /* sig_nu_su_unitdata_req() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1219 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1220 #ifdef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1221 #ifdef _SNDCP_DTI_2_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1222 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1223 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1224 | Function : su_send_ll_unitdata_req_test | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1225 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1226 | Description : Only for test purposes. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1227 | The given LL_UNITDESC_REQ is copied to an | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1228 | LL_UNITDATA_REQ and sent for the simulated test environment. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1229 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1230 | Parameters : | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1231 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1232 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1233 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1234 void su_send_ll_unitdata_req_test(T_LL_UNITDESC_REQ* ll_unitdesc_req) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1235 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1236 T_desc3* descriptor = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1237 U8* p_data = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1238 U16 offset = ENCODE_OFFSET_BYTE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1239 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1240 PALLOC_SDU(ll_unitdata_req, LL_UNITDATA_REQ, (U16)( ll_unitdesc_req->desc_list3.list_len* 8)); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1241 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1242 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1243 * Set parameters in ll_unitdata_req primitive | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1244 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1245 ll_unitdata_req->sapi = ll_unitdesc_req->sapi; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1246 ll_unitdata_req->tlli = ll_unitdesc_req->tlli; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1247 ll_unitdata_req->ll_qos = ll_unitdesc_req->ll_qos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1248 ll_unitdata_req->radio_prio = ll_unitdesc_req->radio_prio; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1249 ll_unitdata_req->cipher = ll_unitdesc_req->cipher; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1250 ll_unitdata_req->reserved_unitdata_req1 = ll_unitdesc_req->reserved_unitdata_req1; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1251 ll_unitdata_req->seg_pos = ll_unitdesc_req->seg_pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1252 ll_unitdata_req->attached_counter = ll_unitdesc_req->attached_counter; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1253 ll_unitdata_req->reserved_unitdata_req4 = ll_unitdesc_req->reserved_unitdata_req4; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1254 #ifdef REL99 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1255 ll_unitdata_req->pkt_flow_id = ll_unitdesc_req->pkt_flow_id; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1256 #endif /*REL99*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1257 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1258 * Set the ENCODE_OFFSET in the uplink sdu, set sdu.l_buf | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1259 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1260 ll_unitdata_req->sdu.o_buf = ENCODE_OFFSET; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1261 ll_unitdata_req->sdu.l_buf = ll_unitdesc_req->desc_list3.list_len* 8; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1262 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1263 * Copy the data. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1264 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1265 descriptor = (T_desc3*)ll_unitdesc_req->desc_list3.first; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1266 while (descriptor != NULL) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1267 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1268 T_desc3* help = descriptor; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1269 p_data = (U8*)descriptor->buffer; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1270 if (descriptor->len>0) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1271 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1272 memcpy(&ll_unitdata_req->sdu.buf[offset], | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1273 &p_data[descriptor->offset], | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1274 descriptor->len); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1275 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1276 offset += descriptor->len; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1277 descriptor = (T_desc3*)descriptor->next; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1278 sndcp_cl_desc3_free(help); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1279 MFREE(help); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1280 help = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1281 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1282 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1283 PSEND(hCommLLC, ll_unitdata_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1284 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1285 PFREE(ll_unitdesc_req); // MAYBE REMEMBER is this the correct free? | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1286 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1287 } /* su_send_ll_unitdata_req_test */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1288 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1289 #endif /* _SNDCP_DTI_2_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1290 #endif /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1291 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1292 | 
