1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 1 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 2 +-----------------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 3 | Project :
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 4 | Modul :
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 5 +-----------------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 6 | Copyright 2002 Texas Instruments Berlin, AG
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 7 | All rights reserved.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 8 |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 9 | This file is confidential and a trade secret of Texas
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 10 | Instruments Berlin, AG
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 11 | The receipt of or possession of this file does not convey
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 12 | any rights to reproduce or disclose its contents or to
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 13 | manufacture, use, or sell anything it may describe, in
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 14 | whole, or in part, without the specific written consent of
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 15 | Texas Instruments Berlin, AG.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 16 +-----------------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 17 | Purpose : This module defines the processing functions for the
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 18 | primitives send to the protocol stack adapter by the
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 19 | session management of GPRS ( SM ).
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 20 +-----------------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 21 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 22
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 23 #ifdef GPRS
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 24
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 25 #ifndef PSA_SMP_C
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 26 #define PSA_SMP_C
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 27 #endif
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 29 #include "aci_all.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 30 /*==== INCLUDES ===================================================*/
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 31 #include "dti.h" /* functionality of the dti library */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 32 #include "aci_cmh.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 33 #include "ati_cmd.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 34 #include "aci_cmd.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 35
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 36 #include "aci.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 37
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 38 #include "dti_conn_mng.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 39 #include "dti_cntrl_mng.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 40
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 41 #include "gaci.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 42 #include "gaci_cmh.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 43 #include "psa.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 44 #include "psa_sm.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 45
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 46 #include "cmh.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 47 #include "cmh_sm.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 48
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 49 #if defined (FF_WAP) || defined (FF_GPF_TCPIP) || defined (FF_SAT_E)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 50 #include "psa_tcpip.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 51 #include "wap_aci.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 52 #endif /* defined (FF_WAP) || defined (FF_GPF_TCPIP) */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 53
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 54 #ifdef FF_GPF_TCPIP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 55 #include "dcm_utils.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 56 #include "dcm_state.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 57 #include "dcm_env.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 58 #endif
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 59 #include "dcm_f.h"
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 60
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 61
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 62
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 63 /*==== CONSTANTS ==================================================*/
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 64
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 65
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 66 /*==== TYPES ======================================================*/
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 67
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 68
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 69 /*==== EXPORT =====================================================*/
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 70
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 71
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 72 /*==== VARIABLES ==================================================*/
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 73
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 74
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 75 /*==== FUNCTIONS ==================================================*/
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 76
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 77 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 78 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 79 | PROJECT : GPRS (8441) MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 80 | STATE : finished ROUTINE : psa_smreg_pdp_activate_cnf |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 81 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 82
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 83 PURPOSE : processes the SMREG_PDP_ACTIVATE_CNF primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 84 this confirms a successful context activation.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 85 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 86 GLOBAL void psa_smreg_pdp_activate_cnf ( T_SMREG_PDP_ACTIVATE_CNF *smreg_pdp_activate_cnf )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 87 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 88
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 89 T_PDP_CONTEXT_INTERNAL *p_pdp_context_node = NULL;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 90
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 91 TRACE_FUNCTION ("psa_smreg_pdp_activate_cnf()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 92
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 93 p_pdp_context_node = pdp_context_find_node_from_cid( work_cids[cid_pointer] );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 94 if( ! p_pdp_context_node )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 95 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 96 TRACE_ERROR( "ERROR: PDP context not found, in function psa_smreg_pdp_activate_cnf" );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 97 return;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 98 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 99
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 100 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 101 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 102 * notify ACI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 103 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 104 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 105
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 106 smShrdPrm.pdp_cnf = smreg_pdp_activate_cnf;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 107
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 108 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 109 * Store negotiated QOS parameters, only used for read out
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 110 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 111 p_pdp_context_node->ctrl_neg_qos = smreg_pdp_activate_cnf->ctrl_qos;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 112 memcpy( &p_pdp_context_node->neg_qos, &smreg_pdp_activate_cnf->qos, sizeof(T_PS_qos) );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 113
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 114 if ( cmhSM_Activated(smreg_pdp_activate_cnf) < 0)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 115 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 116 TRACE_EVENT("cmhSM_Activated( ) returned error.");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 117 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 118
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 119 /* free the primitive buffer */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 120 PFREE (smreg_pdp_activate_cnf);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 121 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 122
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 123
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 124
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 125 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 126 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 127 | PROJECT : GPRS (8441) MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 128 | STATE : finished ROUTINE : psa_smreg_pdp_activate_rej |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 129 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 130
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 131 PURPOSE : processes the SMREG_PDP_ACTIVATE_REJ primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 132 this indicates a context activation failed.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 133 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 134 GLOBAL void psa_smreg_pdp_activate_rej ( T_SMREG_PDP_ACTIVATE_REJ *smreg_pdp_activate_rej )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 135 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 136
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 137 TRACE_FUNCTION ("psa_smreg_pdp_activate_rej()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 138
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 139 /* update shared parameter and notify ACI */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 140 smShrdPrm.pdp_rej = smreg_pdp_activate_rej;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 141
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 142 if ( cmhSM_NoActivate( ) < 0)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 143 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 144 TRACE_EVENT("cmhSM_NoActivate( ) returned error.");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 145 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 146
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 147 #ifdef FF_GPF_TCPIP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 148 if(is_gpf_tcpip_call())
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 149 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 150 T_DCM_STATUS_IND_MSG msg;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 151 msg.hdr.msg_id = DCM_NEXT_CMD_STOP_MSG;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 152 dcm_send_message(msg, DCM_SUB_WAIT_CGACT_CNF);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 153 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 154 #endif /* FF_GPF_TCPIP */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 155
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 156 /* free the primitive buffer */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 157 PFREE (smreg_pdp_activate_rej);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 158 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 159
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 160 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 161 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 162 | PROJECT : GPRS (8441) MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 163 | STATE : developing ROUTINE : convert_apn_to_netaddr |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 164 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 165
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 166 PURPOSE : converts an APN to a dotted network address
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 167
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 168 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 169 LOCAL SHORT convert_apn_to_netaddr ( T_SMREG_apn *apn_src, T_SMREG_apn *apn_dest)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 170 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 171
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 172 T_SMREG_apn dummy_apn = {0,0,0};
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 173 U8 counter1 = 0;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 174 U8 counter2 = 0;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 175 U8 dest_pos = 0;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 176 U8 bytecount = 0;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 177
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 178 TRACE_FUNCTION ("convert_apn_to_netaddr()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 179
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 180 if(apn_src EQ apn_dest)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 181 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 182 apn_dest=&dummy_apn;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 183 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 184
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 185 while(counter1<apn_src->c_apn_buf-1)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 186 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 187 bytecount=apn_src->apn_buf[counter1];
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 188 for(counter2=0;counter2<bytecount;counter2++)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 189 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 190 counter1++;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 191 if (counter1>=apn_src->c_apn_buf)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 192 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 193 return -1;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 194 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 195 else
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 196 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 197 apn_dest->apn_buf[dest_pos]=apn_src->apn_buf[counter1];
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 198 dest_pos++;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 199 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 200 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 201 if (counter1<apn_src->c_apn_buf-1)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 202 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 203 apn_dest->apn_buf[dest_pos]='.';
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 204 dest_pos++;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 205 counter1++;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 206 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 207 else
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 208 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 209 apn_dest->apn_buf[dest_pos]=0;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 210 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 211 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 212 if (apn_dest EQ &dummy_apn)
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 213 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 214 apn_dest=apn_src;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 215 memcpy(apn_dest->apn_buf,&dummy_apn.apn_buf,dest_pos+1);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 216 apn_dest->c_apn_buf=dest_pos;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 217 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 218 return 0;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 219 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 220
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 221 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 222 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 223 | PROJECT : GPRS (8441) MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 224 | STATE : finished ROUTINE : psa_smreg_pdp_activate_ind |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 225 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 226
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 227 PURPOSE : processes the SMREG_PDP_ACTIVATE_IND primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 228 this indicates a network asked for a PDP context activation.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 229 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 230 GLOBAL void psa_smreg_pdp_activate_ind ( T_SMREG_PDP_ACTIVATE_IND *smreg_pdp_activate_ind )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 231 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 232
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 233 TRACE_FUNCTION ("psa_smreg_pdp_activate_ind()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 234
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 235 /* update shared parameter and notify ACI */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 236 memcpy(&smShrdPrm.act_ind, smreg_pdp_activate_ind, sizeof(T_SMREG_PDP_ACTIVATE_IND));
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 237
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 238 convert_apn_to_netaddr(&smShrdPrm.act_ind.apn,&smShrdPrm.act_ind.apn);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 239
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 240 cmhSM_NetActivate( );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 241
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 242 /* free the primitive buffer */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 243 PFREE (smreg_pdp_activate_ind);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 244 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 245
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 246 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 247 +------------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 248 | PROJECT : GPRS (8441) MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 249 | STATE : finished ROUTINE : psa_smreg_pdp_deactivate_cnf |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 250 +------------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 251
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 252 PURPOSE : processes the SMREG_PDP_DEACTIVATE_CNF primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 253 this confirms a successful PDP context deactivation.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 254 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 255 GLOBAL void psa_smreg_pdp_deactivate_cnf
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 256 ( T_SMREG_PDP_DEACTIVATE_CNF *smreg_pdp_deactivate_cnf )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 257 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 258
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 259 TRACE_FUNCTION ("psa_smreg_pdp_deactivate_cnf()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 260
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 261 /* update shared parameter and notify ACI */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 262 smShrdPrm.nsapi_set = smreg_pdp_deactivate_cnf->nsapi_set;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 263
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 264 cmhSM_Deactivated();
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 265
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 266 /* free the primitive buffer */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 267 PFREE (smreg_pdp_deactivate_cnf);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 268 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 269
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 270 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 271 +------------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 272 | PROJECT : GPRS (8441) MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 273 | STATE : finished ROUTINE : psa_smreg_pdp_deactivate_ind |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 274 +------------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 275
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 276 PURPOSE : processes the SMREG_PDP_DEACTIVATE_IND primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 277 this indicates a network initiated PDP context deactivation.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 278 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 279 GLOBAL void psa_smreg_pdp_deactivate_ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 280 ( T_SMREG_PDP_DEACTIVATE_IND *smreg_pdp_deactivate_ind )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 281 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 282
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 283 TRACE_FUNCTION ("psa_smreg_pdp_deactivate_ind()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 284
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 285 /* update shared parameter and notify ACI */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 286 smShrdPrm.nsapi_set = smreg_pdp_deactivate_ind->nsapi_set;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 287
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 288 cmhSM_NetDeactivate( );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 289
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 290 /* free the primitive buffer */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 291 PFREE (smreg_pdp_deactivate_ind);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 292 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 293
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 294 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 295 +--------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 296 | PROJECT : GPRS (8441) MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 297 | STATE : finished ROUTINE : psa_smreg_pdp_modify_ind |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 298 +--------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 299
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 300 PURPOSE : processes the SMREG_PDP_MODIFY_IND primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 301 this indicates a network initiated PDP context modification.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 302 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 303 GLOBAL void psa_smreg_pdp_modify_ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 304 ( T_SMREG_PDP_MODIFY_IND *smreg_pdp_modify_ind )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 305 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 306
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 307 TRACE_FUNCTION ("psa_smreg_pdp_modify_ind()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 308
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 309 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 310 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 311 * informs context manager
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 312 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 313 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 314
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 315 cmhSM_NetModify(smreg_pdp_modify_ind);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 316
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 317 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 318 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 319 * free the primitive buffer
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 320 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 321 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 322 PFREE (smreg_pdp_modify_ind);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 323 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 324
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 325
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 326
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 327 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 328 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 329 | PROJECT : GPRS (8441) MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 330 | STATE : finished ROUTINE : psa_smreg_pdp_modify_cnf |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 331 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 332
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 333 PURPOSE : processes the SMREG_PDP_MODIFY_CNF primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 334 this confirms a successful context modification.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 335 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 336 #ifdef REL99
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 337 GLOBAL void psa_smreg_pdp_modify_cnf ( T_SMREG_PDP_MODIFY_CNF *smreg_pdp_modify_cnf )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 338 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 339 T_PDP_CONTEXT_INTERNAL *p_pdp_context_node = NULL;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 340
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 341 TRACE_FUNCTION ("psa_smreg_pdp_modify_cnf()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 342
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 343 p_pdp_context_node = pdp_context_find_node_from_cid( work_cids[cid_pointer] );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 344 if( !p_pdp_context_node )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 345 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 346 TRACE_ERROR( "ERROR: PDP context not found, in function psa_smreg_pdp_modify_cnf" );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 347 return;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 348 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 349
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 350 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 351 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 352 * update shared parameter with new QoS and notify ACI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 353 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 354 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 355 if( smreg_pdp_modify_cnf->ctrl_qos NEQ PS_is_qos_not_present )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 356 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 357 p_pdp_context_node->ctrl_neg_qos = smreg_pdp_modify_cnf->ctrl_qos;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 358 memcpy( &p_pdp_context_node->neg_qos, &smreg_pdp_modify_cnf->qos, sizeof(T_PS_qos) );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 359 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 360
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 361
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 362
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 363 if( cmhSM_Modified( smreg_pdp_modify_cnf) > 0 )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 364 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 365 TRACE_EVENT("cmhSM( SM_NTF_MOD_CNF ): not supported return value.");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 366 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 367 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 368 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 369 * free the primitive buffer
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 370 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 371 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 372 PFREE (smreg_pdp_modify_cnf);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 373
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 374 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 375
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 376
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 377 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 378 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 379 | PROJECT : GPRS (8441) MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 380 | STATE : finished ROUTINE : psa_smreg_pdp_modify_rej |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 381 +----------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 382
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 383 PURPOSE : processes the SMREG_PDP_MODIFY_REJ primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 384 this indicates a context modification failed.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 385 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 386
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 387 GLOBAL void psa_smreg_pdp_modify_rej ( T_SMREG_PDP_MODIFY_REJ *smreg_pdp_modify_rej )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 388 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 389
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 390 TRACE_FUNCTION ("psa_smreg_pdp_modify_rej()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 391
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 392 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 393 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 394 * notify ACI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 395 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 396 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 397 if( cmhSM_NoModify( smreg_pdp_modify_rej ) < 0 )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 398 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 399 TRACE_EVENT("cmhSM( SM_NTF_MOD_REJ ) give not supported return value.");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 400 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 401 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 402 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 403 * free the primitive buffer
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 404 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 405 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 406 PFREE (smreg_pdp_modify_rej);
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 407 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 408
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 409 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 410 +----------------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 411 | PROJECT : UMTS MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 412 | STATE : ROUTINE : psa_smreg_pdp_activate_sec_cnf |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 413 +----------------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 414
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 415 PURPOSE : processes the SMREG_PDP_ACTIVATE_SEC_CNF primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 416 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 417 GLOBAL void psa_smreg_pdp_activate_sec_cnf( T_SMREG_PDP_ACTIVATE_SEC_CNF *smreg_pdp_activate_sec_cnf )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 418 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 419 T_PDP_CONTEXT_INTERNAL *p_pdp_context_node = NULL;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 420
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 421 TRACE_FUNCTION ("psa_smreg_pdp_activate_sec_cnf()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 422
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 423 p_pdp_context_node = pdp_context_find_node_from_cid( work_cids[cid_pointer] );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 424 if( !p_pdp_context_node )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 425 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 426 TRACE_ERROR( "ERROR: PDP context not found, in function psa_smreg_pdp_activate_sec_cnf" );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 427 return;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 428 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 429
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 430 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 431 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 432 * update shared parameter with new QoS and notify ACI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 433 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 434 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 435 p_pdp_context_node->ctrl_neg_qos = smreg_pdp_activate_sec_cnf->ctrl_qos;
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 436 memcpy( &p_pdp_context_node->neg_qos, &smreg_pdp_activate_sec_cnf->qos, sizeof(T_PS_qos) );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 437
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 438
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 439 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 440 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 441 * notify ACI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 442 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 443 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 444 if( cmhSM_ActivatedSecondary( smreg_pdp_activate_sec_cnf ) < 0 )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 445 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 446 TRACE_EVENT("cmhSM( SM_NTF_ACT_SEC_CNF ) un-supported return value.");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 447 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 448 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 449 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 450 * free the primitive buffer
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 451 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 452 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 453 PFREE( smreg_pdp_activate_sec_cnf );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 454 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 455
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 456
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 457 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 458 +----------------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 459 | PROJECT : UMTS MODULE : PSA_SM |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 460 | STATE : ROUTINE : psa_smreg_pdp_activate_sec_rej |
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 461 +----------------------------------------------------------------------------+
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 462
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 463 PURPOSE : processes the SMREG_PDP_ACTIVATE_SEC_REJ primitive send by SM.
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 464 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 465 GLOBAL void psa_smreg_pdp_activate_sec_rej( T_SMREG_PDP_ACTIVATE_SEC_REJ *smreg_pdp_activate_sec_rej )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 466 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 467
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 468 TRACE_FUNCTION ("psa_smreg_pdp_activate_sec_rej()");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 469
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 470 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 471 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 472 * notify ACI
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 473 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 474 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 475 if( cmhSM_NoActivateSecondary( smreg_pdp_activate_sec_rej ) < 0 )
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 476 {
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 477 TRACE_EVENT("cmhSM( SM_NTF_ACT_SEC_REJ ) un-supported return value.");
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 478 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 479 /*
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 480 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 481 * free the primitive buffer
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 482 *-------------------------------------------------------------------
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 483 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 484 PFREE( smreg_pdp_activate_sec_rej );
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 485 }
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 486 #endif /* REL99 */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 487
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 488 #endif /* GPRS */
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
+ − 489 /*==== EOF =========================================================*/