Files
banban/ql-kernel/threadx/common/include/ci_dat.h

802 lines
31 KiB
C

/*------------------------------------------------------------
(C) Copyright [2006-2008] Marvell International Ltd.
All Rights Reserved
------------------------------------------------------------*/
/* ===========================================================================
File : ci_dat.h
Description : Data types file for the DAT Service Group
Notes :
INTEL CONFIDENTIAL
Copyright 2006 Intel Corporation All Rights Reserved.
The source code contained or described herein and all documents related to the source code ("Material") are owned
by Intel Corporation or its suppliers or licensors. Title to the Material remains with Intel Corporation or
its suppliers and licensors. The Material contains trade secrets and proprietary and confidential information of
Intel or its suppliers and licensors. The Material is protected by worldwide copyright and trade secret laws and
treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted,
transmitted, distributed, or disclosed in any way without Intel's prior express written permission.
No license under any patent, copyright, trade secret or other intellectual property right is granted to or
conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement,
estoppel or otherwise. Any license under such intellectual property rights must be express and approved by
Intel in writing.
Unless otherwise agreed by Intel in writing, you may not remove or alter this notice or any other notice embedded
in Materials by Intel or Intel's suppliers or licensors in any way.
=========================================================================== */
#if !defined(_CI_DAT_H_)
#define _CI_DAT_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "ci_ps.h"
#include "ci_api_types.h"
#include "ci_cfg.h"
#if defined(ENV_LINUX)
#include "common_datastub.h"
#endif /*ENV_LINUX*/
#include "ci_mm.h"
/*CQ00128822 by xia 20200310 for nas unit test*/
//#ifdef NAS_UNIT_TEST
//#include "nas_stub.h"
//#endif
/** \addtogroup SpecificSGRelated
* @{ */
//#define CI_DAT_VER_MAJOR 4
//#define CI_DAT_VER_MINOR 0
#define CI_DAT_CURRENT_VER CI_SG_LATEST_VERSION // CP current version is always latest version
#ifdef PC_TTCN_INT_TEST
typedef int BOOL;
#endif
/* -----------------------------------------------------------------------------
* DAT Configuration definitions
* ----------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------------- */
/* CI_DAT Primitive ID definitions */
/** Summary of primitives */
//ICAT EXPORTED ENUM
typedef enum CI_DAT_PRIM {
CI_DAT_PRIM_GET_MAX_PDU_SIZE_REQ = 1, /**< \brief Requests the maximum PDU size the underlying data link can send and receive\details */
CI_DAT_PRIM_GET_MAX_PDU_SIZE_CNF, /**< \brief Confirms the request to get the maximum PDU size the underlying transport link can send and receive
* \details It is assumed that the upper layer of CI segments and assembles data based on this primitive.*/
CI_DAT_PRIM_SEND_REQ, /**< \brief Requests CS/PS data
* \details This primitive is kept for backward compatibility. Instead, use CI_DAT_PRIM_SEND_DATA_OPT_REQ.*/
CI_DAT_PRIM_SEND_CNF, /**< \brief Confirms the request to send CS/PS data
* \details This primitive is kept for backward compatibility. Instead, use CI_DAT_PRIM_SEND_DATA_OPT_CNF.*/
CI_DAT_PRIM_RECV_IND, /**< \brief Indicates receipt of CS/PS data
* \details This primitive is kept for backward compatibility. Instead, use CI_DAT_PRIM_RECV_DATA_OPT_IND.*/
CI_DAT_PRIM_RECV_RSP, /**< \brief Responds confirming receipt of CS/PS data
* \details This primitive is kept for backward compatibility. Instead, use CI_DAT_PRIM_RECV_DATA_OPT_RSP.*/
CI_DAT_PRIM_OK_IND, /**< \brief Indicates that a data connection was established
* \details The data connection link should be set up using primitives in the CC or PS service group.
* This primitive indicates that a data connection has been established and that data send and receive primitives can be used.*/
CI_DAT_PRIM_NOK_IND, /**< \brief Indicates that a data connection was disconnected
* \details The data connection link should be deactivated using primitives in the CC or PS
* service group before this primitive is used. After this primitive, sending and receiving data through the corresponding data connection is not allowed.*/
/* Begin of ACI optimization for data channel */
CI_DAT_PRIM_SEND_DATA_OPT_REQ, /**< \brief Requests to send PS data over the optimized data plane
* \details CI does not manipulate data by itself. It is a proxy, forwarding and receiving data between the application subsystem and cellular subsystem.
* The maximum PDU size tells the upper layer of CI the throughput limitation between the application subsystem and cellular subsystem.
* For example, for IP data, the upper layer of CI should build the IP packet based on the maximum PDU size or do IP fragmentation
* if the IP packet size is greater than the maximum PDU size.
* The CI does not send or receive incomplete IP packets.
* The same concept is applied to PPP data: the upper layer of CI makes sure the PPP data sent and received at the CI level is a whole PPP frame.
* For raw data (such as CS streaming data), the upper layer of CI should split the raw data based on the maximum PDU size.\n
* The data connection link should be set up using primitives in the CC or PS service group before this primitive is used.
* For the data to be sent over the optimized data plane,
* the CI_PS_PRIM_ENTER_DATA_STATE_REQ primitive must have been sent with the 'optimizedData' flag set to TRUE.
* To avoid buffer overflow and data loss, do not send a new CI_DAT_PRIM_SEND_DATA_OPT_REQ primitive before a CI_DAT_PRIM_SEND_DATA_OPT_CNF primitive is received.
* The data buffer can be freed or reused when the 'free primitive memory' callback function of the
* CI_DAT_PRIM_SEND_DATA_OPT_REQ primitive is called by the lower layer; this may happen before or after the
* CI_DAT_PRIM_SEND_DATA_OPT_CNF primitive is sent. */
CI_DAT_PRIM_SEND_DATA_OPT_CNF = 10, /**< \brief Confirms the request to send PS data over the optimized data plane \details */
CI_DAT_PRIM_RECV_DATA_OPT_IND, /**< \brief Indicates that PS data was received over the optimized data plane
* \details It is assumed that the upper layer of CI has segmented the data based on the
* CI_DAT_PRIM_GET_MAX_PDU_SIZE_CNF primitive.
* The data connection link must have been set up using primitives in the PS service group before this primitive can be used.
* For the data to be sent over the optimized data plane, the CI_PS_PRIM_ENTER_DATA_STATE_REQ
* primitive must have been sent with the 'optimizedData' flag set to TRUE.
* To avoid buffer overflow and data loss, do not send a new CI_DAT_PRIM_RECV_DATA_OPT_IND primitive before a CI_DAT_PRIM_RECV_DATA_OPT_RSP primitive is received.
* The Rx data buffer must be made available for reuse by the lower layer; for this purpose,
* invoke the 'free primitive memory' callback function of the CI_DAT_PRIM_RECV_DATA_OPT_IND primitive (if it was registered).
*/
CI_DAT_PRIM_RECV_DATA_OPT_RSP, /**< \brief Responds confirming receipt of CS/PS data over the optimized data plane
* \details Response to received PS data over the optimized data plane.*/
CI_DAT_PRIM_SET_UL_TP_IND_REQ, /**< \brief Requests communication subsystem to enable/disable UL throughput indications and sets the report interval */
CI_DAT_PRIM_SET_UL_TP_IND_CNF, /**< \brief Confirms previous TP reports request */
CI_DAT_PRIM_UL_TP_IND, /**< \brief Indicates UL throughput reports received from COMM MAC \details These indications are disabled by default. The primitive CI_DAT_PRIM_SET_UL_TP_IND_REQ is used to enable periodic reports */
/* End of ACI optimization for data channel */
CI_DAT_PRIM_TEST_APP_REQ, /** This CI only used for internal testing, just simulate the test application*/
CI_DAT_PRIM_TEST_APP_CNF,
CI_DAT_PRIM_GET_CUMULATIVE_DATA_COUNT_REQ,
CI_DAT_PRIM_GET_CUMULATIVE_DATA_COUNT_CNF,
CI_DAT_PRIM_CUMULATIVE_DATA_COUNT_IND = 20,
CI_DAT_PRIM_SET_MBMS_CMD_REQ,
CI_DAT_PRIM_SET_MBMS_CMD_CNF,
CI_DAT_PRIM_GET_MBMS_CMD_REQ,
CI_DAT_PRIM_GET_MBMS_CMD_CNF,
CI_DAT_PRIM_GET_MBMS_CMD_AREA_INFO_REQ,
CI_DAT_PRIM_GET_MBMS_CMD_AREA_INFO_CNF,
CI_DAT_PRIM_SET_MBMS_EV_REQ,
CI_DAT_PRIM_SET_MBMS_EV_CNF,
CI_DAT_PRIM_MBMS_EV_IND,
/* ADD NEW COMMON PRIMITIVES HERE, BEFORE 'CI_DAT_PRIM_LAST_COMMON_PRIM' */
/* END OF COMMON PRIMITIVES LIST */
CI_DAT_PRIM_LAST_COMMON_PRIM
/* the customer specific extension primitives will be added starting from
* CI_DAT_PRIM_firstCustPrim = CI_DAT_PRIM_LAST_COMMON_PRIM as the first identifier.
* The actual primitive names and IDs are defined in the associated
* 'ci_dat_cust_xxx.h' file.
*/
/* DO NOT ADD ANY MORE PRIMITIVES HERE */
} _CiDatPrim;
/**@}*/
/* specify the number of default common DAT primitives */
#define CI_DAT_NUM_COMMON_PRIM ( CI_DAT_PRIM_LAST_COMMON_PRIM - 1 )
/* Data Types */
/** \brief Supported data types */
/** \details */
/** \remarks Common Data Section */
//ICAT EXPORTED ENUM
typedef enum CIDATTYPE_TAG{
CI_DAT_TYPE_PPP = 0, /**< PPP */
CI_DAT_TYPE_IP, /**< IPv4 */
CI_DAT_TYPE_IPV6, /**< IPv6 */
CI_DAT_TYPE_RAW, /**< Raw data */
CI_DAT_TYPE_HDLC, /**< Not supported */
CI_DAT_NUM_TYPES
} _CiDatType;
/** \addtogroup SpecificSGRelated
* @{ */
/** \brief Data type
* \sa CIDATTYPE_TAG
* \remarks Common Data Section */
typedef UINT8 CiDatType;
/**@}*/
/* Data Service Group Result Codes */
/** \brief Result codes */
/** \details */
/** \remarks Common Data Section */
//ICAT EXPORTED ENUM
typedef enum CIRC_DAT{
CIRC_DAT_SUCCESS = 0, /**< Request completed successfully */
CIRC_DAT_FAILURE, /**< Request failed */
CIRC_DAT_CONNECTION_FAILED, /**< Connection failed */
CIRC_DAT_PDU_TOO_BIG, /**< PDU is too big */
CIRC_DAT_INVALID_PARAMETER, /**< Generic error - the requested service primitive has invalid parameters */
CIRC_DAT_INVALID_REQ, /**< Generic error - the requested service primitive can not be handled at current state */
CIRC_DAT_SIM_NOT_READY, /**< Generic error - the requested service primitive fails because SIM is not ready */
CIRC_DAT_ACCESS_DENIED, /**< Generic error - the requested service primitive fails because access is denied */
/* This one must always be last in the list! */
CIRC_DAT_NUM_RESCODES /* Number of result codes defined */
} _CiDatRc;
/** \addtogroup SpecificSGRelated
* @{ */
/** \brief Result code
* \sa CIRC_DAT
* \remarks Common Data Section */
typedef UINT16 CiDatRc;
/**@}*/
/* Data Service Group Network data types */
/** \brief Data network type values */
/** \details */
/** \remarks Common Data Section */
//ICAT EXPORTED ENUM
typedef enum CIDATA_NW_TYPE_TAG{
CI_DATA_NW_TYPE_GPRS_EDGE = 0, /**< NW type is GPRS or EDGE */
CI_DATA_NW_TYPE_UMTS, /**< NW type is UMTS */
CI_DATA_NW_TYPE_HSDPA, /**< NW type is HSDPA */
/* This one must always be last in the list! */
CI_DATA_NW_TYPE_NUM_TYPES /* Number of data network types defined */
} _CiDataNWType;
/** \addtogroup SpecificSGRelated
* @{ */
/** \brief Data NW type
* \sa CIDATA_NW_TYPE_TAG
* \remarks Common Data Section */
typedef UINT8 CiDataNWType;
/**@}*/
/* Connection Types */
/** \brief Data connection type */
/** \details */
/** \remarks Common Data Section */
//ICAT EXPORTED ENUM
typedef enum CIDATCONNTYPE_TAG{
CI_DAT_CONNTYPE_CS = 0, /**< CS connection */
CI_DAT_CONNTYPE_PS, /**< PS connection */
CI_DAT_NUM_CONNTYPES
} _CiDatConnType;
#if !defined(ENV_LINUX)
/** \addtogroup SpecificSGRelated
* @{ */
/** \brief Data connection type (CS or PS)
* \sa CIDATCONNTYPE_TAG
* \remarks Common Data Section */
typedef UINT8 CiDatConnType;
/**@}*/
/* Connection Information */
/** \brief Data connection type */
/** \details */
/** \remarks Common Data Section */
//ICAT EXPORTED STRUCT
typedef struct CiDatConnInfo_struct{
CiDatConnType type; /**< Connection type \sa CiDatConnType */
UINT32 id; /**< Link ID: call ID for the CS connection; context ID for the PS connection */
} CiDatConnInfo;
#if defined (ON_PC)
typedef enum ATCI_CONNECTION_TYPE {
ATCI_LOCAL,
ATCI_REMOTE = 2
} _AtciConnectionType;
typedef struct directipconfig_tag {
INT32 dwContextId;
INT32 dwProtocol;
struct
{
INT32 inIPAddress;
INT32 inPrimaryDNS;
INT32 inSecondaryDNS;
INT32 inDefaultGateway;
INT32 inSubnetMask;
} ipv4;
} DIRECTIPCONFIG;
typedef struct _ipconfiglist
{
DIRECTIPCONFIG directIpAddress;
struct _ipconfiglist *next;
}DIRECTIPCONFIGLIST;
typedef enum
{ // com events
DATA_CHAN_INIT_STATE = 0,
DATA_CHAN_NOTREADY_STATE,
DATA_CHAN_READY_STATE,
DATA_CHAN_SNUMSTATES
}DATACHANSTATES;
typedef enum
{
PDP_PPP = 0,
PDP_DIRECTIP=1,
PSD_MODEM = 2,
CSD_RAW = 3,
CSD_MODEM = 4
}_SVCTYPE;
typedef UINT8 SVCTYPE;
struct datahandle_obj
{
CiDatConnInfo m_datConnInfo;
BOOL m_fOptimizedData;
INT16 m_maxPduSize;
CiDatConnType m_connType;
UINT32 m_cid;
DATACHANSTATES chanState;
UINT16 m_dwCurSendPduSeqNo;
UINT16 m_dwCurSendReqHandle;
SVCTYPE pdptype;
UINT32 connectionType;
// OSAFlagRef writeSync;
};
typedef struct _datahandle
{
struct datahandle_obj handle;
struct _datahandle *next;
}DATAHANDLELIST;
typedef struct
{
UINT32 cid;
UINT32 len; //length of databuf
UINT8 *databuf;
}GCFDATA;
#endif
#endif /* ! ENV_LINUX */
#if defined(ON_PC)&&(defined(UL_LOOPBACK) || defined(DL_LOOPBACK))
/* Data PDU */
// ICAT EXPORTED STRUCTURE
typedef struct CiDatPdu_struct{
CiDatType type; /* data type */
UINT16 len; /* data length */
UINT8 data[200]; /* pointer to data */
CiBoolean isLast;
UINT8 seqNo; /* sequence number for each CI Dat Pdu */
} CiDatPdu;
#else
/** Data PDU */
/** \remarks Common Data Section */
//ICAT EXPORTED STRUCT
typedef struct CiDatPdu_struct{
CiDatType type; /**< Data type \sa CiDatType */
UINT16 len; /**< Data length */
UINT8 *data; /**< Pointer to data */
CiBoolean isLast; /**< Indicates this is the last PDU \sa CCI API Ref Manual*/
UINT8 seqNo; /**< Sequence number for each CI data PDU */
} CiDatPdu;
#endif
/** \brief Data throughput indication */
/** \details */
/** \remarks Common Data Section */
//ICAT EXPORTED STRUCT
typedef struct CiDatUlTpInfo_struct{
UINT16 cid; /**< Context id */
UINT32 sentBytes; /**< Number of bytes sent since previous indication */
UINT32 pendingBytes; /**< Number of bytes pending in Tx queues */
}CiDatUlTpInfo;
/* -------------------------- DAT Service Group Primitives ------------------------------ */
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_GET_MAX_PDU_SIZE_REQ"> */
typedef struct CiDatPrimGetMaxPduSizeReq_struct{
CiBoolean optimizedData; /**< Request for the maximum PDU size when using the optimized data plane (if TRUE) or the control plane (if FALSE). Default value is FALSE. \sa CCI API Ref Manual */
}CiDatPrimGetMaxPduSizeReq;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_GET_MAX_PDU_SIZE_CNF"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimGetMaxPduSizeCnf_struct{
CiDatRc rc; /**< Result code \sa CiDatRc */
UINT16 size; /**< The maximum PDU size depends on the underlying data link layer protocol. */
} CiDatPrimGetMaxPduSizeCnf;
/** <paramref name="CI_DAT_PRIM_SET_UL_TP_IND_REQ"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSetUlTpIndReq_struct
{
UINT16 reportInterval; /**< Enables TP reports from MAC at every report interval (milli seconds). Setting report interval to 0 disables the reports */
} CiDatPrimSetUlTpIndReq;
/** <paramref name="CI_DAT_PRIM_SET_UL_TP_IND_CNF"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSetUlTpIndCnf_struct
{
CiDatRc result; /**< Result code \sa CiDatRc */
} CiDatPrimSetUlTpIndCnf;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_SEND_REQ"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSendReq_struct{
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct */
/* # Start Contiguous Code Section # */
CiDatPdu sendPdu; /**< Transferred data PDU \sa CiDatPdu_struct */
/* # End Contiguous Code Section # */
} CiDatPrimSendReq;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_SEND_CNF"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSendCnf_struct{
CiDatRc rc; /**< Result code \sa CiDatRc */
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct */
} CiDatPrimSendCnf;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_RECV_IND"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimRecvInd_struct{
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct */
/* # Start Contiguous Code Section # */
CiDatPdu recvPdu; /**< Received data PDU \sa CiDatPdu_struct */
/* # End Contiguous Code Section # */
} CiDatPrimRecvInd;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_RECV_RSP"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimRecvRsp_struct{
CiDatRc rc; /**< Result code \sa CiDatRc */
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct */
} CiDatPrimRecvRsp;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_OK_IND"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimOkInd_struct{
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct */
UINT16 maxPduSize; /**< The maximum PDU size for the connection depends on the underlying data link layer protocol. */
} CiDatPrimOkInd;
/** <paramref name="CI_DAT_PRIM_UL_TP_IND"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimUlTpInd_struct{
UINT32 minLimitBytes; /**< The minimum number of bytes required to be in the mac Q in order to maintain an active UL TBF */
UINT32 maxLimitBytesHint; /**< This value may be used to calculate an optimal value for flow control on Data Tx */
CiDataNWType nwType; /**< Network type \sa CiDataNwType */
UINT8 number; /**< Number of valid UL throughput information indication elements, each context ID will have a separate indication element */
CiDatUlTpInfo ulTpInfo[CI_PS_MAX_PDP_CTX_NUM]; /**< Array of TP indications per context id \sa CiDatUlTpInfo_struct */
}CiDatPrimUlTpInd;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_NOK_IND"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimNokInd_struct{
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct */
} CiDatPrimNokInd;
/* Begin of ACI optimization for data channel */
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_SEND_DATA_OPT_REQ"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSendDataOptReq_struct {
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct */
CiDatPdu sendPdu; /**< Transferred data PDU \sa CiDatPdu_struct */
BOOL sinkPdu;
CiPsL2P l2p;
} CiDatPrimSendDataOptReq;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_SEND_DATA_OPT_CNF"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSendDataOptCnf_struct{
CiDatRc rc; /**< Result code \sa CiDatRc */
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct */
UINT8 *pReqData; /**< Pointer to data */
} CiDatPrimSendDataOptCnf;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_RECV_DATA_OPT_IND"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimRecvDataOptInd_struct {
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct*/
CiDatPdu recvPdu; /**< Received data PDU \sa CiDatPdu_struct */
UINT8 *pStartBuffer; /**< Pointer to start of the buffer including data */
} CiDatPrimRecvDataOptInd;
/* <INUSE> */
/** <paramref name="CI_DAT_PRIM_RECV_DATA_OPT_RSP"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimRecvDataOptRsp_struct {
CiDatRc rc; /**< Result code \sa CiDatRc */
CiDatConnInfo connInfo; /**< Connection information, including the PS or CS connection type and context ID for the PS and CS connection type, respectively \sa CiDatConnInfo_struct */
UINT8 *pIndData; /**< Pointer to data */
UINT8 *pStartBuffer; /**< Pointer to start of the buffer including data */
CiIndicationHandle dataIndHandle;
} CiDatPrimRecvDataOptRsp;
/* End of ACI optimization for data channel */
/******************************************************************************
* CI_DAT_PRIM_TEST_APP_REQ/CI_DAT_PRIM_TEST_APP_CNF
* CI added for internal testing (TTCN scripts) only, to simulate the test application
* AT*VZWTESTAPP=<apn>,<state>[,<period>]
******************************************************************************/
/** <paramref name="CI_DAT_PRIM_TEST_APP_REQ"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimTestAppReq_struct{
CiString apn;
UINT8 state; // 0-application disconnected; 1-application idle; 2-application transmitting
UINT32 msPeriod; // period in milli-second
}CiDatPrimTestAppReq;
/** <paramref name="CI_DAT_PRIM_TEST_APP_CNF"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimTestAppCnf_struct{
CiDatRc rc;
}CiDatPrimTestAppCnf;
/** <paramref name="CI_DAT_PRIM_GET_CUMULATIVE_DATA_COUNT_REQ"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimGetCumulativeDataReq_struct {
UINT32 cid; /**< Result code \sa CiDatRc */
} CiDatPrimGetCumulativeDataReq;
/* End of ACI optimization for data channel */
/** <paramref name="CI_DAT_PRIM_GET_CUMULATIVE_DATA_COUNT_CNF"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimGetCumulativeDataCnf_struct{
CiDatRc rc;
UINT32 cid;
UINT32 cumulativeDL; // cumulative DL data bytes
UINT32 cumulativeUL; // cumulative UL data bytes
}CiDatPrimGetCumulativeDataCnf;
/** <paramref name="CI_DAT_PRIM_CUMULATIVE_DATA_COUNT_IND"> */
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimCumulativeDataInd_struct{
UINT32 cid;
UINT32 cumulativeDL; // cumulative DL data bytes
UINT32 cumulativeUL; // cumulative UL data bytes
}CiDatPrimCumulativeDataInd;
#define CI_DAT_MBMS_MAX_AREA 8
#define CI_DAT_MBMS_MAX_SESSION 29
#define CI_DAT_MBMS_MAX_SAI 30
#define CI_DAT_MBMS_MAX_FREQ 10
//add by taow 20150204 begin
#define CI_DAT_MBMS_MAX_CURRENT_SAI 64
//add by taow 20150204 end
//ICAT EXPORTED ENUM
typedef enum Ci_DAT_MBMS_CMD_TAG
{
CI_DAT_MBMS_CMD_ENABLER = 0,
CI_DAT_MBMS_CMD_ACT,
CI_DAT_MBMS_CMD_DEACT,
CI_DAT_MBMS_CMD_DEACT_ALL,
CI_DAT_MBMS_CMD_SET_PREFER,
CI_DAT_MBMS_CMD_GET_NW_TIME,
CI_DAT_MBMS_CMD_GET_SIGNAL_LEVEL,
CI_DAT_MBMS_CMD_GET_NW_INFO,
CI_DAT_MBMS_CMD_GET_MODEM_STATUS,
CI_DAT_MBMS_CMD_SET_HYSTERESIS,
CI_DAT_MBMS_CMD_SET_AVAILABILITY_INFO,
CI_DAT_MBMS_CMD_GET_CURRENT_SAIS //add by taow 20150204
} _CiDatMbmsCmd;
typedef UINT8 CiDatMbmsCmd;
//ICAT EXPORTED ENUM
typedef enum Ci_DAT_MBMS_PREFER_TAG
{
CI_DAT_MBMS_PREFER_NONE = 0,
CI_DAT_MBMS_PREFER_UNICAST,
CI_DAT_MBMS_PREFER_MULTICAST
} _CiDatMbmsPrefer;
typedef UINT8 CiDatMbmsPrefer;
//ICAT EXPORTED ENUM
typedef enum Ci_DAT_MBMS_MODEM_STATUS_TAG
{
CI_DAT_MBMS_MODEM_STATUS_NONE = 0,
CI_DAT_MBMS_MODEM_STATUS_OFF,
CI_DAT_MBMS_MODEM_STATUS_ON
} _CiDatMbmsModemStatus;
typedef UINT8 CiDatMbmsModemStatus;
//ICAT EXPORTED ENUM
typedef enum Ci_DAT_MBMS_EV_TAG
{
CI_DAT_MBMS_EV_SERVICE_CHANGE = 0,
CI_DAT_MBMS_EV_NO_SERVICE,
CI_DAT_MBMS_EV_ONLY_UNICAST_AVAIL,
CI_DAT_MBMS_EV_UNICAST_AND_MBMS_AVAIL
} _CiDatMbmsEv;
typedef UINT8 CiDatMbmsEv;
//ICAT EXPORTED STRUCT
typedef struct CiDatMbmsTmgi_struct{
UINT32 serviceId;
UINT16 mcc;
UINT16 mnc;
CiMmNetOpDigitMnc mncDigit;
} CiDatMbmsTmgi;
//ICAT EXPORTED STRUCT
typedef struct CiDatMbmsSessionInfo_struct{
CiDatMbmsTmgi tmgi;
CiBoolean sessionIdPresent;
UINT8 sessionId;
} CiDatMbmsSessionInfo;
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSaiInfo_struct{
UINT16 sai;
UINT8 numOfFreq;
UINT32 freq[CI_DAT_MBMS_MAX_FREQ];
} CiDatPrimSaiInfo;
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSetMbmsCmdReq_struct{
CiDatMbmsCmd cmd;
CiBoolean enabler;
CiDatMbmsTmgi tmgi;
CiDatMbmsPrefer prefer;
UINT8 inSessionHysteresis;
UINT8 outSessionHysteresis;
UINT8 inMbmsHysteresis;
UINT8 outMbmsHysteresis;
UINT8 numOfSai;
CiDatPrimSaiInfo saiInfo[CI_DAT_MBMS_MAX_SAI];
} CiDatPrimSetMbmsCmdReq;
//add by taow 20150204 begin
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimGetMbmsCmdSaiListCnf_struct
{
//UINT8 numOfSai;
//UINT16 sai[CI_DAT_MBMS_MAX_CURRENT_SAI];
//Boolean result;
UINT8 numOfCurrentSai;
UINT16 currentSai[CI_DAT_MBMS_MAX_CURRENT_SAI];
UINT8 numOfNeighborSai;
UINT16 neighborSai[CI_DAT_MBMS_MAX_CURRENT_SAI];
}
CiDatPrimGetMbmsCmdSaiListCnf;
//add by taow 20150428 begin
//ICAT EXPORTED STRUCT
typedef struct CiDatPlmnIdentityTag
{
//3 digits of MMC
UINT16 mcc;
//Length of MNC, value range (2,3)
UINT8 lenOfMnc;
//2-3 digits of MNC
UINT16 mnc;
}CiDatPlmnIdentity;
//add by taow 20150428 end
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSetMbmsCmdCnf_struct{
CiDatRc rc; /**< Result code. \sa CiDatRc. */
CiDatMbmsCmd cmd;
CiBoolean enabler;
UINT32 timingInfoHigh;
UINT32 timingInfoLow;
UINT16 signalLevel;
UINT32 cellId;
CiDatMbmsModemStatus modemStatus;
CiDatPrimGetMbmsCmdSaiListCnf currentSai;//add by taow 20150204
CiDatPlmnIdentity plmnIdentity;// add by taow 20150428
} CiDatPrimSetMbmsCmdCnf;
typedef CiEmptyPrim CiDatPrimGetMbmsCmdReq;
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimGetMbmsCmdCnf_struct{
CiDatRc rc; /**< Result code. \sa CiDatRc. */
UINT8 numOfArea;
UINT16 areaId[CI_DAT_MBMS_MAX_AREA];
} CiDatPrimGetMbmsCmdCnf;
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimGetMbmsCmdAreaInfoReq_struct{
UINT16 areaId;
} CiDatPrimGetMbmsCmdAreaInfoReq;
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimGetMbmsCmdAreaInfoCnf_struct{
CiDatRc rc; /**< Result code. \sa CiDatRc. */
UINT16 areaId;
UINT8 numOfSession;
CiDatMbmsSessionInfo sessionInfo[CI_DAT_MBMS_MAX_SESSION];
} CiDatPrimGetMbmsCmdAreaInfoCnf;
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSetMbmsEvReq_struct{
CiBoolean cmd;
} CiDatPrimSetMbmsEvReq;
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimSetMbmsEvCnf_struct{
CiDatRc rc; /**< Result code. \sa CiDatRc. */
CiBoolean cmd;
} CiDatPrimSetMbmsEvCnf;
//ICAT EXPORTED STRUCT
typedef struct CiDatPrimMbmsEvInd_struct{
CiDatMbmsEv ev;
} CiDatPrimMbmsEvInd;
/* ADD NEW COMMON PRIMITIVES DEFINITIONS HERE */
#ifdef CI_CUSTOM_EXTENSION
/* it is assumed that only one customized set of extension primitives is
* to be considered at one time. The selection of the particular customized
* set is done in the 'ci_dat_cust.h' based on compile flags.
*
* Note: if no customer extension primitives are defined for this service group
* the CI_DAT_NUM_CUST_PRIM will be set to 0 in the "ci_dat_cust.h" file.
*/
#include "ci_dat_cust.h"
#define CI_DAT_NUM_PRIM ( CI_DAT_NUM_COMMON_PRIM + CI_DAT_NUM_CUST_PRIM )
#else
/* if no customer extension is supported, only the default common set is considered */
#define CI_DAT_NUM_PRIM CI_DAT_NUM_COMMON_PRIM
#endif /* CI_CUSTOM_EXTENSION */
/***************************Start of CI Interface Definitions of Old CI Versions***********************************************/
/******************************************************************************
* All old CI interface definations should be backed up here, re-defined
* with the suffix of CI version number
******************************************************************************/
/******************************************************************************
* V0010, headers
* related CIs :
* none.
******************************************************************************/
/******************************************************************************
* V0020, headers
* related CIs :
*
******************************************************************************/
/***************************End of CI Interface Definitions of Old CI Versions***********************************************/
#ifdef __cplusplus
}
#endif //__cplusplus
#endif /* _CI_DAT_H_ */
/* end of ci_dat.h
--------------------------------------------------------------------------- */