FreeCalypso > hg > freecalypso-sw
diff gsm-fw/g23m-aci/aci/psa_ipas.c @ 775:eedbf248bac0
gsm-fw/g23m-aci subtree: initial import from LoCosto source
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 12 Oct 2014 01:45:14 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsm-fw/g23m-aci/aci/psa_ipas.c Sun Oct 12 01:45:14 2014 +0000 @@ -0,0 +1,182 @@ +/* ++----------------------------------------------------------------------------- +| Project : GSM-PS (6147) +| Modul : PSA_IPAS ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : ++----------------------------------------------------------------------------- +*/ +#if defined (FF_WAP) || defined (FF_SAT_E) + +#ifndef PSA_IPAS_C +#define PSA_IPAS_C +#endif + +#include "aci_all.h" +/*==== INCLUDES ===================================================*/ +#include "aci_cmh.h" +#include "ati_cmd.h" +#include "aci_cmd.h" +#include "dti.h" /* functionality of the dti library */ + +#include "aci.h" +#include "psa.h" +//#include "psa_l2r.h" +#include "psa_cc.h" +#include "aci_fd.h" +#include "cmh.h" +#include "dti_conn_mng.h" +//#include "cmh_l2r.h" + +#include "wap_aci.h" +#include "psa_tcpip.h" + +#ifdef GPRS +#include "gaci.h" +#include "cmh_sm.h" +#endif + +/*==== CONSTANTS ==================================================*/ + + +/*==== TYPES ======================================================*/ + + +/*==== EXPORT =====================================================*/ + + +/*==== VARIABLES ==================================================*/ + + +/*==== FUNCTIONS ==================================================*/ + + +/* ++-------------------------------------------------------------------+ +| PROJECT : GSM-PS (6147) MODULE : PSA_IPA | +| ROUTINE : psaIPA_Config | ++-------------------------------------------------------------------+ + + PURPOSE : Configurate or disconfigurate IPA. + +*/ + +GLOBAL void psaIPA_Config(ULONG ip, USHORT max_trans_unit, T_ACI_IPA_DIRC dirc + /*T_ACI_AT_CMD at_cmd */) +{ + /* dirc = IPA_CONN if IPA is to be activated + dirc = IPA_DSC if IPA i to be deactivated */ + + TRACE_FUNCTION("psaIPA_Config()") ; + + switch( dirc ) + { + + case ( IPA_CONN ): + wap_state = IPA_Configuration; + { + PALLOC(ipa_config_req,IPA_CONFIG_REQ); + ipa_config_req -> ip = ip; + ipa_config_req->peer_ip = 0; + ipa_config_req->cmd = IPA_CONFIG_UP; + ipa_config_req -> mtu = max_trans_unit; + + PSENDX(IP,ipa_config_req); + } + break; + + case ( IPA_DSC ): + wap_state = IPA_Deconfiguration; + { + PALLOC(ipa_config_req,IPA_CONFIG_REQ); + ipa_config_req -> ip = 0; + ipa_config_req->peer_ip = 0; + ipa_config_req->cmd = IPA_CONFIG_DOWN; + ipa_config_req -> mtu = 0; + + PSENDX(IP,ipa_config_req); + } + break; + } +} + + +/* ++-------------------------------------------------------------------+ +| PROJECT : GSM-PS (6147) MODULE : PSA_IPAS | +| ROUTINE : psaIPA_Dti_Req | ++-------------------------------------------------------------------+ + + PURPOSE : connect IP + +*/ + +GLOBAL void psaIPA_Dti_Req(ULONG link_id, UBYTE peer_to_connect_to, UBYTE dti_conn) +{ + + PALLOC( ipa_dti_req, IPA_DTI_REQ); + + + +#ifdef GPRS + T_PDP_CONTEXT_INTERNAL *p_pdp_context_node = NULL; + + p_pdp_context_node = pdp_context_find_node_from_cid( work_cids[cid_pointer]); + + if( p_pdp_context_node ) + { + p_pdp_context_node->internal_data.link_id = link_id; + } + + /* This is probably not the right place to populate the link id since + IPA dti req might be sent for CSD call as well ! Need to investigate + as separate issue. + */ +#endif /* GPRS */ + + TRACE_FUNCTION("psaIPA_Dti_Req"); + + ipa_dti_req -> dti_conn = dti_conn; + ipa_dti_req -> link_id = link_id; + + if (dti_conn EQ IPA_CONNECT_DTI) + { + switch( peer_to_connect_to ) + { + case( DTI_ENTITY_UDP ): + ipa_dti_req -> dti_direction = DTI_CHANNEL_TO_HIGHER_LAYER; + strcpy((char*)ipa_dti_req->entity_name, dti_entity_name[DTI_ENTITY_UDP].name); + break; +#ifdef GPRS + case( DTI_ENTITY_SNDCP ): + ipa_dti_req -> dti_direction = DTI_CHANNEL_TO_LOWER_LAYER; + strcpy((char*)ipa_dti_req->entity_name, dti_entity_name[DTI_ENTITY_SNDCP].name); + break; +#endif + case( DTI_ENTITY_PPPC ): + ipa_dti_req -> dti_direction = DTI_CHANNEL_TO_LOWER_LAYER; + strcpy((char*)ipa_dti_req->entity_name, dti_entity_name[DTI_ENTITY_PPPC].name); + break; + default: + TRACE_EVENT("unknown conn_peer_Id: IPA_DTI_REQ not sent"); + PFREE(ipa_dti_req); + return; + } + } + + PSENDX( IP, ipa_dti_req ); +} + + +#endif /* WAP || SAT E */