blob: 2890b1bc174c61a2ec7c435621e79067e98c83b9 [file] [log] [blame]
#ifndef _ATP_IWLAN_STRUCT_H
#define _ATP_IWLAN_STRUCT_H
#include "kal_general_types.h"
#include "kal_public_defs.h"
#include "ims_interface_md.h"
#include "ims_common_def.h"
#include "iwlan_public_defs.h"
#include "atp_imc_struct.h"
#define ATP_IWLAN_L4_CMD_IND_LOCAL_PARA_HDR \
LOCAL_PARA_HDR \
kal_uint32 src_id;
#define ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR \
LOCAL_PARA_HDR \
kal_uint32 src_id; \
kal_bool is_success; \
kal_uint16 err_cause;
#define IWLAN_STRSZL 128 // Move from iwlan_defs.h
#define IWLAN_STRSZM 64
#define IWLAN_STRSZS 32
/*******************************************************************************
* IWLAN V.S. ATP from AP *
* atp_iwlan_cmd_table *
*******************************************************************************/
//MSG_ID_ATP_IWLAN_IMSCFG_REQ
typedef struct {
LOCAL_PARA_HDR
ims_cap_rat_enum vo3gpp_enable;
ims_cap_rat_enum vi3gpp_enable;
kal_bool vowifi_enable;
kal_bool viwifi_enable;
kal_bool ims_sms_enable;
kal_bool eims_enable;
} atp_iwlan_imscfg_req_struct;
typedef enum {
STATE_IN_SERVICE = 0,
STATE_OUT_OF_SERVICE = 1,
STATE_EMERGENCY_ONLY = 2,
STATE_POWER_OFF = 3,
}reg_sta_enum;
typedef enum {
ROAMING_TYPE_NOT_ROAMING = 0,
ROAMING_TYPE_UNKNOWN = 1,
ROAMING_TYPE_DOMESTIC = 2,
ROAMING_TYPE_INTERNATIONAL = 3,
}roam_type_enum;
typedef enum {
REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING = 0,
REGISTRATION_STATE_HOME_NETWORK = 1,
REGISTRATION_STATE_NOT_REGISTERED_AND_SEARCHING = 2,
REGISTRATION_STATE_REGISTRATION_DENIED = 3,
REGISTRATION_STATE_UNKNOWN = 4,
REGISTRATION_STATE_ROAMING = 5,
REGISTRATION_STATE_NOT_REGISTERED_AND_NOT_SEARCHING_EMERGENCY_CALL_ENABLED = 10,
REGISTRATION_STATE_NOT_REGISTERED_AND_SEARCHING_EMERGENCY_CALL_ENABLED = 12,
REGISTRATION_STATE_REGISTRATION_DENIED_EMERGENCY_CALL_ENABLED = 13,
REGISTRATION_STATE_UNKNOWN_EMERGENCY_CALL_ENABLED = 14,
}ril_reg_state_enum;
//MSG_ID_ATP_IWLAN_ESRVSTATE_REQ
typedef struct {
LOCAL_PARA_HDR
reg_sta_enum voice_regstate;
reg_sta_enum data_regstate;
roam_type_enum voice_roamtype;
roam_type_enum data_roamtype;
ril_reg_state_enum ril_voice_regstate;
ril_reg_state_enum ril_data_regstate;
} atp_iwlan_esrvstate_req_struct;
//MSG_ID_ATP_IWLAN_ECNCFG_REQ
typedef struct {
LOCAL_PARA_HDR
kal_uint8 mobile_data_en; //The value may be true, false, or NA. So, sue uint8 as type.
kal_uint8 data_roaming_en;
kal_uint8 data_domestic_roaming_en;
kal_uint8 data_international_roaming_en;
} atp_iwlan_ecncfg_req_struct;
typedef enum {
WIFIEN_REASON_NOT_DEFINE = 0,
WIFIEN_REASON_FLIGHTMODE = 1,
WIFIEN_REASON_RESERVE1,
WIFIEN_REASON_RESERVE2,
WIFIEN_REASON_RESERVE3,
}wifien_reason_enum;
//MSG_ID_ATP_IWLAN_EWIFIEN_REQ
typedef struct {
LOCAL_PARA_HDR
kal_char ewifi_ifname[IWLAN_STRSZS];
kal_bool ewifi_en;
wifien_reason_enum ewifi_reason;
} atp_iwlan_ewifien_req_struct;
typedef enum {
WFCPREF_CELLULAR_ONLY = 0,
WFCPREF_WIFI_PREF = 1,
WFCPREF_CELLULAR_PREF = 2,
WFCPREF_WIFI_ONLY = 3,
WFCPREF_EPC = 4,
WFCPREF_IMS_CUR_RAN = 5,
WFCPREF_NA = 6,
WFCPREF_CNT,
}wfcpref_mode_enum;
//MSG_ID_ATP_IWLAN_EWFCPREF_REQ
typedef struct {
LOCAL_PARA_HDR
kal_bool ewfcpref_en;
wfcpref_mode_enum ewfcpref_mode;
kal_uint8 sim_id;
} atp_iwlan_ewfcpref_req_struct;
//MSG_ID_ATP_IWLAN_EVODATA_REQ
typedef struct {
LOCAL_PARA_HDR
kal_bool vodata_en;
kal_uint8 data_mode;
kal_uint8 allow_rat;
} atp_iwlan_evodata_req_struct;
//MSG_ID_ATP_IWLAN_EWIFIASC_REQ
typedef struct {
LOCAL_PARA_HDR
kal_char ifname[IWLAN_STRSZS];
kal_bool assoc;
kal_uint8 ssid[IWLAN_STRSZS];
kal_uint8 mac[IWLAN_STRSZM];
} atp_iwlan_ewifiasc_req_struct;
//MSG_ID_ATP_IWLAN_ELOCAEN_REQ
typedef struct {
LOCAL_PARA_HDR
kal_bool loc_en ;
} atp_iwlan_elocaen_req_struct ;
//MSG_ID_ATP_IWLAN_EWIFISIGLVL_REQ
typedef struct {
LOCAL_PARA_HDR
kal_int32 rssi;
} atp_iwlan_ewifisiglvl_req_struct;
//MSG_ID_ATP_IWLAN_EIWLCFGSET_REQ
typedef struct {
LOCAL_PARA_HDR
kal_char cfg_name[64];
kal_char cfg_value[256];
} atp_iwlan_eiwlcfgset_req_struct;
//MSG_ID_ATP_IWLAN_EIWLCFGGET_REQ
typedef struct {
LOCAL_PARA_HDR
kal_char cfg_name[64];
} atp_iwlan_eiwlcfgget_req_struct;
//MSG_ID_ATP_IWLAN_EPVSSET_REQ
typedef struct {
LOCAL_PARA_HDR
kal_char cfg_name[64];
kal_char cfg_value[256];
} atp_iwlan_epvsset_req_struct;
//MSG_ID_ATP_IWLAN_EPVSGET_REQ
typedef struct {
LOCAL_PARA_HDR
kal_char cfg_name[64];
} atp_iwlan_epvsget_req_struct;
//MSG_ID_ATP_IWLAN_EIMSGEO_REQ
typedef struct {
LOCAL_PARA_HDR
kal_int8 account_id; // (0~7: ims stack, 100: iwlan)
kal_int8 broadcast_flag;
kal_int32 latitude[2];
kal_int32 longitude[2];
kal_int32 accuracy;
kal_char method[16];
kal_char city[32];
kal_char state[32];
kal_char zip[8];
kal_char country_code[8];
kal_char mcc[MAX_GEO_MCC_NUM][MAX_MCC_STR_LEN];
} atp_iwlan_eimsgeo_req_struct;
typedef enum {
EIMSRCSCONN_STATUE_DISCONNECTED = 0, // 0 RCS session is disconnected.
EIMSRCSCONN_STATUE_CONNECTED = 1, // 1 RCS session is connected.
EIMSRCSCONN_STATUE_RESET = 254, // 254 Reset all RCS session.
}eimsrcsconn_status_enum;
//MSG_ID_ATP_IWLAN_EIMSRCSCONN_REQ
typedef struct {
LOCAL_PARA_HDR
eimsrcsconn_status_enum status;
}atp_iwlan_eimsrcsconn_req_struct;
// MSG_ID_ATP_IWLAN_EIWLPLEN_REQ
typedef struct {
LOCAL_PARA_HDR
kal_uint8 en;
} atp_iwlan_eiwlplen_req_struct;
//MSG_ID_ATP_IWLAN_EIWLPING_REQ
typedef struct {
LOCAL_PARA_HDR
iwlan_ran_e rat_type;
kal_int32 ave_latency;
kal_int32 loss_rate;
} atp_iwlan_eiwlping_req_struct;
//MSG_ID_ATP_IWLAN_EFUN_REQ
typedef struct {
LOCAL_PARA_HDR
kal_int8 state;
} atp_iwlan_efun_req_struct; //phase out
//MSG_ID_ATP_IWLAN_EAPMODE_REQ
typedef struct {
LOCAL_PARA_HDR
kal_int8 mode;
} atp_iwlan_eapmode_req_struct;
// MSG_ID_ATP_IWLAN_SIP_CALL_PROGRESS_REQ
typedef struct {
LOCAL_PARA_HDR
kal_uint8 call_id;
kal_uint8 dir;
kal_uint8 msg_type;
kal_uint8 method;
kal_uint16 response_code;
imcf_uint8 reason_text[IMC_MAX_REASON_TEXT_LENGTH]; //IWLAN only care about reason text
} atp_iwlan_sip_call_progress_req_struct;
typedef enum{
DRP_OP_FLUSH = 0, //no use now
DRP_OP_DUMP = 1,
DRP_OP_CNT,
}drp_op_enum;
//MSG_ID_ATP_IWLAN_DUMP_RUNTIME_PARA_REQ
typedef struct {
LOCAL_PARA_HDR
drp_op_enum op; // 0: flush NVRAM 1: dump to NVRAM
} atp_iwlan_dump_runtime_para_req_struct;
/*******************************************************************************
* IWLAN V.S. ATP to AP *
* atp_iwlan_urc_to_ap_table *
*******************************************************************************/
#define IWLAN_WIFI_RSSI_CFG_NUM 16
//MSG_ID_ATP_IWLAN_WIFIMON_CFG_IND
typedef struct {
LOCAL_PARA_HDR
kal_bool en;
kal_uint8 cnt;
kal_int32 sig_thr[IWLAN_WIFI_RSSI_CFG_NUM];
} atp_iwlan_wifimon_cfg_ind_struct;
//MSG_ID_ATP_IWLAN_EWIFIPDNACT_IND
typedef struct {
LOCAL_PARA_HDR
kal_uint8 cnt;
} atp_iwlan_ewifipdnact_ind_struct;
//MSG_ID_ATP_IWLAN_EIWLCFGSET_IND
typedef struct {
LOCAL_PARA_HDR
kal_char cfg_name[64];
kal_int32 status;
} atp_iwlan_eiwlcfgset_ind_struct;
//MSG_ID_ATP_IWLAN_EIWLCFGGET_IND
typedef struct {
LOCAL_PARA_HDR
kal_char cfg_name[64];
kal_char cfg_value[256];
kal_int32 status;
} atp_iwlan_eiwlcfgget_ind_struct;
//MSG_ID_ATP_IWLAN_EPVSSET_IND
typedef struct {
LOCAL_PARA_HDR
kal_char cfg_name[64];
kal_int32 status;
} atp_iwlan_epvsset_ind_struct;
//MSG_ID_ATP_IWLAN_EPVSGET_IND
typedef struct {
LOCAL_PARA_HDR
kal_char cfg_name[64];
kal_char cfg_value[256];
kal_int32 status;
} atp_iwlan_epvsget_ind_struct;
//MSG_ID_ATP_IWLAN_EIMSGEO_IND
typedef atp_iwlan_eimsgeo_req_struct atp_iwlan_eimsgeo_ind_struct;
//MSG_ID_ATP_IWLAN_EWFCRVOUT_IND
typedef struct {
LOCAL_PARA_HDR
kal_char ifname[IWLAN_STRSZS]; // align ifname in atp_iwlan_ewifiasc_req_struct
kal_bool rvout_en;
kal_bool mobike_ind;
} atp_iwlan_ewfcrvout_ind_struct;
//MSG_ID_ATP_IWLAN_EIWLPING_IND
typedef struct {
LOCAL_PARA_HDR
iwlan_ran_e rat_type;
} atp_iwlan_eiwlping_ind_struct;
// MSG_ID_ATP_IWLAN_EIWLPL_IND
typedef struct {
LOCAL_PARA_HDR
kal_char cmd[8];
kal_char type[16];
kal_uint8 priority_for_setup;
kal_uint8 priority_for_cellular;
kal_uint8 priority_for_wifi;
kal_char description[32];
// For +EIWLPL ver.2
kal_uint8 verno;
kal_uint8 rat_num;
kal_uint8 rpl_row[RPL_RAN_PRIOR_MAX];
} atp_iwlan_eiwlpl_ind_struct;
// MSG_ID_ATP_IWLAN_CEUS_REQ
typedef struct {
LOCAL_PARA_HDR
kal_uint8 centric_type;
} atp_iwlan_ceus_req_struct;
// MSG_ID_ATP_IWLAN_CEUS_IND
typedef atp_iwlan_ceus_req_struct atp_iwlan_ceus_ind_struct;
typedef struct
{
LOCAL_PARA_HDR
ims_irat_status_enum irat_status;
kal_bool irat_result;
} atp_iwlan_eirat_status_req_struct;
/*******************************************************************************
* IWLAN V.S. ATP from MD *
* atp_urc_table *
*******************************************************************************/
//MSG_ID_ATP_IWLAN_L4_VOPS_URCRPT_REQ
typedef struct {
ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR
kal_bool en;
} atp_iwlan_l4_vops_urcrpt_req_struct;
//MSG_ID_ATP_IWLAN_L4_ECEVDP_URCRPT_REQ
typedef struct {
ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR
kal_uint8 vodm_pref;
} atp_iwlan_l4_ecevdp_urcrpt_req_struct;
//MSG_ID_ATP_IWLAN_L4_CELLSIG_URCRPT_REQ
typedef struct {
ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR
kal_int32 sig1;
kal_int32 sig2;
kal_int32 rssi_qdbm;
kal_int32 rscp_qdbm;
kal_int32 ecn0_qdbm;
kal_int32 rsrq_qdbm;
kal_int32 rsrp_qdbm;
kal_uint32 act;
kal_int32 rs_snr_qdb;
kal_int32 band;
kal_int32 second_rsrp_qdbm;
kal_int32 second_rsrq_qdbm;
kal_int32 second_sig3;
} atp_iwlan_l4_cellsig_urcrpt_req_struct;
/*******************************************************************************
* IWLAN V.S. ATP to MD *
* atp_iwlan_request_table *
*******************************************************************************/
//MSG_ID_ATP_IWLAN_L4_IMSCFG_IND
typedef atp_iwlan_imscfg_req_struct atp_iwlan_l4_imscfg_ind_struct;
//MSG_ID_ATP_IWLAN_L4_IMSCFG_RSP
typedef struct {
ATP_IWLAN_L4_RSP_IND_LOCAL_PARA_HDR
} atp_iwlan_l4_imscfg_rsp_struct;
//MSG_ID_ATP_IWLAN_L4_CELLSIG_QUERY_IND
//<TBD>
//MSG_ID_ATP_IWLAN_L4_CELLSIG_QUERY_RSP
typedef atp_iwlan_l4_cellsig_urcrpt_req_struct atp_iwlan_l4_cellsig_query_rsp_struct;
/****************************
* Get URC porting from IMC *
****************************/
/*
* Description
* - the primitive is used for PS to notify IWLAN rat_type, cell_id, PLMN_type
* Direction
* - PS -> IWLAN
*/
typedef struct {
LOCAL_PARA_HDR
ims_rat_type_enum rat_type;
kal_uint64 cell_id;
cell_service_enum cell_service;
plmn_id_struct plmn_id;
plmn_type_enum plmn_type;
kal_uint8 la_code[2];
kal_uint8 ta_code[3];
kal_bool limited_service_emc_support;
domain_id_enum domain;
kal_bool is_empty_cell;
/*ecall over IMS*/
#ifdef __NG_ECALL_SUPPORT__
kal_bool support_ecl; /*newtork support ecall over ims or not*/
#endif
} atp_iwlan_eimsinfo_req_struct;
/*
* @brief
* @note MSG_ID_ATP_IWLAN_EC2KREG_REQ
* +EC2KREG:<domain>, <state>, <service_type>
*/
typedef struct {
LOCAL_PARA_HDR
domain_id_enum domain;
c2k_cell_service_enum state;
c2k_rat_type_enum service_type;
} atp_iwlan_ec2kreg_req_struct;
/*
* @brief
* @note MSG_ID_ATP_IWLAN_EC2KCELL_REQ
* +EC2KINFO:<access_type>, <sid>, <nid>, <pzid>, <base_id>, <sectot_id>, <subnet_length>, <carrier_id>
*/
typedef struct {
LOCAL_PARA_HDR
c2k_rat_type_enum access_type;
kal_uint16 sid;
kal_uint16 nid;
kal_uint8 pzid;
kal_uint16 base_id;
kal_uint32 sectot_id[4];
kal_uint8 subnet_length;
kal_uint8 carrier_id[7];
} atp_iwlan_ec2kcell_req_struct;
/*
* @brief
* @note MSG_ID_ATP_IWLAN_EAFR_IND
* +EAFR=<afr_result>
*/
typedef struct {
LOCAL_PARA_HDR
kal_bool result;
} atp_iwlan_eafr_ind_struct;
/*
* @brief
* @note MSG_ID_ATP_IWLAN_ECMPCID_REQ
* +ECMPCID:<rat>,<ci>,<plmn_id>,<lac>,<tac>
*/
typedef struct {
LOCAL_PARA_HDR
ims_rat_type_enum rat_type;
kal_uint64 cell_id;
kal_uint8 plmn[MAX_PLMN_LEN + 1];
kal_uint16 la_code;
kal_uint32 ta_code;
} atp_iwlan_ecmpcid_req_struct;
/*
* @brief UE receive mt cs paging
* note MSG_ID_ATP_IWLAN_MT_CS_PAGING_IND
* +CIEV: 13
*/
typedef struct {
LOCAL_PARA_HDR
} atp_iwlan_mt_cs_paging_ind_struct;
/*
* @brief UE receive csfb fail ind
* note MSG_ID_ATP_IWLAN_CSFB_FAIL_IND
* +ECFFAIL
*/
typedef struct {
LOCAL_PARA_HDR
} atp_iwlan_csfb_fail_ind_struct;
/*
* @brief
* @note MSG_ID_ATP_IWLAN_CS_CALL_STATUS_IND
* +ECPI:<call_id>, <msg_type>, <is_ibt>, <is_tch>, <dir>, <call_mode>, <number>, <type>, "<pau>"[,<disc_cause>]
*/
typedef struct {
LOCAL_PARA_HDR
ims_cs_call_status_enum cs_call_status;
} atp_iwlan_cs_call_status_ind_struct;
/*
* Description
* - the primitive is used for NAS to notify IWLAN of the SIM Invalid event
* Direction
* - PS -> IWLAN
*/
typedef struct {
LOCAL_PARA_HDR
plmn_id_struct plmn_id;
kal_bool is_cs_invalid;
kal_bool is_ps_invalid;
kal_uint32 cause;
} atp_iwlan_sim_invalid_req_struct;
/*
* Description
* - the primitive is used for PS to notify IWLAN that the UE is in/out of limited service
* Direction
* - PS -> IWLAN
*/
typedef struct {
LOCAL_PARA_HDR
} atp_iwlan_oos_start_req_struct;
typedef struct {
LOCAL_PARA_HDR
} atp_iwlan_oos_end_req_struct;
#endif /* _ATP_IWLAN_STRUCT_H */