FreeCalypso > hg > fc-magnetite
diff src/g23m-aci/aci/cmh_sndr.c @ 162:53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 11 Oct 2016 02:02:43 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-aci/aci/cmh_sndr.c Tue Oct 11 02:02:43 2016 +0000 @@ -0,0 +1,245 @@ +/* ++----------------------------------------------------------------------------- +| Project : +| Modul : ++----------------------------------------------------------------------------- +| 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 : This module defines the functions which are responsible +| for the responses of the protocol stack adapter for SNDCP. ++----------------------------------------------------------------------------- +*/ + +#if defined (GPRS) && defined (DTI) + +#ifndef CMH_SNDR_C +#define CMH_SNDR_C +#endif + +#include "aci_all.h" +/*==== INCLUDES ===================================================*/ + +#include "aci_cmh.h" + +#include "psa.h" + +#include "dti.h" +#include "dti_conn_mng.h" +#include "dti_cntrl_mng.h" + +#include "gaci_cmh.h" +#include "gaci.h" + +#include "cmh.h" +#include "cmh_snd.h" +#include "cmh_sm.h" + +#ifdef FF_GPF_TCPIP +#include "dcm_utils.h" +#include "dcm_state.h" +#include "dcm_env.h" +#endif + +/*==== CONSTANTS ==================================================*/ + + +/*==== TYPES ======================================================*/ + + +/*==== EXPORT =====================================================*/ + + +/*==== VARIABLES ==================================================*/ + + +/*==== FUNCTIONS ==================================================*/ + +/* ++-------------------------------------------------------------------+ +| PROJECT : UMTS MODULE : CMH_SNDR | +| STATE : finished ROUTINE : cmhUPM_Counted | ++-------------------------------------------------------------------+ + + PURPOSE : + +*/ +GLOBAL void cmhUPM_Counted( UBYTE nsapi, + ULONG octets_uplink, + ULONG octets_downlink, + ULONG packets_uplink, + ULONG packets_downlink ) +{ + TRACE_FUNCTION ("cmhUPM_Counted()"); + + R_AT( RAT_SNCNT, (T_ACI_CMD_SRC)sndcpShrdPrm.srcId ) ( NSAPI_TO_CID(nsapi), + octets_uplink, + octets_downlink, + packets_uplink, + packets_downlink ); + + R_AT( RAT_OK, (T_ACI_CMD_SRC)sndcpShrdPrm.srcId ) ( AT_CMD_SNCNT ); +} + + +#if defined(FF_PKTIO) OR defined(FF_TCP_IP) OR defined (FF_PSI) +/* ++---------------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : CMH_SNDR | +| STATE : code ROUTINE : PKTIO_SNDCP_connect_dti_cb | ++---------------------------------------------------------------------------+ + + PURPOSE : Callback for connection between PKTIO and SNDCP. + +*/ +#ifdef GPRS + +GLOBAL BOOL PKTIO_SNDCP_connect_dti_cb(UBYTE dti_id, T_DTI_CONN_STATE result_type) +{ + U8 cid; + T_PDP_CONTEXT_INTERNAL *p_pdp_context_node = NULL; + + TRACE_FUNCTION("PKTIO_SNDCP_connect_dti_cb"); + + switch( result_type) + { + case DTI_CONN_STATE_DISCONNECTING: + cid = (U8)gaci_get_cid_over_dti_id(dti_id); + p_pdp_context_node = pdp_context_find_node_from_cid( cid ); + if( ! p_pdp_context_node ) + { + TRACE_ERROR( "ERROR: PDP context not found, in function psa_smreg_pdp_activate_cnf" ); + return FALSE; + } + + if( INVALID_CID NEQ cid AND + PDP_CONTEXT_STATE_ACTIVATING EQ get_state_over_cid(cid) AND + ( DTI_ENTITY_PKTIO EQ p_pdp_context_node->internal_data.entity_id OR + DTI_ENTITY_PSI EQ p_pdp_context_node->internal_data.entity_id OR + DTI_ENTITY_AAA EQ p_pdp_context_node->internal_data.entity_id ) ) + { + cmhSM_deactivateAContext(CMD_SRC_NONE, cid); + set_state_over_cid( cid, PDP_CONTEXT_STATE_DEACTIVATE_NORMAL); + } + break; + case DTI_CONN_STATE_DISCONNECTED: + case DTI_CONN_STATE_CONNECTING: + case DTI_CONN_STATE_CONNECTED: + break ; + case DTI_CONN_STATE_ERROR: + /* connection not possible: disconnect SNDCP */ + dti_cntrl_close_dpath_from_dti_id( dti_id ); + break; + case DTI_CONN_STATE_UNKNOWN: + default: + TRACE_EVENT("PKTIO_SNDCP_connect_dti_cb call with not awaited value"); + break; + } + return TRUE; +} +#endif /* FF_PKTIO OR FF_TCP_IP OR FF_PSI*/ + +#endif /* GPRS */ + +#ifdef CO_UDP_IP +/* ++--------------------------------------------------------------------------+ +| PROJECT : GSM-F&D (8411) MODULE : CMH_SNDR | +| STATE : code ROUTINE : IP_SNDCP_connect_dti_cb | ++--------------------------------------------------------------------------+ + + PURPOSE : Callback for connection between IP Server and SNDCP. + +*/ + +GLOBAL BOOL IP_SNDCP_connect_dti_cb(UBYTE dti_id, T_DTI_CONN_STATE result_type) +{ + TRACE_FUNCTION("IP_SNDCP_connect_dti_cb"); + + switch( result_type) + { + case DTI_CONN_STATE_DISCONNECTING: + case DTI_CONN_STATE_CONNECTED: + case DTI_CONN_STATE_CONNECTING: + break; + case DTI_CONN_STATE_DISCONNECTED: + /* Deactivate the context if necessary. */ + /*cmhUPM_Disable( dti_id );*/ + break; + case DTI_CONN_STATE_ERROR: + /* connection not possible: disconnect SNDCP */ + TRACE_EVENT("IP_SNDCP_connect_dti_cb connection not possible: disconnect SNDCP"); + dti_cntrl_close_dpath_from_dti_id( dti_id); + break; + case DTI_CONN_STATE_UNKNOWN: + default: + TRACE_EVENT("IP_SNDCP_connect_dti_cb call with not awaited value"); + break; + } + return TRUE; +} +#endif /* CO_UDP_IP */ + + +#ifdef FF_GPF_TCPIP +GLOBAL BOOL TCPIP_SNDCP_connect_dti_cb(UBYTE dti_id, T_DTI_CONN_STATE result_type) +{ + TRACE_FUNCTION("TCPIP_SNDCP_connect_dti_cb"); + TRACE_EVENT_P1("TCPIP_SNDCP_connect_dti_cb() result = %d",result_type); + + switch( result_type) + { + case DTI_CONN_STATE_DISCONNECTING: + TRACE_EVENT("TCPIP_SNDCP_connect_dti_cb in DTI_CONN_STATE_DISCONNECTING") ; + break ; + + case DTI_CONN_STATE_CONNECTING: + TRACE_EVENT("TCPIP_SNDCP_connect_dti_cb in DTI_CONN_STATE_CONNECTING") ; + break; + + case DTI_CONN_STATE_DISCONNECTED: + TRACE_EVENT("TCPIP_SNDCP_connect_dti_cb in DTI_CONN_STATE_DISCONNECTED") ; + dti_cntrl_erase_entry(dti_id); + { + T_DCM_STATUS_IND_MSG msg; + msg.hdr.msg_id = DCM_NEXT_CMD_READY_MSG; + dcm_send_message(msg, DCM_SUB_WAIT_CGACT_CNF); + } + break; + + case DTI_CONN_STATE_CONNECTED: + TRACE_EVENT("TCPIP_SNDCP_connect_dti_cb in DTI_CONN_STATE_CONNECTED"); + { + T_DCM_STATUS_IND_MSG msg; + msg.hdr.msg_id = DCM_NEXT_CMD_READY_MSG; + dcm_send_message(msg, DCM_SUB_WAIT_CGACT_CNF); + } + break; + + case DTI_CONN_STATE_ERROR: + /* connection not possible: disconnect SNDCP */ + TRACE_EVENT("TCPIP_SNDCP_connect_dti_cb connection not possible: disconnect SNDCP"); + dti_cntrl_close_dpath_from_dti_id( dti_id); + break; + + case DTI_CONN_STATE_UNKNOWN: + TRACE_EVENT("TCPIP_SNDCP_connect_dti_cb in DTI_CONN_STATE_UNKNOWN") ; + break; + + default: + TRACE_EVENT("TCPIP_SNDCP_connect_dti_cb call with not awaited value"); + break; + } + return TRUE; +} +#endif /* FF_GPF_TCPIP */ + +#endif /* GPRS && DTI*/